Difference between revisions of "Talk:Dissecting the Scripts for Weapon Racks"

From the CreationKit Wiki
Jump to navigation Jump to search
imported>HawkFest
 
imported>HawkFest
Line 1: Line 1:
== Erroneous assertion ==
== Erroneous assertion ==


It's written : « OnTriggerEnter and OnTriggerLeave - Next, you see the OnTriggerEnter and OnTriggerLeave blocks inside the 'WaitingForReference' state. I'm not going to try and explain states here, but '''it's redundant and has no utility if you only have a single state in a script'''. »
'''It's written:''' « ''OnTriggerEnter and OnTriggerLeave - Next, you see the OnTriggerEnter and OnTriggerLeave blocks inside the 'WaitingForReference' state. I'm not going to try and explain states here, but '''it's redundant and has no utility if you only have a single state in a script'''.'' »


That's plain wrong : a singleton state can be essential e.g. when monitoring things, while using RegisterForSingleUpdateGameTime for instance. One example which is quite self-explanatory:
'''That's plain wrong:''' a singleton state can be essential e.g. when monitoring things, while using RegisterForSingleUpdateGameTime for instance. One example which is quite self-explanatory:
<source lang="papyrus">
<source lang="papyrus">
Scriptname FactionDetectionScript extends ObjectReference   
Scriptname FactionDetectionScript extends ObjectReference   

Revision as of 15:34, 29 January 2013

Erroneous assertion

It's written: « OnTriggerEnter and OnTriggerLeave - Next, you see the OnTriggerEnter and OnTriggerLeave blocks inside the 'WaitingForReference' state. I'm not going to try and explain states here, but it's redundant and has no utility if you only have a single state in a script. »

That's plain wrong: a singleton state can be essential e.g. when monitoring things, while using RegisterForSingleUpdateGameTime for instance. One example which is quite self-explanatory:

Scriptname FactionDetectionScript extends ObjectReference  
{Script to be attached to some object in the cell you wish to be monitoring for the player to be a member in some allowed faction}
ObjectReference Property MarkerEnabler Auto
{A marker reference parent of other objects that you wish to enable when the player becomes member of some allowed faction}

Event OnLoad()
	If MarkerEnabler.IsDisabled()
		GoToState("WaitForAllowedFaction")
	EndIf
EndEvent

State WaitForAllowedFaction
	Event OnBeginState()
		If PlayerREF.IsInFaction(AllowedFaction)
			MarkerEnabler.Enable()
		Else
			RegisterForSingleUpdateGameTime(0.9)
		EndIf
	EndEvent

	Event OnUpdateGameTime()
		GoToState("WaitForAllowedFaction")
	EndEvent
EndState