ordeiberon Posted May 12, 2015 Author Posted May 12, 2015 At that point, you could even workaround in a charming way: activate the pipboy replacer via MCM. That does sound intriguing. I have not used MCM yet, so I don't know how it works. Can it swap it automatically when the pipboy is called or did you mean it as a one time swap? 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 How would that look in code? Just put TapKey 41 on the line before player.equipItem WristbandPC 1 1 ?
Guest tomm434 Posted May 12, 2015 Posted May 12, 2015 I use it for another purpose - I too have a code which CTDs game if done in gamemode begin gamemode if stage ==0 let stage :=1 ; go to stage 1 on quest start elseif stage == 1 tapkey 41 ; bring console, set quest delay yo 0.05 in GECK elseif stage == 2 ; (set by console script after console code is done) stopquest ThisQuest endif end begin menumode ; That code executes when console is up. note that I made "if stage == 1" check on purpose so code executes exactly when YOU make player go to console if stage == 1 let stage :=2 {YourCodeHere} Print "Wait 3 seconds and press ~ button" endif end So what hapens ingame - player loads mod and then after half a second he is console mode, your code is done and he sees message "Wait 3 seconds and press ~ button". He waits, press console button and bam - pipboy is up. now, I think you can make timer for console so it quits automaticly - I don't know how timer works in menumode. I don't do timer because in my mod game CTDs for minority of players (1%?) and there are only 3 scenes when they'll have to wait 3 seconds in console.
Guest Posted May 12, 2015 Posted May 12, 2015 What you want that the MCM does is entirely your decision, the difference is that the script will run in menumode instead than gamemode - You won't even have to change the script too much. Of course you still will need a GameMode block to handle the light and all, but this is not so much important. I'm going to upload a small mod today, after that if you want I can write your MCM, you just need to send me the ESP (keep always a backup), it shouldn't take me a lot, like 1-2 hours to do and test
Guest Posted May 12, 2015 Posted May 12, 2015 now, I think you can make timer for console so it quits automaticly - I don't know how timer works in menumode. You can do the same you would do on a gamemode, but on a conditioned menumode. After 3 seconds, CloseAllMenu. Can people do mess in console these 3 seconds? You know, Murphy's law However, very personal opinion, that seems very good for debug, and smart, but on a released mod do you see it as a charming solution? I suspect it could warn people without reasons. (I also don't know what could cause to those using achievements, do I remember well? there's that silly rule where if you open console you stop the achievements? I don't know since I never hunted them)
Guest tomm434 Posted May 12, 2015 Posted May 12, 2015 now, I think you can make timer for console so it quits automaticly - I don't know how timer works in menumode. You can do the same you would do on a gamemode, but on a conditioned menumode. After 3 seconds, CloseAllMenu. Can people do mess in console these 3 seconds? You know, Murphy's law However, very personal opinion, that seems very good for debug, and smart, but on a released mod do you see it as a charming solution? I suspect it could warn people without reasons. (I also don't know what could cause to those using achievements, do I remember well? there's that silly rule where if you open console you stop the achievements? I don't know since I never hunted them) Right. I can always disable ~ key. Those users need someone to look after them mischief-makers. From Fallout wiki: First and foremost, using the console on the PC version for any reason will disable achievements for that play session. This includes non-controversial commands such as save. Simply opening the console will not disable achievements; a command must be entered and run via the console.
Guest tomm434 Posted May 12, 2015 Posted May 12, 2015 And it looks even funnier with timer. (won't be any black screens since all blackscreens waitings are from my code that initiates the cutsscene) http://www.dailymotion.com/video/k2s6GXJiNiVxVeb8d6o begin menumode if stage == 1 if MenuModeStage == 1 let MenuModeTimer -= GetSecondsPassed Print "WAIT " + $MenuModeTimer + " more seconds" if MenuModeTimer let stage :=2 EnableKey 41 ; enable console key con_CloseAllMenus endif elseif MenuModeStage == 0 DisableKey 41 ; disable console key {your code} set MenuModeStage to 1 set MenuModeTimer to 5 ;seconds endif endif end but yeah do MCM menu. I hate readius and pipboy replacers because the don't ask for being activated. Also make "Deactivate" button in MCM menu - very important. Player don't need to enter console commands to delete the custom pipboy.
ordeiberon Posted May 17, 2015 Author Posted May 17, 2015 What you want that the MCM does is entirely your decision, the difference is that the script will run in menumode instead than gamemode - You won't even have to change the script too much. Of course you still will need a GameMode block to handle the light and all, but this is not so much important. I'm going to upload a small mod today, after that if you want I can write your MCM, you just need to send me the ESP (keep always a backup), it shouldn't take me a lot, like 1-2 hours to do and test If you or anyone else would like to take a look at it what I have so far, I have uploaded a copy to this post. NVHoloPipBoy WIP 1.0.zip
Guest Posted May 17, 2015 Posted May 17, 2015 Oh well I just opened it and made a modify. You could try the ESP attached here. 023 - 0RD-009 Hologram Pip-Boy 3000 Enriched NV.esp
ordeiberon Posted May 18, 2015 Author Posted May 18, 2015 Oh well I just opened it and made a modify. You could try the ESP attached here. Thanks! It made some progress. It successfully swapped the wristband in without crashing, I assume that Con_closeallmenus command allowed it? It is not there yet however. It now crashes on attemping to callup the pipboy. I am reviewing the code now. Perhaps it needs another of those commands in the call up function. EDIT: Okay I tried adding that command you added to the first section to the points that did the same thing, but it still crashed on call up. Now sure what it is doing, but here is the code as I edited it: 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.ShowRepairMenu player.equipItem EquippedItem 0 1 player.EquipItem PipboywristPC 1 1 con_closeallmenus 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 con_closeallmenus 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 con_closeallmenus 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
Guest Posted May 18, 2015 Posted May 18, 2015 I was opening the pipboy just fine, without crashing. However I tested not much, the package I used for install was a bit messed. It was replacing vanilla, messing the textures of common pipboys, so I didn't make a lot of experiments. Do you have by chance a "cleaner" installation, without unuseful files, so I can re-work the script in a better way?
ordeiberon Posted May 18, 2015 Author Posted May 18, 2015 I was opening the pipboy just fine, without crashing. However I tested not much, the package I used for install was a bit messed. It was replacing vanilla, messing the textures of common pipboys, so I didn't make a lot of experiments. Do you have by chance a "cleaner" installation, without unuseful files, so I can re-work the script in a better way? Prepping it now. What gender character where you using? I realize that would affect what model was loaded. I was testing with a female character and thus was messing with that model. The male just had a copy of the default pipboy. Edit: Tried it with Male character no change. You mentioned MCM earlier. Is the command you are using made to work by that? Mine is the only mod I have loaded besides DLC. Edit: Here is the mod with only bare essential files. The esp is the one with your current edits. The wristband models are only the standard replacer with the holograph shell removed so you can tell when its loaded. NVHoloPipBoy WIP 1.1.zip
Guest Posted May 19, 2015 Posted May 19, 2015 I was testing with a female character Me too You mentioned MCM earlier. Is the command you are using made to work by that? The MCM should be done from scratch. It's an alternative that could be a nice idea in my opinion - instead that giving you the pipboy automatically when you start the game, you flag a check on the MCM menu. Same to uninstall it, you unflag the check. Here is the mod with only bare essential files. thank you, I'll take a look at the whole script from scratch
Guest Posted May 19, 2015 Posted May 19, 2015 Ok the problem is around line 94, the whole part called "Pip-Boy callup hook" (about 20 lines). When you press TAB it's supposed to switch your pipboy with the "original" pipboy, so you have the CTD for the same reason you CTD at start. I ripped that part, it doesn't CTD anymore, however I did it because I don't see why you would want to re-switch the pipboy everytime you open it, it makes no sense in my opinion, but if you know the reason please tell me and we'll find an alternative. (PS the fact I wasn't crashing was because I placed a Return in the middle of the code, so that I was able to test only the first part of the script, and then I forgot about it) Also, Rickerhk is right, that variable must be declared as float and not ref. A couple of things I noticed: - Looking at the code it seems you are using a special hotkey for that, am I right? does it work properly? - That small black screen floating over the pipboy mesh... is it necessary? I attach you the modified script. 023 - 0RD-009 Hologram Pip-Boy 3000 Enriched NV.esp
ordeiberon Posted May 20, 2015 Author Posted May 20, 2015 Ok the problem is around line 94, the whole part called "Pip-Boy callup hook" (about 20 lines). When you press TAB it's supposed to switch your pipboy with the "original" pipboy, so you have the CTD for the same reason you CTD at start. I ripped that part, it doesn't CTD anymore, however I did it because I don't see why you would want to re-switch the pipboy everytime you open it, it makes no sense in my opinion, but if you know the reason please tell me and we'll find an alternative. (PS the fact I wasn't crashing was because I placed a Return in the middle of the code, so that I was able to test only the first part of the script, and then I forgot about it) Also, Rickerhk is right, that variable must be declared as float and not ref. A couple of things I noticed: - Looking at the code it seems you are using a special hotkey for that, am I right? does it work properly? - That small black screen floating over the pipboy mesh... is it necessary? I attach you the modified script. The switch during call up is supposed to be intentional. In the original F03 mod, it is supposed to replace the pipboy with the plain wristband at the start. Then when you call it up it switches to the replacer to create the illusion of a "holographic" interface being generated, and back to the wristband when put away for the illusion of "deactivating" the holographic interface. Works great in F03 but the swap can occur there in game mode. You can see the pictures in my original mod: http://www.nexusmods.com/fallout3/mods/21133/? As far I know regarding special hotkeys, I was using one for the pipboy light, as I think pressing the call up initiated the pipboy swap so it was unusable to hold as a light button. Though it may just be left over from the pipboy light mod I integrated. The black screen is there for now even if swapping in menu mode, the game crashes if the pipboy model does not have at least screen and the 3 buttons. At least I think it does. The original F03 Model was just the plain wrist band, but that model crashed when I loaded it. So I restarted with the full holomodel and stripped components until it crashed. It crashed when I removed the screen or buttons. For the model I uploaded to you I started with a full holomodel and removed only the outer holoshell so you could tell which model was loaded. So unless there is way around it, I need a model with screen and buttons left over. My plan was that, if we can get the swap working I would blender the wristband to hide the screen and buttons. EDIT: Mentioning the hotkey gave me an Idea. I would prefer it to happen automatically, but perhaps it might easier right now to create a hot key that swaps it after it was called up. So you would call it up (activate menu mode) and press an "on" button to activate the hologram (make the swap). Press the button again to turn "off" the hologram (swap it back). This might have the added advantage of allowing the user to keep the hologram activated if they prefer, and only allowing the swap in menu mode. Perhaps restore the pipboy light button and use that hotkey.
Guest Posted May 20, 2015 Posted May 20, 2015 Oh now I understood why you need to re-equip it and why you retextured it blue. Tomorrow I'll modify the script so that it won't CTD when you re-equip. But concerning the light, the best deal is still using a hotkey. Avoiding it and sticking with vanilla method (keeping tab pressed) would be possible but not super easy. However, talking about the small black floating screen, how will you solve that issue in the future?
ordeiberon Posted May 21, 2015 Author Posted May 21, 2015 Oh now I understood why you need to re-equip it and why you retextured it blue. Tomorrow I'll modify the script so that it won't CTD when you re-equip. But concerning the light, the best deal is still using a hotkey. Avoiding it and sticking with vanilla method (keeping tab pressed) would be possible but not super easy. However, talking about the small black floating screen, how will you solve that issue in the future? Yes I agree to stick with the hot key for the light. I have gotten used to it. As for the black screen, it is annoying but unless I find a way for New Vegas to be happy with a model with no screen or buttons (it crashes if loaded in pipboy slot without a screen or buttons), I shall just have to blender the model to move the screen and buttons within the arm to hide them.
ordeiberon Posted June 5, 2015 Author Posted June 5, 2015 I'm very interested to see what commands can be used to fix this. If you don't have time, could you point me to what commands you plan to use and I try working it out?
Guest Posted June 7, 2015 Posted June 7, 2015 you're right, I forgot about it, sorry. To avoid CTD, the "original" NV mod used a workaround. This is more or less what it does: ShowRepairMenu ... <rest of the code, like un/equip equip pipboy> con_closeallmenus Since in NV it crashes if you equip pipboy in gamemode, it first calls a menumode (in this case showrepairmenu), then it equips the pipboy, then in the same exact frame it closes the menumode with con_closeallmenus - as consequence, you won't see anything strange in your monitor, no strange windows. But here the strange part: since it's running in the same frame it shouldn't have the effect we want (=avoid the CTD), because we're not still in menumode... but still, it has that effect, it works. I can't explain why, I guess the "real answer" is in something hardcoded, and it's in that ShowRepairMenu. If you use another kind of menumode, it won't work (tested with 2-3 different kinds, like barter menu). EDIT: I forgot. Your ESP had all the DLCs as requirement, maybe you don't want it. In case you need to clean them, you just need to open the ESP via FNVEdit and right-click >>> Clean Masters. It will seem that it doesnt' do anything, but when you click to quit FNVEdit it will ask to save the changes, it has removed them masters.
ordeiberon Posted June 25, 2015 Author Posted June 25, 2015 you're right, I forgot about it, sorry. To avoid CTD, the "original" NV mod used a workaround. This is more or less what it does: ShowRepairMenu ... <rest of the code, like un/equip equip pipboy> con_closeallmenus Since in NV it crashes if you equip pipboy in gamemode, it first calls a menumode (in this case showrepairmenu), then it equips the pipboy, then in the same exact frame it closes the menumode with con_closeallmenus - as consequence, you won't see anything strange in your monitor, no strange windows. But here the strange part: since it's running in the same frame it shouldn't have the effect we want (=avoid the CTD), because we're not still in menumode... but still, it has that effect, it works. I can't explain why, I guess the "real answer" is in something hardcoded, and it's in that ShowRepairMenu. If you use another kind of menumode, it won't work (tested with 2-3 different kinds, like barter menu). EDIT: I forgot. Your ESP had all the DLCs as requirement, maybe you don't want it. In case you need to clean them, you just need to open the ESP via FNVEdit and right-click >>> Clean Masters. It will seem that it doesnt' do anything, but when you click to quit FNVEdit it will ask to save the changes, it has removed them masters. Yes the masters will be cleaned up after, I just leave them in now to avoid having to uncheck them each time I open the Geck. So I enter your code and progress is made it no longer crashes upon call up. However I know I have the close all menus in the wrong place as it does not actually open the pipboy menu. I figure I have too many close menus but I can't figure which one to move to get it to work. Here is the code now. 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.ShowRepairMenu player.equipItem EquippedItem 0 1 player.EquipItem PipboywristPC 1 1 con_closeallmenus 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.ShowRepairMenu player.equipItem Pipboy 1 1 con_closeallmenus 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.ShowRepairMenu player.EquipItem Pipboy 1 1 con_closeallmenus resetPipboyManager set Phase to 2 elseif (Phase == 3) player.unEquipItem Pipboy 1 1 player.ShowRepairMenu player.EquipItem PipboyWristPC 1 1 con_closeallmenus 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.ShowRepairMenu player.EquipItem PipboywristPC 1 1 con_closeallmenus 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
Guest Posted June 25, 2015 Posted June 25, 2015 I just leave them in now to avoid having to uncheck them each time I open the Geck. To stop that annoyance, you should delete the <name of dlc>.NAM files from the Data folder. Those NAM files have no other purpose than check the DLCs when you load a mod in the GECK, which is VEEEEERY annoying
ordeiberon Posted June 25, 2015 Author Posted June 25, 2015 I just leave them in now to avoid having to uncheck them each time I open the Geck. To stop that annoyance, you should delete the <name of dlc>.NAM files from the Data folder. Those NAM files have no other purpose than check the DLCs when you load a mod in the GECK, which is VEEEEERY annoying Thanks! that is a very useful tip! Masters have been cleaned. Now to solve where to put your code suggestions so it doesn't crash but still lets you use the pipboy. I have tried several permutations removing the closeall menus, but then the repair menu just comes up. If you close it you still don't get the pipboy menu. Not sure why it falls to call it up. 023 - 0RD-009 Hologram Pip-Boy 3000 Enriched NV.esp
ordeiberon Posted July 2, 2015 Author Posted July 2, 2015 you're right, I forgot about it, sorry. To avoid CTD, the "original" NV mod used a workaround. This is more or less what it does: ShowRepairMenu ... <rest of the code, like un/equip equip pipboy> con_closeallmenus Since in NV it crashes if you equip pipboy in gamemode, it first calls a menumode (in this case showrepairmenu), then it equips the pipboy, then in the same exact frame it closes the menumode with con_closeallmenus - as consequence, you won't see anything strange in your monitor, no strange windows. But here the strange part: since it's running in the same frame it shouldn't have the effect we want (=avoid the CTD), because we're not still in menumode... but still, it has that effect, it works. I can't explain why, I guess the "real answer" is in something hardcoded, and it's in that ShowRepairMenu. If you use another kind of menumode, it won't work (tested with 2-3 different kinds, like barter menu). EDIT: I forgot. Your ESP had all the DLCs as requirement, maybe you don't want it. In case you need to clean them, you just need to open the ESP via FNVEdit and right-click >>> Clean Masters. It will seem that it doesnt' do anything, but when you click to quit FNVEdit it will ask to save the changes, it has removed them masters. Success!!! I finally got it to work properly! Thank you so much for your help. I got it to work by moving the needed pipboy swap under the menumode space and leaving the inital gamemode swaps with your initial fix. Here is the working code (it could use some clean up but all functions seem to work): 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 player.ShowRepairMenu player.EquipItem PipboywristPC 1 1 con_closeallmenus set InitMod to 1 set Phase to 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.unEquipItem Pipboy 1 1 player.ShowRepairMenu player.EquipItem PipboywristPC 1 1 con_closeallmenus set InitMod to 1 set Phase to 0 ;endif ;elseif (Phase == 2) ;player.unEquipItem Pipboy 1 1 ;player.ShowRepairMenu ;player.EquipItem PipboywristPC 1 1 ;con_closeallmenus ;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.ShowRepairMenu player.equipItem Pipboy 1 1 con_closeallmenus 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 if (isControlPressed 14 == 1 && PipKeyState == 0 && PipSpamTimer <= 0) set pipKeyState to 1 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 1 player.unEquipItem PipboywristPC 1 1 player.EquipItem Pipboy 1 1 resetPipboyManager set InitMod to 0 set Phase to 1 end
Guest Posted July 2, 2015 Posted July 2, 2015 Success!!! I finally got it to work properly! Thank you so much for your help. Wonderful! Drop a link when you'll upload it Sorry but these last days I didn't have anymore time to test that script
ordeiberon Posted July 2, 2015 Author Posted July 2, 2015 Success!!! I finally got it to work properly! Thank you so much for your help. Wonderful! Drop a link when you'll upload it Sorry but these last days I didn't have anymore time to test that script I also managed to fix the screen and button requirement by removing the nodes but leaving the items on the .nif, I was afraid it would still ne visible on the plain body but I have noticed it yet. New mod files attached. NVHoloPipBoy V1.2.zip
Recommended Posts
Archived
This topic is now archived and is closed to further replies.