Verstort Posted October 7, 2015 Posted October 7, 2015 Yup save tool. Don't think it's new. I've since clean saved and don't seem to have any stacked scripts so far, but I've not turned back on that setting either For the armor how about this: GetModelPath It might be too broad for what you want- ie it may include clothes that wouldn't technically be considered mage robes. But I don't think there are many models for mage robes, 4 or 5 maybe? ; Retrieve the file path for the male model of ArmorIronCuirass String FilePath = (Game.GetForm(0x00012E49) as Armor).GetModelPath(False) ; Returns "Armor\Iron\Male\CuirassLightGND.nif" 5 models (one for each spell skill subsection(novice, master, ect)), with the possible addition of 2-5 necromancer robes for this purpose (clearly, dangerous necromancer if wearing robes with a skull on them... ) and/or 2-5 robe models (blue robes, black robes, archmage robes) * 2 for each gender Still a little much to check for, and it doesn't include possible 3rd party wizard robes, but it's closer to an acceptable number, will probably use this as a backup if I don't find something better. I also have savetool and I've never seen a suspendedstack section, maybe it only shows up if you have suspended stacks? In any case, I've come back installed the latest version over a cleaned save and everything seems to be working perfectly. Good to hear it's working. Have installed 101 over two different clean saves four times. Half the time the mcm doesn't show up till after a save-reload, but things seem to be working without the wolfclub scripts being available. Not good to hear it's not working for you all the time. The MCM could take as long as 2 minutes to show up in high load situations, but reloading shouldn't fix it unless SkyUI got stuck. Speculating without a log, although it sounds like you can work around it anyway.
pihwht Posted October 7, 2015 Posted October 7, 2015 Having stuff not show up in the mcm till after a save-reload or change cell even, is pretty common/almost normal.
Monoman1 Posted October 7, 2015 Posted October 7, 2015 Damnit. Spoke too soon. Noticed there was no crde output in the console. And stacks have started coming back. Edit: Ok I've gone back to a save where I hadn't any version of DE installed and I'm running 10.1 now. Hopefully it was just a messed up upgrade.
Lenore Posted October 7, 2015 Posted October 7, 2015 I haven't gotten too far into my newest game but so far 10.0.1 works good for me, didn't have to have either wolfclub or captured dreams installed.
Monoman1 Posted October 8, 2015 Posted October 8, 2015 Ok, little update. Been playing a little while now. Doesn't seem to be any problem. I've been keeping a close eye on my saves with the save tool and the most suspended stacks I've seen is one and it's usually processed pretty quickly. The only odd thing I've noticed: After quiting (CTD) and loading up again, I sometimes got a message: "[CRDE] zazKeywordEffectRefresh is not loaded, are you sure you installed zaz?" Had it a handful of times. Zaz is definitely installed (6.07). Didn't continue playing if I got it so quit and reloaded again just in case. I could not get it to reproduce reliably. Here is a log from one such run: Papyrus.1.log EDIT: Lol just as I posted the above I load up my game and find a stuck suspended stack. Time between test saves tells me I waited 5 mins for it to budge. The suspended stack is not present in the save I loaded so it seems to have happened after reloading the game. Here is the dump from the save tool of the related active script: ID: 000B3EC8 Var: bool: 1 Uint8: 02 Uint8: 00 Uint8: 00 Functions: 3 ---------- Function 1 ---------- VarCount: 9 Flag: 02 Type: 00 Name: crdeplayermonitorscript Name: crdeplayermonitorscript Event: OnUpdate Status: uint8: 03 uint8: 02 Returntype: None Docstring: Function flags: 00 Function user flags: 00000000 Function local name: ::temp0 Function local type: Bool Function local name: ::NoneVar Function local type: None Function local name: ::temp1 Function local type: Float Function local name: ::temp2 Function local type: Bool Function local name: ::temp3 Function local type: Bool Function local name: ::temp4 Function local type: Float Function local name: onupdatetimeteststart Function local type: Float Function local name: ::temp5 Function local type: String Function local name: ::temp6 Function local type: Bool Opcodes: 74 PROPGET bCRDEEnable ::MCM_var ::temp0 CMPEQ ::temp0 ::temp0 0 JMPF ::temp0 5 CALLM clear_force_variables, self, ::NoneVar, 0, PROPGET fEventInterval ::MCM_var ::temp1 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, JMP 68 CALLM IsInCombat, ::player_var, ::temp2, JMPF ::temp2 14 JMPF ::forceGreetIncomplete_var 3 CALLM clear_force_variables, self, ::NoneVar, 0, JMP 1 ASSIGN ::wasInCombat_var 1 NOT ::temp3 ::wasInCombat_var JMPF ::temp3 3 CALLM debugMsg, self, ::NoneVar, player in combat, do nothing, looping slower, 1, JMP 1 PROPGET fEventInterval ::MCM_var ::temp1 CAST ::temp4 5 FADD ::temp4 ::temp1 ::temp4 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp4, JMP 53 CMPEQ ::temp3 ::wasInCombat_var 1 JMPF ::temp3 6 ASSIGN ::wasInCombat_var 0 CALLM debugMsg, self, ::NoneVar, player has left combat, do nothing and wait 20 seconds before returning to normal, 1, CAST ::temp1 20 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, JMP 46 CALLS utility.GetCurrentRealTime, ::temp4, ASSIGN onupdatetimeteststart ::temp4 JMPF ::forceGreetIncomplete_var 24 CALLS utility.GetCurrentGameTime, ::temp1, ASSIGN CurrentRealTime ::temp1 FSUB ::temp4 busyGameTime CurrentRealTime CAST ::temp1 1400 FMUL ::temp1 ::temp4 ::temp1 CAST ::temp5 ::temp1 STRCAT ::temp5 force greet is Incomplete, ::temp5 STRCAT ::temp5 ::temp5 GMin remain CALLM debugMsg, self, ::NoneVar, ::temp5, 1, PROPGET bResetDHLP ::MCM_var ::temp3 JMPF ::temp3 6 CALLM dhlpResume, ::Mods_var, ::NoneVar, CALLM clear_force_variables, self, ::NoneVar, 1, ASSIGN ::temp6 0 PROPSET bResetDHLP ::MCM_var ::temp6 JMP 1 CMPLT ::temp6 busyGameTime CurrentRealTime JMPF ::temp6 5 CALLM dhlpResume, ::Mods_var, ::NoneVar, CALLM clear_force_variables, self, ::NoneVar, 1, CALLM debugMsg, self, ::NoneVar, force greet failed, ran out of time, 1, JMP 1 JMP 1 CMPEQ ::temp3 threadBusy 0 JMPF ::temp3 5 ASSIGN threadBusy 1 CALLM attemptApproach, self, ::NoneVar, ASSIGN threadBusy 0 JMP 1 CALLM tryDebug, self, ::NoneVar, CALLM printNearbyValidActors, ::NPCMonitorScript_var, ::NoneVar, CALLS utility.GetCurrentRealTime, ::temp4, FSUB ::temp1 ::temp4 onupdatetimeteststart CAST ::temp5 ::temp1 STRCAT ::temp5 OnUpdate time: ::temp5 CALLM debugMsg, self, ::NoneVar, ::temp5, 0, JMPF ::forceGreetIncomplete_var 4 CAST ::temp4 5 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp4, JMP 3 PROPGET fEventInterval ::MCM_var ::temp1 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, uint32: 0000003E Var: crdeplayermonitorscript: 1530AF70 Var[1]: bool: 0 Var[2]: null: 00000000 Var[3]: float: 0.000000 Var[4]: bool: 0 Var[5]: bool: 1 Var[6]: float: 77.319000 Var[7]: float: 77.319000 Var[8]: string: Var[9]: bool: 0 ---------- Function 2 ---------- VarCount: 9 Flag: 02 Type: 00 Name: crdenpcmonitorscript Name: crdenpcmonitorscript Event: printNearbyValidActors Status: uint8: 03 uint8: 02 Returntype: None Docstring: Function flags: 00 Function user flags: 00000000 Function local name: ::temp80 Function local type: ReferenceAlias Function local name: ::temp81 Function local type: Bool Function local name: ::temp82 Function local type: Actor Function local name: ::temp83 Function local type: Bool Function local name: ::NoneVar Function local type: None Function local name: actorNames Function local type: String Function local name: A Function local type: Actor Function local name: ::temp84 Function local type: String Function local name: ::temp85 Function local type: String Opcodes: 88 CAST ::temp80 0 CMPEQ ::temp81 ::ValidAttacker1_var ::temp80 NOT ::temp81 ::temp81 JMPF ::temp81 84 ASSIGN actorNames CALLM GetActorRef, ::ValidAttacker1_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames * CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker2_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker3_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker4_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , A+: CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker5_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , E: CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker6_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , O: CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker7_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , A: CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 STRCAT ::temp85 closest npc(s): actorNames CALLM debugMsg, self, ::NoneVar, ::temp85, 0, CALLM Stop, self, ::NoneVar, CALLM start, self, ::temp83, JMP 2 CALLM debugMsg, self, ::NoneVar, closest npc alias is empty, 0, uint32: 00000055 Var: crdenpcmonitorscript: 5DDB2FD0 Var[1]: ReferenceAlias: 00000000 Var[2]: bool: 1 Var[3]: Actor: 00000000 Var[4]: bool: 0 Var[5]: null: 00000000 Var[6]: string: Var[7]: Actor: 00000000 Var[8]: string: Var[9]: string: closest npc(s): ---------- Function 3 ---------- VarCount: 0 Flag: 02 Type: 00 Name: crdenpcmonitorscript Name: Quest Event: start Status: uint8: 03 uint8: 02 Returntype: Bool Docstring: Function flags: 00 Function user flags: 02000000 Opcodes: 0 uint32: 00000000 Var: null: 00000000 and here is the papyrus log from it: Papyrus.0.log Tried loading the test save with the suspended stack a couple of times but never seemed to clear nor did DE restart (no crde output into console). Loaded the save before the stuck stack and everything seems fine again. Edit2: Had it happen a second time when reloading the same save. Last output in the console from DE is: "[CRDE] closest npc(s):" No entries for NPCs, though there is a hunter 4 or 5 feet away.
Verstort Posted October 8, 2015 Posted October 8, 2015 Ok, little update. Been playing a little while now. Doesn't seem to be any problem. I've been keeping a close eye on my saves with the save tool and the most suspended stacks I've seen is one and it's usually processed pretty quickly. The only odd thing I've noticed: After quiting (CTD) and loading up again, I sometimes got a message: "[CRDE] zazKeywordEffectRefresh is not loaded, are you sure you installed zaz?" Had it a handful of times. Zaz is definitely installed (6.07). Didn't continue playing if I got it so quit and reloaded again just in case. I could not get it to reproduce reliably. Here is a log from one such run: Papyrus.1.log EDIT: Lol just as I posted the above I load up my game and find a stuck suspended stack. Time between test saves tells me I waited 5 mins for it to budge. The suspended stack is not present in the save I loaded so it seems to have happened after reloading the game. Here is the dump from the save tool of the related active script: ID: 000B3EC8 Var: bool: 1 Uint8: 02 Uint8: 00 Uint8: 00 Functions: 3 ---------- Function 1 ---------- VarCount: 9 Flag: 02 Type: 00 Name: crdeplayermonitorscript Name: crdeplayermonitorscript Event: OnUpdate Status: uint8: 03 uint8: 02 Returntype: None Docstring: Function flags: 00 Function user flags: 00000000 Function local name: ::temp0 Function local type: Bool Function local name: ::NoneVar Function local type: None Function local name: ::temp1 Function local type: Float Function local name: ::temp2 Function local type: Bool Function local name: ::temp3 Function local type: Bool Function local name: ::temp4 Function local type: Float Function local name: onupdatetimeteststart Function local type: Float Function local name: ::temp5 Function local type: String Function local name: ::temp6 Function local type: Bool Opcodes: 74 PROPGET bCRDEEnable ::MCM_var ::temp0 CMPEQ ::temp0 ::temp0 0 JMPF ::temp0 5 CALLM clear_force_variables, self, ::NoneVar, 0, PROPGET fEventInterval ::MCM_var ::temp1 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, JMP 68 CALLM IsInCombat, ::player_var, ::temp2, JMPF ::temp2 14 JMPF ::forceGreetIncomplete_var 3 CALLM clear_force_variables, self, ::NoneVar, 0, JMP 1 ASSIGN ::wasInCombat_var 1 NOT ::temp3 ::wasInCombat_var JMPF ::temp3 3 CALLM debugMsg, self, ::NoneVar, player in combat, do nothing, looping slower, 1, JMP 1 PROPGET fEventInterval ::MCM_var ::temp1 CAST ::temp4 5 FADD ::temp4 ::temp1 ::temp4 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp4, JMP 53 CMPEQ ::temp3 ::wasInCombat_var 1 JMPF ::temp3 6 ASSIGN ::wasInCombat_var 0 CALLM debugMsg, self, ::NoneVar, player has left combat, do nothing and wait 20 seconds before returning to normal, 1, CAST ::temp1 20 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, JMP 46 CALLS utility.GetCurrentRealTime, ::temp4, ASSIGN onupdatetimeteststart ::temp4 JMPF ::forceGreetIncomplete_var 24 CALLS utility.GetCurrentGameTime, ::temp1, ASSIGN CurrentRealTime ::temp1 FSUB ::temp4 busyGameTime CurrentRealTime CAST ::temp1 1400 FMUL ::temp1 ::temp4 ::temp1 CAST ::temp5 ::temp1 STRCAT ::temp5 force greet is Incomplete, ::temp5 STRCAT ::temp5 ::temp5 GMin remain CALLM debugMsg, self, ::NoneVar, ::temp5, 1, PROPGET bResetDHLP ::MCM_var ::temp3 JMPF ::temp3 6 CALLM dhlpResume, ::Mods_var, ::NoneVar, CALLM clear_force_variables, self, ::NoneVar, 1, ASSIGN ::temp6 0 PROPSET bResetDHLP ::MCM_var ::temp6 JMP 1 CMPLT ::temp6 busyGameTime CurrentRealTime JMPF ::temp6 5 CALLM dhlpResume, ::Mods_var, ::NoneVar, CALLM clear_force_variables, self, ::NoneVar, 1, CALLM debugMsg, self, ::NoneVar, force greet failed, ran out of time, 1, JMP 1 JMP 1 CMPEQ ::temp3 threadBusy 0 JMPF ::temp3 5 ASSIGN threadBusy 1 CALLM attemptApproach, self, ::NoneVar, ASSIGN threadBusy 0 JMP 1 CALLM tryDebug, self, ::NoneVar, CALLM printNearbyValidActors, ::NPCMonitorScript_var, ::NoneVar, CALLS utility.GetCurrentRealTime, ::temp4, FSUB ::temp1 ::temp4 onupdatetimeteststart CAST ::temp5 ::temp1 STRCAT ::temp5 OnUpdate time: ::temp5 CALLM debugMsg, self, ::NoneVar, ::temp5, 0, JMPF ::forceGreetIncomplete_var 4 CAST ::temp4 5 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp4, JMP 3 PROPGET fEventInterval ::MCM_var ::temp1 CALLM RegisterForSingleUpdate, self, ::NoneVar, ::temp1, uint32: 0000003E Var: crdeplayermonitorscript: 1530AF70 Var[1]: bool: 0 Var[2]: null: 00000000 Var[3]: float: 0.000000 Var[4]: bool: 0 Var[5]: bool: 1 Var[6]: float: 77.319000 Var[7]: float: 77.319000 Var[8]: string: Var[9]: bool: 0 ---------- Function 2 ---------- VarCount: 9 Flag: 02 Type: 00 Name: crdenpcmonitorscript Name: crdenpcmonitorscript Event: printNearbyValidActors Status: uint8: 03 uint8: 02 Returntype: None Docstring: Function flags: 00 Function user flags: 00000000 Function local name: ::temp80 Function local type: ReferenceAlias Function local name: ::temp81 Function local type: Bool Function local name: ::temp82 Function local type: Actor Function local name: ::temp83 Function local type: Bool Function local name: ::NoneVar Function local type: None Function local name: actorNames Function local type: String Function local name: A Function local type: Actor Function local name: ::temp84 Function local type: String Function local name: ::temp85 Function local type: String Opcodes: 88 CAST ::temp80 0 CMPEQ ::temp81 ::ValidAttacker1_var ::temp80 NOT ::temp81 ::temp81 JMPF ::temp81 84 ASSIGN actorNames CALLM GetActorRef, ::ValidAttacker1_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames * CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker2_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker3_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker4_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , A+: CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker5_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , E: CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 CALLM GetActorRef, ::ValidAttacker6_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp85 actorNames , O: CALLM GetDisplayName, A, ::temp84, STRCAT ::temp85 ::temp85 ::temp84 ASSIGN actorNames ::temp85 JMP 1 CALLM GetActorRef, ::ValidAttacker7_var, ::temp82, ASSIGN A ::temp82 CAST ::temp82 0 CMPEQ ::temp83 A ::temp82 NOT ::temp83 ::temp83 JMPF ::temp83 6 STRCAT ::temp84 actorNames , A: CALLM GetDisplayName, A, ::temp85, STRCAT ::temp84 ::temp84 ::temp85 ASSIGN actorNames ::temp84 JMP 1 STRCAT ::temp85 closest npc(s): actorNames CALLM debugMsg, self, ::NoneVar, ::temp85, 0, CALLM Stop, self, ::NoneVar, CALLM start, self, ::temp83, JMP 2 CALLM debugMsg, self, ::NoneVar, closest npc alias is empty, 0, uint32: 00000055 Var: crdenpcmonitorscript: 5DDB2FD0 Var[1]: ReferenceAlias: 00000000 Var[2]: bool: 1 Var[3]: Actor: 00000000 Var[4]: bool: 0 Var[5]: null: 00000000 Var[6]: string: Var[7]: Actor: 00000000 Var[8]: string: Var[9]: string: closest npc(s): ---------- Function 3 ---------- VarCount: 0 Flag: 02 Type: 00 Name: crdenpcmonitorscript Name: Quest Event: start Status: uint8: 03 uint8: 02 Returntype: Bool Docstring: Function flags: 00 Function user flags: 02000000 Opcodes: 0 uint32: 00000000 Var: null: 00000000 and here is the papyrus log from it: Papyrus.0.log Tried loading the test save with the suspended stack a couple of times but never seemed to clear nor did DE restart (no crde output into console). Loaded the save before the stuck stack and everything seems fine again. Edit2: Had it happen a second time when reloading the same save. Last output in the console from DE is: "[CRDE] closest npc(s):" No entries for NPCs, though there is a hunter 4 or 5 feet away. [10/08/2015 - 02:12:30AM] Cannot open store for class "pchswolfclubdaymoyl", missing file? [10/08/2015 - 02:12:30AM] Error: Unable to link types associated with function "enslaveWC" in state "" on object "crdedistantenslavescript". [10/08/2015 - 02:12:30AM] Error: Unable to link type of variable "::DistantEnslaveScript_var" on object "crdemodsmonitorscript" Welp, guess the issue isn't resolved. Either try installing death alternative and see if you get the same bug or revert back to having wolfclub installed. I still have no idea why that specific class call causes the papyrus engine to have a fit if it can't find it and only some of the time, at this rate I might as well disable wolfclub since it's a dead and incomplete mod anyway. Reading the papyrus assembler is going to take time, it might contain some useful information but not sure yet. And, yeah, once in a blue moon I get the zaz is not loaded bug too, no idea what causes it, but I suggest if you catch it that you save and cycle skyrim to see if it fixes it, since it might interfere with DE working correctly (depending on what else didn't load correctly from zazanimationpack)
zippy57 Posted October 8, 2015 Posted October 8, 2015 Yup save tool. Don't think it's new. I've since clean saved and don't seem to have any stacked scripts so far, but I've not turned back on that setting either For the armor how about this: GetModelPath It might be too broad for what you want- ie it may include clothes that wouldn't technically be considered mage robes. But I don't think there are many models for mage robes, 4 or 5 maybe? ; Retrieve the file path for the male model of ArmorIronCuirass String FilePath = (Game.GetForm(0x00012E49) as Armor).GetModelPath(False) ; Returns "Armor\Iron\Male\CuirassLightGND.nif" 5 models (one for each spell skill subsection(novice, master, ect)), with the possible addition of 2-5 necromancer robes for this purpose (clearly, dangerous necromancer if wearing robes with a skull on them... ) and/or 2-5 robe models (blue robes, black robes, archmage robes) * 2 for each gender Still a little much to check for, and it doesn't include possible 3rd party wizard robes, but it's closer to an acceptable number, will probably use this as a backup if I don't find something better. I think there are only something like four models for mage robes. Apprentice, Journeyman, Necromancer, and Warlock, and everything else is just a texture set override.
Verstort Posted October 8, 2015 Posted October 8, 2015 Yup save tool. Don't think it's new. I've since clean saved and don't seem to have any stacked scripts so far, but I've not turned back on that setting either For the armor how about this: GetModelPath It might be too broad for what you want- ie it may include clothes that wouldn't technically be considered mage robes. But I don't think there are many models for mage robes, 4 or 5 maybe? ; Retrieve the file path for the male model of ArmorIronCuirass String FilePath = (Game.GetForm(0x00012E49) as Armor).GetModelPath(False) ; Returns "Armor\Iron\Male\CuirassLightGND.nif" 5 models (one for each spell skill subsection(novice, master, ect)), with the possible addition of 2-5 necromancer robes for this purpose (clearly, dangerous necromancer if wearing robes with a skull on them... ) and/or 2-5 robe models (blue robes, black robes, archmage robes) * 2 for each gender Still a little much to check for, and it doesn't include possible 3rd party wizard robes, but it's closer to an acceptable number, will probably use this as a backup if I don't find something better. I think there are only something like four models for mage robes. Apprentice, Journeyman, Necromancer, and Warlock, and everything else is just a texture set override. Sorry that went over my head since I normally don't work with assets, NIF is the mesh not the texture, right? I'm pretty sure there are at least two more models you missed, arch mage and one of the robes has a hood, but you might be right, if they really are just recolored from novice->apprentice->adept that reduces the range pretty significantly. We still need to double for the two genders though, and while I imagine the string comparison is slow like in any language, string compare lets me avoid mod dependency so I could even check against DLC robes, so there are still going to be over 10 string compares, more than I would like but could be manageable. Edit: So if the user has a mod that changes the robes so that there is more variety, not the HD textures but completely different robes, do I just throw those users under the bus? I'm not even sure there is such a mod, but I can't help but think there HAS to be a better and faster way to identify robes that the game uses for the dialogue.
zippy57 Posted October 8, 2015 Posted October 8, 2015 I think there are only something like four models for mage robes. Apprentice, Journeyman, Necromancer, and Warlock, and everything else is just a texture set override.Sorry that went over my head since I normally don't work with assets, NIF is the mesh not the texture, right? I'm pretty sure there are at least two more models you missed, arch mage and one of the robes has a hood, but you might be right, if they really are just recolored from novice->apprentice->adept that reduces the range pretty significantly. We still need to double for the two genders though, and while I imagine the string comparison is slow like in any language, string compare lets me avoid mod dependency so I could even check against DLC robes, so there are still going to be over 10 string compares, more than I would like but could be manageable. Edit: So if the user has a mod that changes the robes so that there is more variety, not the HD textures but completely different robes, do I just throw those users under the bus? I'm not even sure there is such a mod, but I can't help but think there HAS to be a better and faster way to identify robes that the game uses for the dialogue. Yeah, I missed the Archmage model. GetModelPath returns the model in the armor itself (the one seen in the menus or when the item is dropped) and not the one specified by ArmorAddons (the one seen when the item is actually equipped). I'm not sure which item actually has the hood and torso as one piece, so I can't check, but I would assume the hooded version of the robe and the non-hooded version would re-use the same ground model, meaning the hood itself would be an ArmorAddon and GetModelPath would return the same for either. I would also assume at least some of the armor replacers that redirect the meshes completely wouldn't actually be changing the base/world/ground models, only the equipped versions, so hopefully that wouldn't be a problem. And there's no need to make a separate check for male and female sense the function has an argument that controls that; the example you were given will return the male path every time (using True at the end instead of False gets the female path). Anyway, I just now actually read what you were looking for earlier and the dialogue you're talking about is probably WICommentCollegeRobesHello, FID A85FE. No conditions on the topics themselves other than VoiceType, so I suppose the scripts must be doing something about it. TIF__000ABC35, 54, 7D, 7E, 80, and 82.
Verstort Posted October 8, 2015 Posted October 8, 2015 I think there are only something like four models for mage robes. Apprentice, Journeyman, Necromancer, and Warlock, and everything else is just a texture set override.Sorry that went over my head since I normally don't work with assets, NIF is the mesh not the texture, right? I'm pretty sure there are at least two more models you missed, arch mage and one of the robes has a hood, but you might be right, if they really are just recolored from novice->apprentice->adept that reduces the range pretty significantly. We still need to double for the two genders though, and while I imagine the string comparison is slow like in any language, string compare lets me avoid mod dependency so I could even check against DLC robes, so there are still going to be over 10 string compares, more than I would like but could be manageable. Edit: So if the user has a mod that changes the robes so that there is more variety, not the HD textures but completely different robes, do I just throw those users under the bus? I'm not even sure there is such a mod, but I can't help but think there HAS to be a better and faster way to identify robes that the game uses for the dialogue. Yeah, I missed the Archmage model. GetModelPath returns the model in the armor itself (the one seen in the menus or when the item is dropped) and not the one specified by ArmorAddons (the one seen when the item is actually equipped). I'm not sure which item actually has the hood and torso as one piece, so I can't check, but I would assume the hooded version of the robe and the non-hooded version would re-use the same ground model, meaning the hood itself would be an ArmorAddon and GetModelPath would return the same for either. I would also assume at least some of the armor replacers that redirect the meshes completely wouldn't actually be changing the base/world/ground models, only the equipped versions, so hopefully that wouldn't be a problem. And there's no need to make a separate check for male and female sense the function has an argument that controls that; the example you were given will return the male path every time (using True at the end instead of False gets the female path). Anyway, I just now actually read what you were looking for earlier and the dialogue you're talking about is probably WICommentCollegeRobesHello, FID A85FE. No conditions on the topics themselves other than VoiceType, so I suppose the scripts must be doing something about it. TIF__000ABC35, 54, 7D, 7E, 80, and 82. Oh that's really useful, I'll check it out tomorrow. Thanks for the help!
Monoman1 Posted October 8, 2015 Posted October 8, 2015 I've sometimes noticed this message in the console when DE stops working: [CRDE] Player does not have prison overhaul or patch I have both installed.
jfraser Posted October 8, 2015 Posted October 8, 2015 I was going to read through all this, but then figured it would be easier to just bring it up. I understand people who don't use Death Alternative have issues when using this mod with Simple Slavery. Could someone provide details? Also, why didn't you tell me? I can easily make a form of SS that doesn't have a DA hook.
Verstort Posted October 8, 2015 Posted October 8, 2015 I've sometimes noticed this message in the console when DE stops working: [CRDE] Player does not have prison overhaul or patch I have both installed. Being the last thing on the list is odd, but the message itself shouldn't show for you that is correct, both modLoadedPrisonOverhaul and modLoadedPrisonOverhaulPatch must be false. I did change the way they were detected in 10.0.1 but they worked for me, are they lower in the load order than DE by any chance? I was going to read through all this, but then figured it would be easier to just bring it up. I understand people who don't use Death Alternative have issues when using this mod with Simple Slavery. Could someone provide details? Also, why didn't you tell me? I can easily make a form of SS that doesn't have a DA hook. http://www.loverslab.com/topic/40916-deviously-enslaved-v104-1715/page-29?do=findComment&comment=1244225 I haven't seen ebondream in a long time, but normally I assume that when I try to build a connection into a mod without instruction, and it fails in some way, that it's because I did something wrong and that there is already a correct way to do it, so I put it on my todo list (which has become a blackhole) and moved on to fixing the other bugs that didn't have workarounds and needed my more immediate attention, then my bad memory made me forget about it. Making a DA-less version seems a bit extreme though... the error is caused by DE starting the quest by calling: (Quest.getQuest("SSLV_DAInt") as SSLV_DAIntScript).QuestStart(none, none, none) So I assumed the problem was that the VM couldn't find DA type daymoyl_QuestTemplate when it tried to start the quest. Assuming quests that inherit from daymoyl_QuestTemplate cannot be created/started without DA installed, which I haven't really tested I'm just assuming, then you could probably just move the quest script code to a general quest and make the DA_quest call/start the general quest, that way the DA_quest failing to be used doesn't stop the quest from working. If I'm wrong, and daymoyl_QuestTemplate quests can start just not by my mod for some reason, an event alternative should be all that is needed. You mentioned moving the character to a marker, something I had never actually considered and haven't tried that yet.
jfraser Posted October 8, 2015 Posted October 8, 2015 I understand the to-do black hole! Making a non DA version is simplicity itself - I'll just delete the script you mentioned. That will be good for other mods that want to connect to SS but that don't use DA. I know lots of people find DA causes problems (although I find it to be very stable these days), so it will be a win-win.
Bricks Posted October 9, 2015 Posted October 9, 2015 So installed the new 10.0.01. Good news, MCM is back and mod is working. Bad news, its making a mess of the papyrus. Here are a few samples from tjhe papyrus of a new game played for about 30 mins, these are the two main types of error. papyrus is 30 megs, which is far larger than it should be, almsot all of it are CRDE messages. [10/08/2015 - 11:34:18PM] warning: Property iSexEventDevice on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property iWeightCursedCollar on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property iSexEventKey on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property bVulnerableCollar on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp0" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] ERROR: Property fEventInterval not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp1" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] ERROR: Property bCRDEEnable not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp0" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] ERROR: Property fEventInterval not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp1"
Verstort Posted October 9, 2015 Posted October 9, 2015 So installed the new 10.0.01. Good news, MCM is back and mod is working. Bad news, its making a mess of the papyrus. Here are a few samples from tjhe papyrus of a new game played for about 30 mins, these are the two main types of error. papyrus is 30 megs, which is far larger than it should be, almsot all of it are CRDE messages. [10/08/2015 - 11:34:18PM] warning: Property iSexEventDevice on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property iWeightCursedCollar on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property iSexEventKey on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [10/08/2015 - 11:34:18PM] warning: Property bVulnerableCollar on script crdemcmscript attached to crdeMCM (7E00BF4F) cannot be initialized because the script no longer contains that property [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp0" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] ERROR: Property fEventInterval not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp1" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] ERROR: Property bCRDEEnable not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp0" stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 109 [10/09/2015 - 12:17:59AM] ERROR: Property fEventInterval not found on crdemcmscript. Aborting call and returning None stack: [crdePlayerMonitor (7E001827)].crdeplayermonitorscript.OnUpdate() - "crdeplayermonitorscript.psc" Line 112 [10/09/2015 - 12:17:59AM] warning: Assigning None to a non-object variable named "::temp1" Getting some "warning: Assigning None to a non-object variable named "::temp1"" errors are normal and they don't normally cause any problems, but I've never seen one be called for those lines in that script. Several properties on MCM don't seem to exist, suggests a corrupted or missing MCM script, you could try redownloading in the event your download got corrupted somehow, if the upload was corrupt I would have expected several users to show up with these errors before now. Are you sure there aren't any more lines at the top of the log that match the filter "crde"? Giving me any errors found above that first line, something like "Cannot open store for class "pchswolfclubdaymoyl", missing file?" or similar might tell me more. Otherwise this is a completely new bug to me, never seen this and not sure what would cause it if not for corrupt mcm script. Double checking here, but this is a clean save right?
Bricks Posted October 9, 2015 Posted October 9, 2015 Clean save, also, as I said, this was a sample/ There are a LOT more lines with CRDE. more than 50,000 instances of CRDE (using count) in fact. I've always had an issue with DE throwing Stacks at me, but this is a new high.
bahamut2119 Posted October 9, 2015 Posted October 9, 2015 I also saw that same po issue i didn't test it though i was only ingame to test my latest armor conversion.
Sathar Posted October 9, 2015 Posted October 9, 2015 I also saw that same po issue i didn't test it though i was only ingame to test my latest armor conversion. Ditto. I've even gotten PO/POx not installed debug spam in my console while a POx scene was running.
Bane Master Posted October 9, 2015 Posted October 9, 2015 Can someone else check their game for suspended stacks relating to crde. Most of them seem to be "crdeSexStartCatch" which I believe is something to do with the "Trigger after all sex" setting? Which I have enabled. Edit: I did update from 10.0 to 10.1 today without clean saving so MAYBE that's the problem Is that savetool? I've never seen a stack analysis function for it before, is that new? I haven't updated in a few months... I'll test my own saves later, if DE is flooding the stack that would explain stackdumps with Mia's lair, although I have no idea why the sexcatch hook wouldn't pop off of the stack. The event is called every time sexlab starts, it's what we use to stop approaches if some other mod starts sex with the player, so the approacher doesn't interupt us.We also trigger the post sex code for devices/enslavement after sex from there. That function should pop off the stack as soon as it's finished though... Does anyone know how the game detects if you're wearing a wizard robe from the college? I haven't found the dialogue in CK, but I want to use the same detection as a weapon protection (if the player is wearing a wizard robe, should be considered as dangerous as a sword in my opinion, since EVERYONE in skyrim knows about those robes) I'm no modder and don't know what this returns exactly but would this work: GetWornForm - Actor Returns the form of the item worn with the specified slotMask. (This function requires SKSE) Form Function GetWornForm(int slotMask) native ; Obtain the player's currently equipped cuirass Armor Cuirass = Game.GetPlayer().GetWornForm(0x00000004) as Armor http://www.creationkit.com/GetWornForm_-_Actor Yeah that works for one armor, but there are at least ~30 armors in the vanillia game that count as college wizard robes (since all the varients (destruction, illusion, ect) are different forms) Maybe the game engine can get away with checking if the player is wearing one of ~30 forms but that's too heavy for papyrus, especially DE which is already too heavy. I was expecting a keyword or something but couldn't find it. You could dump the variants in a formlist (assuming one doesn't already exist - it may do) and then: bool WearingMageArmor = MageArmorformlist.hasform(Game.GetPlayer().GetWornForm(0x00000003) as Armor) Shouldn't be particularly resource hungry...
Verstort Posted October 9, 2015 Posted October 9, 2015 Clean save, also, as I said, this was a sample/ There are a LOT more lines with CRDE. more than 50,000 instances of CRDE (using count) in fact. I've always had an issue with DE throwing Stacks at me, but this is a new high. I never get replicable stackdumps outside of one part of Mia's lair, you shouldn't be getting them all the time. As I understand stackdumps, they shouldn't cause the errors you get which seem to be caused from a loaded script not having variables loaded to it. From just the parts you've shown me I can't pinpoint what could cause that other than a corrupt mcm script file. I also saw that same po issue i didn't test it though i was only ingame to test my latest armor conversion. Ditto. I've even gotten PO/POx not installed debug spam in my console while a POx scene was running. I'm hearing it but I don't believe it, I'm using the same method for detection those two mods that I use for detection any other mod. Maybe, if you loaded a save during a papyrus heavy segment while PO is active, since DE re-detects mods when you load a new save, the PO esp might not have been loaded yet, but the only thing I could think to help that would be delaying DE mod detection longer, and that's just a stopgap. I'll double check tonight, but if I don't find anything I might have to revert to the far slower alternate method of looking up the esp sequentially as a work around. Can someone else check their game for suspended stacks relating to crde. Most of them seem to be "crdeSexStartCatch" which I believe is something to do with the "Trigger after all sex" setting? Which I have enabled. Edit: I did update from 10.0 to 10.1 today without clean saving so MAYBE that's the problem Is that savetool? I've never seen a stack analysis function for it before, is that new? I haven't updated in a few months... I'll test my own saves later, if DE is flooding the stack that would explain stackdumps with Mia's lair, although I have no idea why the sexcatch hook wouldn't pop off of the stack. The event is called every time sexlab starts, it's what we use to stop approaches if some other mod starts sex with the player, so the approacher doesn't interupt us.We also trigger the post sex code for devices/enslavement after sex from there. That function should pop off the stack as soon as it's finished though... Does anyone know how the game detects if you're wearing a wizard robe from the college? I haven't found the dialogue in CK, but I want to use the same detection as a weapon protection (if the player is wearing a wizard robe, should be considered as dangerous as a sword in my opinion, since EVERYONE in skyrim knows about those robes) I'm no modder and don't know what this returns exactly but would this work: GetWornForm - Actor Returns the form of the item worn with the specified slotMask. (This function requires SKSE) Form Function GetWornForm(int slotMask) native ; Obtain the player's currently equipped cuirass Armor Cuirass = Game.GetPlayer().GetWornForm(0x00000004) as Armor http://www.creationkit.com/GetWornForm_-_Actor Yeah that works for one armor, but there are at least ~30 armors in the vanillia game that count as college wizard robes (since all the varients (destruction, illusion, ect) are different forms) Maybe the game engine can get away with checking if the player is wearing one of ~30 forms but that's too heavy for papyrus, especially DE which is already too heavy. I was expecting a keyword or something but couldn't find it. You could dump the variants in a formlist (assuming one doesn't already exist - it may do) and then: bool WearingMageArmor = MageArmorformlist.hasform(Game.GetPlayer().GetWornForm(0x00000003) as Armor) Shouldn't be particularly resource hungry... I've never used formlists, always arrays of forms instead, but since I can't really see how the engine balances load for something like searching through a data structure, I can't rule out that searching a form list is faster since they could have used an internal function for it. I'll add this as a potential solution as well, thanks for the suggestion.
Bane Master Posted October 9, 2015 Posted October 9, 2015 Clean save, also, as I said, this was a sample/ There are a LOT more lines with CRDE. more than 50,000 instances of CRDE (using count) in fact. I've always had an issue with DE throwing Stacks at me, but this is a new high. I never get replicable stackdumps outside of one part of Mia's lair, you shouldn't be getting them all the time. As I understand stackdumps, they shouldn't cause the errors you get which seem to be caused from a loaded script not having variables loaded to it. From just the parts you've shown me I can't pinpoint what could cause that other than a corrupt mcm script file. I also saw that same po issue i didn't test it though i was only ingame to test my latest armor conversion. Ditto. I've even gotten PO/POx not installed debug spam in my console while a POx scene was running. I'm hearing it but I don't believe it, I'm using the same method for detection those two mods that I use for detection any other mod. Maybe, if you loaded a save during a papyrus heavy segment while PO is active, since DE re-detects mods when you load a new save, the PO esp might not have been loaded yet, but the only thing I could think to help that would be delaying DE mod detection longer, and that's just a stopgap. I'll double check tonight, but if I don't find anything I might have to revert to the far slower alternate method of looking up the esp sequentially as a work around. Can someone else check their game for suspended stacks relating to crde. Most of them seem to be "crdeSexStartCatch" which I believe is something to do with the "Trigger after all sex" setting? Which I have enabled. Edit: I did update from 10.0 to 10.1 today without clean saving so MAYBE that's the problem Is that savetool? I've never seen a stack analysis function for it before, is that new? I haven't updated in a few months... I'll test my own saves later, if DE is flooding the stack that would explain stackdumps with Mia's lair, although I have no idea why the sexcatch hook wouldn't pop off of the stack. The event is called every time sexlab starts, it's what we use to stop approaches if some other mod starts sex with the player, so the approacher doesn't interupt us.We also trigger the post sex code for devices/enslavement after sex from there. That function should pop off the stack as soon as it's finished though... Does anyone know how the game detects if you're wearing a wizard robe from the college? I haven't found the dialogue in CK, but I want to use the same detection as a weapon protection (if the player is wearing a wizard robe, should be considered as dangerous as a sword in my opinion, since EVERYONE in skyrim knows about those robes) I'm no modder and don't know what this returns exactly but would this work: GetWornForm - Actor Returns the form of the item worn with the specified slotMask. (This function requires SKSE) Form Function GetWornForm(int slotMask) native ; Obtain the player's currently equipped cuirass Armor Cuirass = Game.GetPlayer().GetWornForm(0x00000004) as Armor http://www.creationkit.com/GetWornForm_-_Actor Yeah that works for one armor, but there are at least ~30 armors in the vanillia game that count as college wizard robes (since all the varients (destruction, illusion, ect) are different forms) Maybe the game engine can get away with checking if the player is wearing one of ~30 forms but that's too heavy for papyrus, especially DE which is already too heavy. I was expecting a keyword or something but couldn't find it. You could dump the variants in a formlist (assuming one doesn't already exist - it may do) and then: bool WearingMageArmor = MageArmorformlist.hasform(Game.GetPlayer().GetWornForm(0x00000003) as Armor) Shouldn't be particularly resource hungry... I've never used formlists, always arrays of forms instead, but since I can't really see how the engine balances load for something like searching through a data structure, I can't rule out that searching a form list is faster since they could have used an internal function for it. I'll add this as a potential solution as well, thanks for the suggestion. Pretty sure I read somewhere that arrays are quicker than formlists, i'll see if I can find the article - If it is true and speed really is of the essence then (assuming a relevant formlist exists) - maybe copy the forms into array at Mod Init?
Verstort Posted October 10, 2015 Posted October 10, 2015 10.0.2 is a testing release, some of the new changes are untested, I'm just throwing this out to see if it fixes the POx issue for users who have it, and/or the last wolfclub fix attempt before I consider removing it from the mod (at that point, it will be almost 100% what it was back in 9.7.5, when it was reported working by most people) FIgured I would rather throw this out for users to play with over the weekend now so they can test it on their own time, faster. Deviously Enslaved Unofficial(v10.0.2 full untested).7z
pihwht Posted October 10, 2015 Posted October 10, 2015 10.0.2 is a testing release, some of the new changes are untested, I'm just throwing this out to see if it fixes the POx issue for users who have it, and/or the last wolfclub fix attempt before I consider removing it from the mod (at that point, it will be almost 100% what it was back in 9.7.5, when it was reported working by most people) FIgured I would rather throw this out for users to play with over the weekend now so they can test it on their own time, faster. Haven't played, but have installed 10.0.2 or three cleaned saves with different characters without the wolfclub scripts and the mcm showed up immediately in all three. It showed up in the console in all three. With a little luck, will play this weekend.
Verstort Posted October 10, 2015 Posted October 10, 2015 I haven't tested it yet, but I'm sure DE will not work with the new Simple slavery version that doesn't require DA, since DE uses that quest to start it. For now, stick with the DA version and install DA but leave the esp off if you don't want DA but you do want to play with SS through DE, I'll see if I can implement the other way to start simple slavery for the next release.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now