Jump to content

My npc's are a bunch of chatty cathys


stars2heaven

Recommended Posts

I have a party going on and there is this commotion upstairs that is supposed to stop everyone in their tracks, look to the ceiling and ask "whats going on up there?"

 

I have it all working, but its not working quite as smoothly as I'd like it to. The problem is once the quest stage is set and it tells all of the Npcs to look at the ceiling, only the ones who aren't in the middle of a conversation do it. All the rest wait to finish talking and then they want to chase after the player for some reason.

 

To overcome this obstacle I gave everyone a script that runs constantly until the conditions fail to allow it to. It works fine for making the npcs do what they are supposed to after they are done talking, but I'd really like them to stop talking to eachother immediately. I'd also like a script that wasn't running constantly like the one I have to use now to get things to work right.

 

This is the script that sets the quest stage

 

If (SpokeAldari > 0) && (SpokeMorusu > 0) && (SpokeVarnan > 0) && (SpokeOcato > 0) && (SpokeFiyero > 0) && (GetStage AAs2hlidPopular == 10)
TriggerHitShader 5 
SetStage AAs2hlidPopular 15
ElseIf (SpokeAldari > 0) && (SubGuest > 0) && (SpokeOcato > 0) && (SpokeFiyero > 0) && (GetStage AAs2hlidPopular == 10)
TriggerHitShader 5 
SetStage AAs2hlidPopular 15
EndIf

 

 

This is what the quest stage resulting script does after the script above runs. This tells everyone to look up and is supposed to tell them to shut up as well.

 

AAs2hlidAdamusPhillidaref.Look AAs2hlidLookHere
AAs2hlidAldariref.Look AAs2hlidLookHere
AAs2hlidMorusuDranRef.Look AAs2hlidLookHere
AAs2hlidVarnanref.Look AAs2hlidLookHere
AAs2hlidOcatoref.Look AAs2hlidLookHere
AAs2hlidFiyeroref.EvaluatePackage
AAs2hlidOcatoref.EvaluatePackage
AAs2hlidVarnanref.EvaluatePackage
AAs2hlidMorusuDranRef.EvaluatePackage
AAs2hlidAldariref.EvaluatePackage
AAs2hlidAdamusPhillidaref.EvaluatePackage
AAs2hlidFiyeroref.Look AAs2hlidLookHere
AAs2hlidGalindaRef3.Disable
AAs2hlidGogronRef.Enable

 

 

This is the script that forces everyone to do what I want them to without them running after the player like idiots

 

Scn AAs2hlidPartyGuestsScript

Begin GameMode

If (Getstage AAs2hlidPopular != 15)
Return
ElseIf (Getstage AAs2hlidPopular == 15)
AAs2hlidFiyeroref.EvaluatePackage
AAs2hlidOcatoref.EvaluatePackage
AAs2hlidVarnanref.EvaluatePackage
AAs2hlidMorusuDranRef.EvaluatePackage
AAs2hlidAldariref.EvaluatePackage
AAs2hlidAdamusPhillidaref.EvaluatePackage
EndIf

End

 

 

Anyone know what I can do to make this work better? I really would like the npcs to stop talking right away and look at the ceiling once the quest stage or some variable is set that tells them to.

 

Oh, and the evaluatePackage is because their AI has them wandering around before stage 15. I want them to stop that also, but just making the conditions false causes them to run after the palyer. The Evaluatepackage prevents this, but only if they aren't in the middle of a conversation. Thats why I have the script on them doing it over and over again.

Link to comment
Share on other sites

Call "Forceflee" on all your NPCs, if there is no current threat around.

 

If in a peaceful surrounding they will simply abort all conversations, and then resume normal (your) packages.

 

Thank you! That worked very well and allowed me to greatly simplify things and get rid of many unneeded scripts.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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