54 lines
1.3 KiB
Plaintext
54 lines
1.3 KiB
Plaintext
Scriptname CWCatapultStrikeScript extends ObjectReference
|
|
|
|
;This script handles the "fallout 3 artillary" style catapult strike for use when the actual projectile firing catapults unload.
|
|
|
|
|
|
Explosion Property ExplosionObject Auto
|
|
{BASEOBJECT: the explosion to use -> CWCatapultExp}
|
|
|
|
int deleteAfterTime = 10
|
|
bool dead = false ; If true, then we are dead and we shouldn't try to register for stuff
|
|
|
|
Event OnInit()
|
|
Cell parentCell = GetParentCell()
|
|
if !parentCell || !parentCell.IsAttached()
|
|
dead = true
|
|
Delete()
|
|
EndIf
|
|
EndEvent
|
|
|
|
Event OnLoad()
|
|
if !dead
|
|
bool Registered = RegisterForAnimationEvent(self, "end")
|
|
; debug.trace(self + "OnLoad() successfully registered for event?:" + Registered)
|
|
|
|
RegisterForSingleUpdate(deleteAfterTime)
|
|
EndIf
|
|
EndEvent
|
|
|
|
Event OnAnimationEvent(ObjectReference akSource, string asEventName)
|
|
; debug.trace(self + "OnAnimationEvent(:" + asEventName )
|
|
|
|
if asEventName == "end"
|
|
PlaceAtMe(ExplosionObject)
|
|
UnregisterForAnimationEvent(self, "end")
|
|
deleteMe()
|
|
EndIf
|
|
EndEvent
|
|
|
|
Event OnUpdate()
|
|
deleteMe()
|
|
EndEvent
|
|
|
|
Event OnAnimationEventUnregistered(ObjectReference akSource, string asEventName)
|
|
deleteMe()
|
|
EndEvent
|
|
|
|
Event deleteMe()
|
|
dead = true
|
|
UnregisterforUpdate()
|
|
UnregisterForAnimationEvent(self, "end")
|
|
Disable()
|
|
Delete()
|
|
EndEvent
|