Talk:Dissecting the Scripts for Weapon Racks

From the CreationKit Wiki
Revision as of 15:33, 29 January 2013 by imported>HawkFest (→‎Erroneous assertion: new section)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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