Jump to content

Script Help! Has to do with Triggers and Sitting in chairs :O


JcHARP

Recommended Posts

Scriptname PnPQuest10Sit extends ObjectReference  

ObjectReference Property Player  Auto  

Quest Property PnPQuest00 Auto

Actor Property PlayerREF Auto

Topic Property PnPQuest00Topic00AB  Auto  

ReferenceAlias Property PnPBossProposition  Auto  


Event OnTriggerEnter(ObjectReference akActionRef)

     If akActionRef == PlayerRef && PnPQuest00.GetStage() == 5 && Game.GetPlayer().GetSitState() >=3
          debug.trace(akActionRef + " has entered the trig")
          PnPBossProposition.GetActorRef().Say(PnPQuest00Topic00AB, none, 1)
     EndIf
EndEvent

So that's the code but, I think I am using the GetSitState() wrong :(.

 

What I'd like to happen is when all three conditions are met, you enter the trigger, the stage is equal to 5 and you are sitting. My NPC tells the player the topic of my choice without activating said NPC and the quest progresses from there. Does anyone know what I am doing wrong? Any help would be greatly appreciated.

Link to comment
Share on other sites

The problem is that you are checking for the player to be seated when they enter the trigger box. That is impossible. You may be better off making the chair an alias and giving it a script that runs when the player sits down.

What Event should I use? I've looked at OnSit, that deals with an actor though and as far as I know I cannot put a script directly on the player themselves so that wouldn't work. Could you potentially explain a bit more I just can't seem to figure it out :(

Link to comment
Share on other sites

Using OnSit, you would need to make a quest with the player alias. The player alias would have a script which uses the OnSit event.

 

 

Otherwise using the chair as an alias the script it has would use the OnActivate event coupled with GetSitState for the one that activated the chair.

Link to comment
Share on other sites

Okay so for instance I use this new script I remade.

Event OnActivate(ObjectReference akActorActivate)

	If  akActorActivate == Game.GetPlayer() && PnPQuest00.GetStage() == 5 && Game.GetPlayer().GetSitState() != 0
		debug.trace("You sat on me!")
		PnPBossProposition.GetActorRef().Say(PnPQuest00Topic00AB, none, 1)
	EndIf
EndEvent

And I attach that to my chair of interest? Unless I scripted it wrong or don't understand what you mean xD. Does that look like it would work?

 

EDIT: That worked like a charm! Thanks for the hints xD <3 With your help I figured it out :DDDDDDDDDDDDDDDDDDDD

Edited by JcHARP
Link to comment
Share on other sites

  • Recently Browsing   0 members

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