Jump to content

rickerhk

Premium Member
  • Posts

    1814
  • Joined

  • Last visited

Everything posted by rickerhk

  1. Yeah that's odd. It may have something to do with Facegen textures: Export NPC Face Textures - GECK (geckwiki.com) You might try setting bLoadFaceGenHeadEGTFiles=1 in your fallout.ini before going through all the trouble of exporting facegen textures though.
  2. Make sure the box on the NPC 'Can be all races' is ticked. You may need to start a new game to test this afterward because I've found this setting to be baked in the save. Make sure you are running the function on the REFiD: MyNPCREF.Matchrace PlayerThis is the the way Dad's race is matched to the player in FO3, so you're on the right track.
  3. You might ask here: https://www.nexusmods.com/newvegas/mods/58277 You could try this syntax: SetEventHandler "OnCrosshairOn" "first"::vMOLacey AScriptor SetEventHandler "OnCrosshairOn" AScript "first"::vMOLaceyhttps://geckwiki.com/index.php?title=SetEventHandler
  4. I'm assuming you made an activator using the static model. On the script for the door, in the 'On Activate' block, Activate another container in the Cell, or a remote cell. Do not activate the door itself. The Footlocker01Empty container works well for remote containers. This is an example of the 'on activate' block of your dlc04shackcabinet01door: BEGIN ONActivate Player MYRemoteContainerREF.Activate Player END
  5. What I do is place an Xmarker in the Geck somewhere, with a RefID. Then when I need it, I move the xmarker to where I need it, wait a couple frames, then do whatever I need with it. When done, I just leave it where it is till I need it again. An Xmarker placed in the Geck is persistent so it will always be available. A spawned xmarker won't be persistent. I think this may be where the CTD are coming from. MyXMarkerREF.MoveTo Ralph ;then wait a couple frames MyXMarkerREF.Playsound3D TSoYou know you can get the same effect by just doing this: Ralph.Playsound3d TSo
  6. In our mod we have a computer named Maria. The computer itself is a Talking Activator with this script on it (simplified here): scn PBrazilPQSQ1MariaScript BEGIN OnActivate SetTalkingActivatorActor PBrazilPQSQ1MariaREF Activate END PBrazilPQSQ1MariaREF is an NPC in another cell. All the dialog has the condition GetIsID on the NPC object. The 'No low level processing' box on the NPC is unchecked. Also, the 'voicetype' in the TA is left as 'NONE' We have four of this type of TA setup.
  7. PlaceAtme is not immediate. So I would skip a few frames. Or loop to check if 'Bob' is valid (not null).
  8. Try putting a script using 'StartConversation' on the NPC. I believe this will bypass those animations, if I recall correctly. http://geck.technodeep.net/index.php/StartConversation scn MyNPCScript BEGIN OnActivate if (GetActionREF == Player) StartConversation Player. GREETING endif END
  9. I would start with changing the line: Begin OnTrigger Playerto Begin OnTriggerEnter Playerthe 'OnTrigger' block type runs every frame that the player is in the trigger. So the part after the 'else' is running every frame. May be a problem if 'enableplayercontrols' runs every frame. 'ONTriggerEnter' block type only runs one frame when entered by the player
  10. Also, on the NPC object, un-tick the box 'no low-level processing' if they need to follow you through portals consistently.
  11. Performing a 'ResetAI' on the actor will also force it to evaluate its speed.
  12. Did you flag the dead NPC object as a quest item so they don't get cleaned up on the cell reset?
  13. I managed to accomplish what I need by using the GetSecondsPassed and adjusting it to the time scale. This worked out better since it doesn't have to run faster for people that use the default timescale of 30, and it's more accurate since the script is not always processed exactly every 5 seconds (the default process time). To help debug the script, I set some stuff to output things to the console and noticed the script processing time would vary by up to 0.1 seconds, which isn't much, but over time would add up to a significant error. The only down side is that more in-game time will pass for people with higher timescales before things update. I can't find the page on the GECK Wiki where it gave an example using fQuestDelayTime, but the link it gave for help on the fQuestDelayTime pointed to the Elder Scrolls Construction Set Wiki, which says: It appears this is no longer used in the GECK and is replaced by the SetQuestDelay instead. I misread it and thought it was a gamesetting rather than a quest variable. I've never seen that used in FO3 or FNV. I've always used setquestdelay. On this page: https://geck.technodeep.net/index.php/Special_Variables
  14. You should probably leave fQuestDelayTime alone. That set's the default quest delay for every quest in the game.
  15. You realize that this NPC script runs every frame, so you are applying the script package 60 times per second if you are running at 60fps and probably locking up the AI. Try: If (HasBeenHired == 1) if (ALAmicusREF.GetIsCurrentPackage ALAmicusSandBox == 1) ALAmicusREF.removescriptpackage ALAmicusSandBox endif endif If (HasBeenHired == 0) if (ALAmicusREF.GetIsCurrentPackage ALAmicusSandBox == 0) ALAmicusREF.addscriptpackage ALAmicusSandBox endif endif Also the armor is being added every frame. Put another 'DoOnce2' on that section, or some other check, like 'GetItemCount' Edit: And what madmongo said - it's better to avoid scriptpackages except for very short times - when the player is not going to be exiting the cell where the NPC is located. For the sandbox package, it will be ok, but for the follower packages, you should place them on the NPC object.
  16. You should just turn off logging unless you are using it during development of your own mod.
  17. I actually tested this little bit the other day - actors ('no low level processing' flag unchecked) that have a follow package targeting the player are 'dragged through' the portal on just the player's activation of the portal. So you have to change their package to wait outside, in the same frame (or before) the player activates the portal. I'm assuming you don't want to put a script on every door in the game :) It sounds simple but it will probably get complicated fast. The only starting point at the moment that I can think of is a script on a token in the player's inventory, with 'GetcrosshairREF' as the basis of a script to detect when the player is targeting a portal, and changing the followers package based on that.
  18. On the NPC/Creature object, the first package from the top of the list, that has true conditions, will be the one in effect. Actors evaluate their packages periodically - every 15 seconds? If no packages have true conditions then the actor will just stand there by default, unless they are in combat. So if you want a package to take effect right away, set the conditions for the package and do the evp function on the actor - ActorREF.evp - http://geck.bethsoft.com/index.php?title=EvaluatePackage. Removescriptpackage is only used for addscriptpackage like you found out.
  19. Does your actor effect record have an area and a small duration? This is my Actor effect record: https://dl.dropboxusercontent.com/u/55759080/Nexus/ActorEffect.JPG From what I can tell, your scripts should work. The if/else structure is just an optimization to avoid checking an expression for zero. if (GetInFaction ProjectBrazilVault18EnclavePatriot == 1) else return endif is the same as: if (GetInFaction ProjectBrazilVault18EnclavePatriot == 1) ;do nothing else return endif and it's faster than: if (GetInFaction ProjectBrazilVault18EnclavePatriot == 0) return endif
  20. If you don't want to use NVSE, use a 'touch' spell (actor effect) with a large radius like 5000 or so, that also ignores LOS. That way the scripteffectstart block runs on every actor and you can do stuff to them. You have a quest script that bouces the spell off the player every few seconds to scan the cell. I call them 'radar' effects. If you want to see examples I have on in my wendy gilbert mod RHKWendyCBRadarEffect, and I'm using them in Project Brazil - PBrazilEncSTVRadarEffect. set the flags on the base effect to self, touch, no mag, painless, no hit effect. On the actor effect, 'force touch explode' ignore LOS'. scn PBrazilCH1STVRadarEffectScript BEGIN ScripteffectStart if (IsActor) if (GetDead) || (GetDisabled) return else if (GetInFaction ProjectBrazilVault18EnclavePatriot == 1) else return endif if (GetIsReference PlayerREF == 1) return endif set PBrazilCH1Save.iCH1PatriotAlive to PBrazilCH1Save.iCH1PatriotAlive + 1 endif endif END scn PBrazilCH1SaveQuestScript short iCH1PatriotAlive ;roll call of live ENC during battle short iEnableRadar short iCH1STVBattleDone short iCH1BraggRevive ;flag to revive Bragg once during STV (if no limbs missing) float iCH1BraggReviveTimer short iCH1HYDVSecControl ;package flag for remaining V-sec to follow player to the atrium short iFailOnce ;Quest delay 5 seconds ;Bounce a touch spell off the player to detect Enclave that are alive. The Base Effect script is PBrazilCH1STVRadarEffectScript BEGIN GameMode if (iEnableRadar == 1) if (Player.IsSpellTarget PBrazilEncSTVRadarEffect == 1) else set iCH1PatriotAlive to 0 Player.cios PBrazilEncSTVRadarEffect set iEnableRadar to 2 endif elseif (iEnableRadar == 2) ;will be here on the next loop in 5 seconds if (iCH1PatriotAlive) || (iCH1BraggRevive < 4) ;Not done with battle, Bragg not dead-dead set iEnableRadar to 1 else set iCH1STVBattleDone to 1 ;No ENC responded endif endif END
  21. Anything in the meshes/texures folder will also load in the Geck. If you have a lot of hi rez textures, the Geck could run out of RAM when loading that area. Set the LAA bit on Geck.exe using NTCore: http://ntcore.com/4gb_patch.php Also, a modded mesh could also be causing the geck to crash.
  22. You can use the old Oblivion construction kit to make lip files, but the lip movement is better if you use the Skyrim file.
  23. If you have Skyrim, you can do it this way: http://www.nexusmods.com/newvegas/mods/48239/?
  24. If you want to regenerate health, you use "restoreactorvalue". Modactorvalue will increase your permanent health value but not heal the damage. http://geck.bethsoft.com/index.php?title=RestoreActorValue You put this script on the armor itself and don't bother with object effects. scn HealthRegenerateScript ref rContainer short iMaxHealth short iCurrentHealth float fRegenInterval BEGIN GameMode if (fRegenInterval > 0) set fRegenInterval to fRegenInterval - GetSecondsPassed else set rContainer to GetContainer ;get the actor wearing this armor if (rContainer) && (rContainer == Player) set iMaxHealth to GetPermanentActorValue Health set iCurrentHealth to GetActorValue Health if (iCurrentHealth < iMaxHealth) RestoreActorValue Health 10 set fRegenInterval to 1 ;these two values mean 10 HP per second endif endif endif END
×
×
  • Create New...