ordeiberon Posted May 5, 2015 Share Posted May 5, 2015 So I am trying to convert a mod of mine A Pipboy Replacer http://www.nexusmods.com/fallout3/mods/21133/?to New Vegas. I have got the paths to work and updated certain commands to get the script to save using NVSE Geck to but the script to change out the equipment is crashing the game upon it first being run. I hear the script activate the equipment swap, I see the equipment get removed, but it crashes before it comes back. I did not write the original script, just updated it to work with my Mod, so I am unsure to the need for the full equipment swaps but ti might have had something to do with F03 scenarios. So I was hoping someone could look and tell if I am missing something obvious that changed between F03 and NV. Code follows: scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is finished with the Doc. if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) if (Phase == 0) set ModKey to 48 player.unEquipItem Pipboy 1 1 player.removeItem PipboyGlove 1 1 player.additem PipboywristPC 1 1 set EquippedItem to player.getEquippedObject 2 if (EquippedItem != 0) set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) player.removeItem EquippedItem 1 1 set Phase to 1 else set InitMod to 1 set Phase to 0 endif elseif (Phase == 1) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.EquipItem PipboywristPC 1 1 set InitMod to 1 set Phase to 0 endif endif ;Mod menu functions. if (ModMenuActive == 1) set ModMenuButton to getButtonPressed if (ModMenuButton == 0) set ModMenuActive to 2 set RemapKeyFlag to 1 showMessage BIDEpipRemapKey elseif (ModMenuButton == 1) set UninstallFlag to 1 set EquippedItem to player.getEquippedObject 2 if (EquippedItem != 0) player.unEquipItem EquippedItem endif player.removePerk BIDEpipLightPerk player.removeItem PipboywristPC 1 1 player.equipItem Pipboy 1 1 resetPipboyManager showMessage BIDEpipUninstall set ModMenuActive to 0 stopQuest BIDEpipRemover elseif (ModMenuButton == 2) set ModMenuActive to 0 endif elseif (ModMenuActive == 2) set RemapKeyFlag to 0 set ModMenuActive to 0 ;Normal functionality elseif (UninstallFlag == 0 && player.getItemCount Pipboy != 0) if (PipSpamTimer > 0) set PipSpamTimer to PipSpamTimer - getSecondsPassed endif ;Pip-Boy callup hook if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) set pipKeyState to 1 elseif (PipKeyState == 1) if (Phase == 0) set PipKeyState to 1 player.unEquipItem PipboywristPC 1 1 player.EquipItem Pipboy 1 1 resetPipboyManager set Phase to 2 elseif (Phase == 3) player.unEquipItem Pipboy 1 1 player.EquipItem PipboyWristPC 1 1 set EquippedItem to player.getEquippedObject 2 if (EquippedItem != 0) set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem) player.removeItem EquippedItem 1 1 set Phase to 4 else set Phase to 0 set PipKeyState to 0 endif elseif (Phase == 4) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.EquipItem PipboywristPC 1 1 set Phase to 0 set PipKeyState to 0 endif endif ;Pip-Boy light and options menu callup functionality if (isKeyPressed ModKey == 1 && KeyTimer < 3) set KeyTimer to KeyTimer + getSecondsPassed set ModKeyState to 1 elseif (KeyTimer >= 3) showMessage BIDEpipOptions set ModMenuActive to 1 set KeyTimer to 0 set ModKeyState to 0 elseif (isKeyPressed ModKey == 0 && KeyTimer < 3 && ModKeyState == 1) if (player.hasPerk BIDEpipLightPerk == 0) player.addPerk BIDEpipLightPerk playSound UIPipBoyLightOn else player.removePerk BIDEpipLightPerk playSound UIPipBoyLightOff endif set ModKeyState to 0 set KeyTimer to 0 elseif (isKeyPressed ModKey == 0 && ModKeyState == 0 && KeyTimer > 0) set KeyTimer to 0 endif ;If the player loses the Pip-Boy, remove the light, if it had been on. elseif (UninstallFlag == 0 && player.getItemCount Pipboy == 0 && player.hasPerk BIDEpipLightPerk == 1) player.removePerk BIDEpipLightPerk endif end ;Key remapping functionality. begin Menumode 1001 if (RemapKeyFlag == 1) set KeyRemapBuffer to getKeyPress 0 if (KeyRemapBuffer > 0 && KeyRemapBuffer < 256) set ModKey to KeyRemapBuffer endif endif end begin Menumode if (Phase == 2 && Menumode == 1) set Phase to 3 set PipSpamTimer to 0.3 endif end Ps Let me know if I need to post it in a different way or upload a WIP mod. Thanks. Link to comment
A.J. Posted May 6, 2015 Share Posted May 6, 2015 there are not big differences, theoretically that script should work if it works on FO3. Do you have a chance to bypass the part with the light perk and see if something changes? --- when something doesn't work and I don't get why, the first thing I do is introducing some printC in-between the lines, to understand the exact point that makes it CTD, and save that with SCOF i.e. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 etc. this gives me the exact moment of when it CTDs Link to comment
ordeiberon Posted May 6, 2015 Author Share Posted May 6, 2015 PrintC? I am unfamiliar with that command. I inputted it for the first section (up to 24) that I think is giving me issues. Where will the output be produced? It has crashed twice but I did not see any output. Edit: You mention save that with SCOF? I am trying this one: http://www.nexusmods.com/newvegas/mods/55898/?Do you recommend something else? Edit2: Okay I imputted PrintC for the whole script. Here is the revised Script: scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the intial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is out of the vault. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" player.EquipItem PipboywristPC 1 1 PrintC "20" set InitMod to 1 PrintC "21" set Phase to 0 PrintC "22" endif PrintC "23" endif PrintC "24" ;Mod menu functions. if (ModMenuActive == 1) PrintC "25" set ModMenuButton to getButtonPressed PrintC "26" if (ModMenuButton == 0) PrintC "27" set ModMenuActive to 2 PrintC "28" set RemapKeyFlag to 1 PrintC "29" showMessage BIDEpipRemapKey PrintC "30" elseif (ModMenuButton == 1) PrintC "31" set UninstallFlag to 1 PrintC "32" set EquippedItem to player.getEquippedObject 2 PrintC "33" if (EquippedItem != 0) PrintC "34" player.unEquipItem EquippedItem PrintC "35" endif PrintC "36" player.removePerk BIDEpipLightPerk PrintC "37" player.removeItem PipboywristPC 1 1 PrintC "38" player.equipItem Pipboy 1 1 PrintC "39" resetPipboyManager PrintC "40" showMessage BIDEpipUninstall PrintC "41" set ModMenuActive to 0 PrintC "42" stopQuest BIDEpipRemover PrintC "43" elseif (ModMenuButton == 2) PrintC "44" set ModMenuActive to 0 PrintC "45" endif PrintC "46" elseif (ModMenuActive == 2) PrintC "47" set RemapKeyFlag to 0 PrintC "48" set ModMenuActive to 0 PrintC "49" ;Normal functionality elseif (UninstallFlag == 0 && player.getItemCount Pipboy != 0) PrintC "50" if (PipSpamTimer > 0) PrintC "51" set PipSpamTimer to PipSpamTimer - getSecondsPassed PrintC "52" endif PrintC "53" ;Pip-Boy callup hook if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) PrintC "54" set pipKeyState to 1 PrintC "55" elseif (PipKeyState == 1) PrintC "56" if (Phase == 0) PrintC "57" set PipKeyState to 1 PrintC "58" player.unEquipItem PipboywristPC 1 1 PrintC "59" player.EquipItem Pipboy 1 1 PrintC "60" resetPipboyManager PrintC "61" set Phase to 2 PrintC "62" elseif (Phase == 3) PrintC "63" player.unEquipItem Pipboy 1 1 PrintC "64" player.EquipItem PipboyWristPC 1 1 PrintC "65" set EquippedItem to player.getEquippedObject 2 PrintC "66" if (EquippedItem != 0) PrintC "67" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem) PrintC "68" player.removeItem EquippedItem 1 1 PrintC "69" set Phase to 4 PrintC "70" else PrintC "71" set Phase to 0 PrintC "72" set PipKeyState to 0 PrintC "73" endif PrintC "74" elseif (Phase == 4) PrintC "75" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "76" player.equipItem EquippedItem 0 1 PrintC "77" player.EquipItem PipboywristPC 1 1 PrintC "78" set Phase to 0 PrintC "79" set PipKeyState to 0 PrintC "80" endif PrintC "81" endif PrintC "82" ;Pip-Boy light and options menu callup functionality if (isKeyPressed ModKey == 1 && KeyTimer < 3) PrintC "83" set KeyTimer to KeyTimer + getSecondsPassed PrintC "84" set ModKeyState to 1 PrintC "85" elseif (KeyTimer >= 3) PrintC "86" showMessage BIDEpipOptions PrintC "87" set ModMenuActive to 1 PrintC "88" set KeyTimer to 0 PrintC "89" set ModKeyState to 0 PrintC "90" elseif (isKeyPressed ModKey == 0 && KeyTimer < 3 && ModKeyState == 1) PrintC "91" if (player.hasPerk BIDEpipLightPerk == 0) PrintC "92" player.addPerk BIDEpipLightPerk PrintC "93" playSound UIPipBoyLightOn PrintC "94" else PrintC "95" player.removePerk BIDEpipLightPerk PrintC "96" playSound UIPipBoyLightOff PrintC "97" endif PrintC "98" set ModKeyState to 0 PrintC "99" set KeyTimer to 0 PrintC "100" elseif (isKeyPressed ModKey == 0 && ModKeyState == 0 && KeyTimer > 0) PrintC "101" set KeyTimer to 0 PrintC "102" endif PrintC "103" ;If the player loses the Pip-Boy, remove the light, if it had been on. elseif (UninstallFlag == 0 && player.getItemCount Pipboy == 0 && player.hasPerk BIDEpipLightPerk == 1) PrintC "104" player.removePerk BIDEpipLightPerk PrintC "105" endif PrintC "106" end ;Key remapping functionality. begin Menumode 1001 PrintC "108" if (RemapKeyFlag == 1) PrintC "109" set KeyRemapBuffer to getKeyPress 0 PrintC "110" if (KeyRemapBuffer > 0 && KeyRemapBuffer < 256) PrintC "111" set ModKey to KeyRemapBuffer PrintC "112" endif PrintC "113" endif PrintC "114" end begin Menumode PrintC "116" if (Phase == 2 && Menumode == 1) PrintC "117" set Phase to 3 PrintC "118" set PipSpamTimer to 0.3 PrintC "119" endif PrintC "120" end And here is the output produced by AutoSCOF =========================================================================== This console output file was started by the mod AutoSCOF. 5/6/2015 8:21:28 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 24 50 53 82 103 106 1 2 17 18 19 20 21 22 23 24 50 53 82 103 106 1 24 50 53 82 103 106 Something wrong with the has perk commands? Link to comment
A.J. Posted May 6, 2015 Share Posted May 6, 2015 I don't think it's something with the command itself, but with the perk. It's just a feeling, but... I'm having random issues in both NV and FO3, with pipboy replacers. I can't narrow it down, but I do feel it's a problem with the light they add. If you could, just as experiment, make a backup of your actual mod and modify it, bypassing the whole part that introduces a light perk, it could give both of us answers if my feeling is founded EDIT: yes sorry I was a bit "short" in my previous message. SCOF allows you to print the console on a file, so you can use a lot of PrintC" to print inside your code, things like variable values: PrintC "Myvar is: %f2" fMyVar This will print something like this: Myvar is: 0.00 assuming that fMyVar is a float and its value is 0. You can print a lot of variable types in many ways. It is ESSENTIAL when I debug a hard thing to debug like this one. Another command that could help you is Print (without C), but this prints strings so it's not your case now. Link to comment
ordeiberon Posted May 7, 2015 Author Share Posted May 7, 2015 Okay so this was the next code I tried, trying to skip all use of the light perk. scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is out of the vault. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" player.EquipItem PipboywristPC 1 1 PrintC "20" set InitMod to 1 PrintC "21" set Phase to 0 PrintC "22" endif PrintC "23" endif PrintC "24" ;Mod menu functions. if (ModMenuActive == 1) PrintC "25" set ModMenuButton to getButtonPressed PrintC "26" if (ModMenuButton == 0) PrintC "27" set ModMenuActive to 2 PrintC "28" set RemapKeyFlag to 1 PrintC "29" showMessage BIDEpipRemapKey PrintC "30" elseif (ModMenuButton == 1) PrintC "31" set UninstallFlag to 1 PrintC "32" set EquippedItem to player.getEquippedObject 2 PrintC "33" if (EquippedItem != 0) PrintC "34" player.unEquipItem EquippedItem PrintC "35" endif PrintC "36" ;player.removePerk BIDEpipLightPerk PrintC "37" player.removeItem PipboywristPC 1 1 PrintC "38" player.equipItem Pipboy 1 1 PrintC "39" resetPipboyManager PrintC "40" showMessage BIDEpipUninstall PrintC "41" set ModMenuActive to 0 PrintC "42" stopQuest BIDEpipRemover PrintC "43" elseif (ModMenuButton == 2) PrintC "44" set ModMenuActive to 0 PrintC "45" endif PrintC "46" elseif (ModMenuActive == 2) PrintC "47" set RemapKeyFlag to 0 PrintC "48" set ModMenuActive to 0 PrintC "49" ;Normal functionality elseif (UninstallFlag == 0 && player.getItemCount Pipboy != 0) PrintC "50" if (PipSpamTimer > 0) PrintC "51" set PipSpamTimer to PipSpamTimer - getSecondsPassed PrintC "52" endif PrintC "53" ;Pip-Boy callup hook if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) PrintC "54" set pipKeyState to 1 PrintC "55" elseif (PipKeyState == 1) PrintC "56" if (Phase == 0) PrintC "57" set PipKeyState to 1 PrintC "58" player.unEquipItem PipboywristPC 1 1 PrintC "59" player.EquipItem Pipboy 1 1 PrintC "60" resetPipboyManager PrintC "61" set Phase to 2 PrintC "62" elseif (Phase == 3) PrintC "63" player.unEquipItem Pipboy 1 1 PrintC "64" player.EquipItem PipboyWristPC 1 1 PrintC "65" set EquippedItem to player.getEquippedObject 2 PrintC "66" if (EquippedItem != 0) PrintC "67" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem) PrintC "68" player.removeItem EquippedItem 1 1 PrintC "69" set Phase to 4 PrintC "70" else PrintC "71" set Phase to 0 PrintC "72" set PipKeyState to 0 PrintC "73" endif PrintC "74" elseif (Phase == 4) PrintC "75" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "76" player.equipItem EquippedItem 0 1 PrintC "77" player.EquipItem PipboywristPC 1 1 PrintC "78" set Phase to 0 PrintC "79" set PipKeyState to 0 PrintC "80" endif PrintC "81" endif PrintC "82" ;Pip-Boy light and options menu callup functionality if (isKeyPressed ModKey == 1 && KeyTimer < 3) PrintC "83" set KeyTimer to KeyTimer + getSecondsPassed PrintC "84" set ModKeyState to 1 PrintC "85" elseif (KeyTimer >= 3) PrintC "86" showMessage BIDEpipOptions PrintC "87" set ModMenuActive to 1 PrintC "88" set KeyTimer to 0 PrintC "89" set ModKeyState to 0 PrintC "90" ;elseif (isKeyPressed ModKey == 0 && KeyTimer < 3 && ModKeyState == 1) PrintC "91" ;if (player.hasPerk BIDEpipLightPerk == 0) PrintC "92" ;player.addPerk BIDEpipLightPerk PrintC "93" ;playSound UIPipBoyLightOn PrintC "94" ;else PrintC "95" ;player.removePerk BIDEpipLightPerk PrintC "96" ;playSound UIPipBoyLightOff PrintC "97" ;endif PrintC "98" ;set ModKeyState to 0 PrintC "99" ;set KeyTimer to 0 PrintC "100" elseif (isKeyPressed ModKey == 0 && ModKeyState == 0 && KeyTimer > 0) PrintC "101" set KeyTimer to 0 PrintC "102" endif PrintC "103" ;If the player loses the Pip-Boy, remove the light, if it had been on. ;elseif (UninstallFlag == 0 && player.getItemCount Pipboy == 0 && player.hasPerk BIDEpipLightPerk == 1) PrintC "104" ;player.removePerk BIDEpipLightPerk PrintC "105" endif PrintC "106" end ;Key remapping functionality. begin Menumode 1001 PrintC "108" if (RemapKeyFlag == 1) PrintC "109" set KeyRemapBuffer to getKeyPress 0 PrintC "110" if (KeyRemapBuffer > 0 && KeyRemapBuffer < 256) PrintC "111" set ModKey to KeyRemapBuffer PrintC "112" endif PrintC "113" endif PrintC "114" end begin Menumode PrintC "116" if (Phase == 2 && Menumode == 1) PrintC "117" set Phase to 3 PrintC "118" set PipSpamTimer to 0.3 PrintC "119" endif PrintC "120" end And this is the revised error before the crash. =========================================================================== This console output file was started by the mod AutoSCOF. 5/6/2015 20:31:8 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 24 50 53 82 103 104 105 106 1 2 17 18 19 20 21 22 23 24 50 53 82 103 104 105 106 1 24 50 53 82 103 104 105 106 1 24 50 53 82 103 104 105 106 1 24 50 53 82 103 104 105 106 It seems some loop is incorrect? Does the PrintC list for the command just run or the command run after it? If after it perhaps menu mode 1001 is wrong? Link to comment
A.J. Posted May 7, 2015 Share Posted May 7, 2015 If you stay in gamemode, then it's ok that the console won't show those printC under the menumode blocks - menumode 1001 won't be executed until you go in menumode 1001. Concerning what's happening in console, I think there's something else that makes the game crash. You should go backward. For example, go on line 50 and put some Return, so that you only will execute half script, etc.etc. Here's my questions: - Do you have other running scripts? for example, where do you set the variable ModMenuActive? because there's something else that triggers it, which is not in this script. - What happens if you write on console the same equipitem line you are using in the script? I refer to the one that equips the pipboy wrist etc.etc. Are you sure these meshes are correctly rigged and work properly? You are using them on FO3, ok, but it would be better trying them in game in NV, just to double check. - Has the pipboy / wrist some running object script? - Are there other external factors that could interfere, like perks or spells? - The most important one... ARE YOU PLAYING VANILLA?!?!?!?!?!?!?!?!?!? Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 I should have no other scripts, though it took a sec to prove it, I couldn't seem to disable the mod, I'd load FOMM, unchecked the mod to test game, start NVSE, load, crash. It wasn't until I renamed the mod that it loaded without. I get an occasional error about fallout.ini being read only and would I FOMM to change it. I say yes. As to your other questions: No other scripts, as this is a fresh load, first time I didn't have DLC loaded, so just Falloutnv.esm and the mod. I'll try the script to equip it in the console but I have find the command to add the wristband item first. The replacement pipboy loaded with no issue when the mod is not loaded (the pipboy replacement, not the wristband the mod swaps it out for.) No script on the pipboy or the object. I double checked vanilla, as I thought perhaps I added NVSE wrong, but no, reinstalled NVSE, and starting from FOMM, unless FOMM is doing seomthing wrong (it's installed and started from the F03 Directory, but it reads the NV mods fine when I switch to NV loading.) I tried from NVSE_loader, but I can't adjust mods then, and of course it still crashed, but this time with no SCOF output. In the mean time here is the last test with the call up function blocked out. Still crashes. Could NVSE be loading wrong? is there another mod I should test with? scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is out of the vault. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" player.EquipItem PipboywristPC 1 1 PrintC "20" set InitMod to 1 PrintC "21" set Phase to 0 PrintC "22" endif PrintC "23" endif PrintC "24" ;Mod menu functions. if (ModMenuActive == 1) PrintC "25" set ModMenuButton to getButtonPressed PrintC "26" if (ModMenuButton == 0) PrintC "27" set ModMenuActive to 2 PrintC "28" set RemapKeyFlag to 1 PrintC "29" showMessage BIDEpipRemapKey PrintC "30" elseif (ModMenuButton == 1) PrintC "31" set UninstallFlag to 1 PrintC "32" set EquippedItem to player.getEquippedObject 2 PrintC "33" if (EquippedItem != 0) PrintC "34" player.unEquipItem EquippedItem PrintC "35" endif PrintC "36" ;player.removePerk BIDEpipLightPerk PrintC "37" player.removeItem PipboywristPC 1 1 PrintC "38" player.equipItem Pipboy 1 1 PrintC "39" resetPipboyManager PrintC "40" showMessage BIDEpipUninstall PrintC "41" set ModMenuActive to 0 PrintC "42" stopQuest BIDEpipRemover PrintC "43" elseif (ModMenuButton == 2) PrintC "44" set ModMenuActive to 0 PrintC "45" endif PrintC "46" elseif (ModMenuActive == 2) PrintC "47" set RemapKeyFlag to 0 PrintC "48" set ModMenuActive to 0 PrintC "49" ;Normal functionality elseif (UninstallFlag == 0 && player.getItemCount Pipboy != 0) PrintC "50" if (PipSpamTimer > 0) PrintC "51" set PipSpamTimer to PipSpamTimer - getSecondsPassed PrintC "52" endif PrintC "53" ;Pip-Boy callup hook if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) PrintC "54" set pipKeyState to 1 PrintC "55" elseif (PipKeyState == 1) PrintC "56" if (Phase == 0) PrintC "57" set PipKeyState to 1 PrintC "58" player.unEquipItem PipboywristPC 1 1 PrintC "59" player.EquipItem Pipboy 1 1 PrintC "60" resetPipboyManager PrintC "61" set Phase to 2 PrintC "62" elseif (Phase == 3) PrintC "63" player.unEquipItem Pipboy 1 1 PrintC "64" player.EquipItem PipboyWristPC 1 1 PrintC "65" set EquippedItem to player.getEquippedObject 2 PrintC "66" if (EquippedItem != 0) PrintC "67" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem) PrintC "68" player.removeItem EquippedItem 1 1 PrintC "69" set Phase to 4 PrintC "70" else PrintC "71" set Phase to 0 PrintC "72" set PipKeyState to 0 PrintC "73" endif PrintC "74" elseif (Phase == 4) PrintC "75" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "76" player.equipItem EquippedItem 0 1 PrintC "77" player.EquipItem PipboywristPC 1 1 PrintC "78" set Phase to 0 PrintC "79" set PipKeyState to 0 PrintC "80" endif PrintC "81" endif PrintC "82" ;endif PrintC "82a" ;endif PrintC "82b" ;Pip-Boy light and options menu callup functionality ;if (isKeyPressed ModKey == 1 && KeyTimer < 3) PrintC "83" ;set KeyTimer to KeyTimer + getSecondsPassed PrintC "84" ;set ModKeyState to 1 PrintC "85" ;elseif (KeyTimer >= 3) PrintC "86" ;showMessage BIDEpipOptions PrintC "87" ;set ModMenuActive to 1 PrintC "88" ;set KeyTimer to 0 PrintC "89" ;set ModKeyState to 0 PrintC "90" ;elseif (isKeyPressed ModKey == 0 && KeyTimer < 3 && ModKeyState == 1) PrintC "91" ;if (player.hasPerk BIDEpipLightPerk == 0) PrintC "92" ;player.addPerk BIDEpipLightPerk PrintC "93" ;playSound UIPipBoyLightOn PrintC "94" ;else PrintC "95" ;player.removePerk BIDEpipLightPerk PrintC "96" ;playSound UIPipBoyLightOff PrintC "97" ;endif PrintC "98" ;set ModKeyState to 0 PrintC "99" ;set KeyTimer to 0 PrintC "100" ;elseif (isKeyPressed ModKey == 0 && ModKeyState == 0 && KeyTimer > 0) PrintC "101" ;set KeyTimer to 0 PrintC "102" ;endif PrintC "103" ;If the player loses the Pip-Boy, remove the light, if it had been on. ;elseif (UninstallFlag == 0 && player.getItemCount Pipboy == 0 && player.hasPerk BIDEpipLightPerk == 1) PrintC "104" ;player.removePerk BIDEpipLightPerk PrintC "105" endif PrintC "106" end ;Key remapping functionality. begin Menumode 1001 PrintC "108" if (RemapKeyFlag == 1) PrintC "109" set KeyRemapBuffer to getKeyPress 0 PrintC "110" if (KeyRemapBuffer > 0 && KeyRemapBuffer < 256) PrintC "111" set ModKey to KeyRemapBuffer PrintC "112" endif PrintC "113" endif PrintC "114" end begin Menumode PrintC "116" if (Phase == 2 && Menumode == 1) PrintC "117" set Phase to 3 PrintC "118" set PipSpamTimer to 0.3 PrintC "119" endif PrintC "120" end and the output: =========================================================================== This console output file was started by the mod AutoSCOF. 5/7/2015 22:6:42 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1 2 17 18 19 20 21 22 23 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 1 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 Tried with NVSE Loader alone and still crashed. I also tried cutting out the menu mode just incase but still no luck scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is out of the vault. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" player.EquipItem PipboywristPC 1 1 PrintC "20" set InitMod to 1 PrintC "21" set Phase to 0 PrintC "22" endif PrintC "23" endif PrintC "24" ;Mod menu functions. if (ModMenuActive == 1) PrintC "25" set ModMenuButton to getButtonPressed PrintC "26" if (ModMenuButton == 0) PrintC "27" set ModMenuActive to 2 PrintC "28" set RemapKeyFlag to 1 PrintC "29" showMessage BIDEpipRemapKey PrintC "30" elseif (ModMenuButton == 1) PrintC "31" set UninstallFlag to 1 PrintC "32" set EquippedItem to player.getEquippedObject 2 PrintC "33" if (EquippedItem != 0) PrintC "34" player.unEquipItem EquippedItem PrintC "35" endif PrintC "36" ;player.removePerk BIDEpipLightPerk PrintC "37" player.removeItem PipboywristPC 1 1 PrintC "38" player.equipItem Pipboy 1 1 PrintC "39" resetPipboyManager PrintC "40" showMessage BIDEpipUninstall PrintC "41" set ModMenuActive to 0 PrintC "42" stopQuest BIDEpipRemover PrintC "43" elseif (ModMenuButton == 2) PrintC "44" set ModMenuActive to 0 PrintC "45" endif PrintC "46" elseif (ModMenuActive == 2) PrintC "47" set RemapKeyFlag to 0 PrintC "48" set ModMenuActive to 0 PrintC "49" ;Normal functionality elseif (UninstallFlag == 0 && player.getItemCount Pipboy != 0) PrintC "50" if (PipSpamTimer > 0) PrintC "51" set PipSpamTimer to PipSpamTimer - getSecondsPassed PrintC "52" endif PrintC "53" ;Pip-Boy callup hook if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) PrintC "54" set pipKeyState to 1 PrintC "55" elseif (PipKeyState == 1) PrintC "56" if (Phase == 0) PrintC "57" set PipKeyState to 1 PrintC "58" player.unEquipItem PipboywristPC 1 1 PrintC "59" player.EquipItem Pipboy 1 1 PrintC "60" resetPipboyManager PrintC "61" set Phase to 2 PrintC "62" elseif (Phase == 3) PrintC "63" player.unEquipItem Pipboy 1 1 PrintC "64" player.EquipItem PipboyWristPC 1 1 PrintC "65" set EquippedItem to player.getEquippedObject 2 PrintC "66" if (EquippedItem != 0) PrintC "67" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem) PrintC "68" player.removeItem EquippedItem 1 1 PrintC "69" set Phase to 4 PrintC "70" else PrintC "71" set Phase to 0 PrintC "72" set PipKeyState to 0 PrintC "73" endif PrintC "74" elseif (Phase == 4) PrintC "75" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "76" player.equipItem EquippedItem 0 1 PrintC "77" player.EquipItem PipboywristPC 1 1 PrintC "78" set Phase to 0 PrintC "79" set PipKeyState to 0 PrintC "80" endif PrintC "81" endif PrintC "82" ;endif PrintC "82a" ;endif PrintC "82b" ;Pip-Boy light and options menu callup functionality ;if (isKeyPressed ModKey == 1 && KeyTimer < 3) PrintC "83" ;set KeyTimer to KeyTimer + getSecondsPassed PrintC "84" ;set ModKeyState to 1 PrintC "85" ;elseif (KeyTimer >= 3) PrintC "86" ;showMessage BIDEpipOptions PrintC "87" ;set ModMenuActive to 1 PrintC "88" ;set KeyTimer to 0 PrintC "89" ;set ModKeyState to 0 PrintC "90" ;elseif (isKeyPressed ModKey == 0 && KeyTimer < 3 && ModKeyState == 1) PrintC "91" ;if (player.hasPerk BIDEpipLightPerk == 0) PrintC "92" ;player.addPerk BIDEpipLightPerk PrintC "93" ;playSound UIPipBoyLightOn PrintC "94" ;else PrintC "95" ;player.removePerk BIDEpipLightPerk PrintC "96" ;playSound UIPipBoyLightOff PrintC "97" ;endif PrintC "98" ;set ModKeyState to 0 PrintC "99" ;set KeyTimer to 0 PrintC "100" ;elseif (isKeyPressed ModKey == 0 && ModKeyState == 0 && KeyTimer > 0) PrintC "101" ;set KeyTimer to 0 PrintC "102" ;endif PrintC "103" ;If the player loses the Pip-Boy, remove the light, if it had been on. ;elseif (UninstallFlag == 0 && player.getItemCount Pipboy == 0 && player.hasPerk BIDEpipLightPerk == 1) PrintC "104" ;player.removePerk BIDEpipLightPerk PrintC "105" endif PrintC "106" ;end ;Key remapping functionality. ;begin Menumode 1001 PrintC "108" ;if (RemapKeyFlag == 1) PrintC "109" ;set KeyRemapBuffer to getKeyPress 0 PrintC "110" ;if (KeyRemapBuffer > 0 && KeyRemapBuffer < 256) PrintC "111" ;set ModKey to KeyRemapBuffer PrintC "112" ;endif PrintC "113" ;endif PrintC "114" ;end ;begin Menumode PrintC "116" ;if (Phase == 2 && Menumode == 1) PrintC "117" ;set Phase to 3 PrintC "118" ;set PipSpamTimer to 0.3 PrintC "119" ;endif PrintC "120" end =========================================================================== This console output file was started by the mod AutoSCOF. 5/7/2015 22:13:56 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 114 116 117 118 119 120 1 2 17 18 19 20 21 22 23 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 114 116 117 118 119 120 1 24 50 53 82 82a 82b 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 108 109 110 111 112 113 114 116 117 118 119 120 I think I'll try blocking out the whole thing until I figure out where its going wrong. Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 Okay now getting odd response. Erased all code, starting adding section by section until crash. Here is far I got without crashing. It crashes trying to equip the wristband. scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is released from Doc Mitchell's Care. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" ;player.equipItem PipboywristPC 1 1 PrintC "20" ;set InitMod to 1 PrintC "21" ;set Phase to 0 PrintC "22" endif PrintC "23" endif end But I can't find where in the wristband it might be going wrong. I thought the edited wristband might be the problem as I couldn't open the model it in the geck (it crashed). So I thought maybe their is a .nif code difference between the f03 and nv mod. So I downloaded the new vegas wristband version, removed the extra parts (the original modder does not have the wristband separate I had to remove the outer pipboy components in nifscope to create the original mod.) and it still crashed. I couldn't load the edited wristband via console command (player.equipitem 0b003d38) either, so I figured the issue must be with the model somehow. So I swap the model with the exact pipboy replacer already in use (that doesn't crash the game), just rename the copy wristbandf.nif. I can successfully equip this cloned model via console (player.equip 0b003d38) but it still crashes if I try to do it via unblocking the next script line (and of course it is not swapping out as it missing the rest of the script, so it lopsided when called up.) I also tried unblocking the remaining code in that section to see if the phase had anything to do with it but no good. Here is the SCOF Output when I unblocked the whole section: =========================================================================== This console output file was started by the mod AutoSCOF. 5/8/2015 0:5:46 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 1 2 17 18 19 20 21 22 23 1 1 Any Ideas? Link to comment
A.J. Posted May 8, 2015 Share Posted May 8, 2015 I tried from NVSE_loader, but I can't adjust mods then, Just for curiosity. If you use a mod manager like FOMM, you can use it to decide your load order, then if you quit the load order will remain the same, it means that if you start nvse_loader you will start with that loader. However, you are already working with nvse, because commands like PrintC would crash your script if it wasn't so. It crashes trying to equip the wristband. I was feeling that, the script seemed good to me. The last thing you could try, to exclude everything... is changing the wrist slot on the GECK, with something else, like backpack slot etc. This is just to understand if it doesn't like the mesh OR it doesn't like the fact that you are equipping it in that specific slot. But excluding that... There's not a lot to say then - try to re-export, try to compare with vanilla, try to check if there are mistakes. Until you can freely add it and equip it via console. After that you'll be able to focus with the script - even if I believe the script is ok. Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 Okay I found two strange issues. the first is adding via console (player.equipitem 0b003d38). Equiping the wristband crashes the game if the model does not have the pipboy screen and the three buttons. I removed them from the F03 model with no issue, but in NV it crashes upon equip if I do. Perhaps I could work around this (move items in Blender) if not for the next issue. I should note that if I changed the Biped slot on a fully stripped down model (no screen or buttons) I can console equip without crash but then it does not appear on the arm (perhaps I could make a fake model attaching it a full skeleton, but I don't know how.) So I can add the wristband in its current state (poorly fitting with visible screen and buttons) via console. but I still can't get it to equip via script. Game crashes everytime. Here is the crashing script: scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is released from Doc Mitchell's Care. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" elseif (Phase == 1) PrintC "17" player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" player.equipItem EquippedItem 0 1 PrintC "19" player.equipItem PipboywristPC 1 1 PrintC "20" ;set InitMod to 1 PrintC "21" ;set Phase to 0 PrintC "22" endif PrintC "23" endif end And the SCOF Output =========================================================================== This console output file was started by the mod AutoSCOF. 5/8/2015 6:25:43 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 23 1 2 17 18 19 20 21 22 23 1 2 17 18 19 20 21 22 23 Now what? Like I said if could add via script I could at least work with the model, but if it is listed as Pipboy biped slot the script fails and crashes. I can add it to the pipboy biped slot via console just not by script. I CAN add it via script if it is in another biped slot but it appears there instead of the arm (last test loaded on the earring slot with not issue, but then it was sticking out the head of course) So does new vegas have some thing checking the pipboy slot in the background that f03 doesn't? I am gonna check out another pipboy remover mod to see if there is something else there (though I should compare readius as well, since it seems the guy guy coded the readius and this script) Link to comment
A.J. Posted May 8, 2015 Share Posted May 8, 2015 change the last block in this way please, let's see what happens with the scof and the crash: EDIT: we could add a third block, just to verify: ... REF rMYTEMPREF ; DECLARE A NEW VARIABLE ON TOP ... elseif (Phase == 1) SET PHASE TO 2 player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.equipItem PipboywristPC 1 1 ELSEIF PHASE == 2 SET PHASE TO 3 SET rMYTEMPREF := player.getEquippedObject 2 PRINTC "MY EQUIPPED OBJECT IN SLOT 2: %N" rMYTEMPREF endif Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 I tried entering the code you wrote but it won't save. Here is what I entered scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition ref rMYTEMPREF short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is released from Doc Mitchell's Care. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" ;elseif (Phase == 1) PrintC "17" ;player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" ;player.equipItem EquippedItem 0 1 PrintC "19" ;player.equipItem PipboywristPC 1 1 PrintC "20" ;set InitMod to 1 PrintC "21" ;set Phase to 0 PrintC "22" ;endif PrintC "23" elseif (Phase == 1) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.equipItem PipboywristPC 1 1 set Phase to 2 elseif (Phase == 2) set Phase to 3 set rMYTEMPREF := player.getEquippedObject 2 PrintC "MY EQUIPPED OBJECT IN SLOT 2: %N" rMYTEMPREF endif endif end Link to comment
A.J. Posted May 8, 2015 Share Posted May 8, 2015 set rMYTEMPREF := player.getEquippedObject 2 This one. Change to: set rMYTEMPREF to player.getEquippedObject 2 I still have the habit to use NVSE 4 Let command (Let rMyTempRef := player.getEquippedObject 2) Link to comment
ordeiberon Posted May 8, 2015 Author Share Posted May 8, 2015 Okay fixed that line and tried it. Still crashed. I can point out this only crashed when I changed the wirstband back to pipboy biped slot. It ran the first time with no crash, but stuck the wristband on the head. That one just kept going 1, 2 after the equip line. Not sure what it did but this was the SCOF Output: =========================================================================== This console output file was started by the mod AutoSCOF. 5/8/2015 17:10:16 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 17 18 19 20 21 22 23 1 2 1 2 MY EQUIPPED OBJECT IN SLOT 2: <no name> Link to comment
A.J. Posted May 8, 2015 Share Posted May 8, 2015 It's cycling correctly. 1-2-1-2 because it goes on phase 2 and 3, then it writes the last string and after that it CTDs - it means it requires more than 2 frames to CTD. I feel we're near. Could you replace that last part with this? ... elseif (Phase == 2) set Phase to 3 set rMYTEMPREF := player.getEquippedObject 2 Return elseif (Phase == 3) set Phase to 4 Return elseif (Phase == 4) set Phase to 5 PrintC "MY EQUIPPED OBJECT IN SLOT 2: %N %i %f" rMYTEMPREF rMYTEMPREF rMYTEMPREF elseif (Phase == 5) PrintC "FINISHED!" endif Link to comment
ordeiberon Posted May 9, 2015 Author Share Posted May 9, 2015 Not sure what it does, but I tried it: scn BIDEpipRemoverSCRIPT short Phase short InitMod short ModKey short ModKeyState short PipKeyState float PipSpamTimer ref EquippedItem ref EquippedCondition ref rMYTEMPREF short ModMenuActive short ModMenuButton short RemapKeyFlag short KeyRemapBuffer float KeyTimer short UninstallFlag int NVSEcheck begin Gamemode ;Check to ensure NVSE is present before the initial removal occurs. ;Loops continually until NVSE is found or the mod is uninstalled, in case ;some unreasonable player decides to save after it doesn't work. if (NVSECheck == 0) ;if GetNVSEVersion < 4 set NVSECheck to GetNVSEVersion return endif ;If the mod has not been initialized, and the player is released from Doc Mitchell's Care. PrintC "1" if (UninstallFlag == 0 && InitMod == 0 && getStage VMQ01 > 0) PrintC "2" if (Phase == 0) PrintC "3" set ModKey to 48 PrintC "4" player.unEquipItem Pipboy 1 1 PrintC "5" player.removeItem PipboyGlove 1 1 PrintC "6" player.additem PipboywristPC 1 1 PrintC "7" set EquippedItem to player.getEquippedObject 2 PrintC "8" if (EquippedItem != 0) PrintC "9" set EquippedCondition to (player.getEquippedCurrentHealth 2 / getHealth EquippedItem && getPlayerControlsDisabled 0 1 == 0) PrintC "10" player.removeItem EquippedItem 1 1 PrintC "11" set Phase to 1 PrintC "12" else PrintC "13" set InitMod to 1 PrintC "14" set Phase to 0 PrintC "15" endif PrintC "16" ;elseif (Phase == 1) PrintC "17" ;player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 PrintC "18" ;player.equipItem EquippedItem 0 1 PrintC "19" ;player.equipItem PipboywristPC 1 1 PrintC "20" ;set InitMod to 1 PrintC "21" ;set Phase to 0 PrintC "22" ;endif PrintC "23" elseif (Phase == 1) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.equipItem PipboywristPC 1 1 set Phase to 2 elseif (Phase == 2) set Phase to 3 set rMYTEMPREF to player.getEquippedObject 2 Return elseif (Phase == 3) set Phase to 4 Return elseif (Phase == 4) set Phase to 5 PrintC "MY EQUIPPED OBJECT IN SLOT 2: %N %i %f" rMYTEMPREF rMYTEMPREF rMYTEMPREF elseif (Phase == 5) PrintC "FINISHED!" endif endif end Nothing changed still crashed. =========================================================================== This console output file was started by the mod AutoSCOF. 5/8/2015 23:19:35 =========================================================================== 1 2 3 4 5 6 7 8 9 10 11 12 16 17 18 19 20 21 22 23 1 2 1 2 Link to comment
A.J. Posted May 9, 2015 Share Posted May 9, 2015 elseif (Phase == 1) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.equipItem PipboywristPC 1 1 set Phase to 2 one of these makes the script crashing. try to put a ; before a line and try again, just to narrow down which one exactly creates the issue. Once you'll find the line, try to do the same commang on console, manually, and see if it crashed Link to comment
ordeiberon Posted May 9, 2015 Author Share Posted May 9, 2015 elseif (Phase == 1) player.addItemHealthPercent EquippedItem 1 EquippedCondition 1 player.equipItem EquippedItem 0 1 player.equipItem PipboywristPC 1 1 set Phase to 2 one of these makes the script crashing. try to put a ; before a line and try again, just to narrow down which one exactly creates the issue. Once you'll find the line, try to do the same commang on console, manually, and see if it crashed Yeah it's the player.equipitem PipboywristPC 1 1 As I said previously, if I try to equip the item to the pipboy biped slot via script it crashes. I can't replicate the line in console. It does not recognize PipBoywristPC as an item in the console. I can equip the item via item id: player.equipitem 0b003d38 I also mentioned that I can get the script to equip it if it is not in the pipboy biped slot. If I change the biped slot the script equips it fine. So to recap the script won't equip the wristband in the pipboy biped slot. The item can be equipped via console and item id so it works, just not by script. Edit: Just out of curiosity I tried to add the default pipboy instead. I could't get to equip the pipboy via script either. (player.equipitem Pipboy 1 1) Link to comment
A.J. Posted May 9, 2015 Share Posted May 9, 2015 Try via console: player.additem 15038 1 player.equipitem 15038 This must work... At that point, if you change that ID 15038 with your pipboy ID you will have troubles, you should inspect your custom pipboy - the mesh and the few parameters on GECK. Link to comment
ordeiberon Posted May 11, 2015 Author Share Posted May 11, 2015 I have been informed that NV has an issue with the pipboy slot. It can only equipped in Menumode (it was the opposite for F03). So how do I adjust the code to equip it in menumode before returning to game mode. Link to comment
A.J. Posted May 11, 2015 Share Posted May 11, 2015 Yeah I've seen that on Nexus. This doesnt' tell me a lot. For example, you said you crashed even equipping with console, which is MenuMode. So, if you want to arrive at the end of this issue, it wouldn't be bad proceeding with some rational method. If you're bored, let's give up, it's ok Link to comment
ordeiberon Posted May 11, 2015 Author Share Posted May 11, 2015 It only crashed in console mode if the item had no screen or buttons, probably another NV issue with the slot. I can equip the pipboy and the alternate from the console, but not via script. Link to comment
A.J. Posted May 11, 2015 Share Posted May 11, 2015 At that point, you could even workaround in a charming way: activate the pipboy replacer via MCM. Link to comment
Guest tomm434 Posted May 11, 2015 Share Posted May 11, 2015 It only crashed in console mode if the item had no screen or buttons, probably another NV issue with the slot. I can equip the pipboy and the alternate from the console, but not via script. Or you can emulate console push by tapping console button via script TapKey 41 Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.