Jump to content

Requesting NV Scripting Help - Script Crashes to Desktop.


Recommended Posts

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

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

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

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

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

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?!?!?!?!?!?!?!?!?!? :D

Link to comment

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

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

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

 


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

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

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

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

 


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

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

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

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
        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
        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

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

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
Guest tomm434

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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use