enderalse/source/scripts/fxdustdroptrigscript.psc

86 lines
2.5 KiB
Plaintext
Raw Normal View History

scriptName FXdustDropTrigSCRIPT extends objectReference
{this Script controls randomized dustfalls}
;===============================================
import debug ; import debug.psc for acces to trace()
import game ; game.psc for access to getPlayer()
import utility ; utility.psc for access to wait()
import sound ; sound.psc for access to play()
;===============================================
Explosion property FallingDustExplosion01 auto
sound property mySFX auto ; specify SFX to play
int chooser ; random FX choice integer
float rndWaitTimer ; we'll randomize how long we wait between FX
;===============================================
;function playFX(int chooser)
; if chooser == 1
; MARK - there's a playgroup forward in your script here but not in the others. Hur?
; self.PlayGamebryoAnimation("Forward")
; weapLg.fire(self, myAmmoMed)
; elseif chooser == 2
; self.PlayGamebryoAnimation("Backward")
; weapMd.fire(self, myAmmoSm)
; elseif chooser == 3
; self.PlayGamebryoAnimation("Left")
; weapSm.fire(self, myAmmoTiny)
; endif
; mySFX.play(self) ; same sound no matter what vizFX we choose.
; rndWaitTimer = RandomInt(1,5)
; wait(rndWaitTimer) ; sit around for 1-5 seconds
; gotoState("latent")
;endFunction
;===============================================
auto STATE latent ; by default, just sit still and wait for a trigger event
EVENT onTriggerENTER(objectReference trigRef)
if trigRef == getPlayer()
; Debug.Trace("Triggered")
chooser = RandomInt(1,3) ; generate a random number between one and three
gotoState("active")
;playFX(chooser)
endif
endEVENT
endSTATE
;===============================================
STATE active
EVENT onBeginState()
; Been triggered. Do stuff.
; Debug.Trace("Entered active state - picked: " + chooser)
if chooser == 1
self.PlayAnimation("PlayAnim01")
mySFX.play(self)
wait(0.5)
placeAtMe(FallingDustExplosion01)
wait(3.5)
self.PlayAnimation("PlayAnim02")
elseif chooser == 2
self.PlayAnimation("PlayAnim02")
mySFX.play(self)
elseif chooser == 3
self.PlayAnimation("PlayAnim03")
mySFX.play(self)
endif
gotoState("waiting")
endEVENT
endSTATE
STATE waiting
EVENT onBeginState()
rndWaitTimer = RandomInt(10,30)
; Debug.Trace("Entered wating state - waiting for " + rndWaitTimer + " seconds")
wait(rndWaitTimer) ; sit around for 1-5 seconds
gotoState("latent")
; Debug.Trace("Should be ready to trigger")
endEVENT
endSTATE