79 lines
2.6 KiB
Plaintext
79 lines
2.6 KiB
Plaintext
|
Scriptname _00E_A1_OnslaughtImpactSC extends ObjectReference
|
||
|
|
||
|
;=====================================================================================
|
||
|
; EVENTS
|
||
|
;=====================================================================================
|
||
|
|
||
|
Event OnInit()
|
||
|
|
||
|
; If !((Math.abs(Self.GetPositionZ() - PlayerREF.GetPositionZ())) > fMaximumZDifference)
|
||
|
; Dash(False)
|
||
|
; Else
|
||
|
; Dash(True)
|
||
|
; EndIf
|
||
|
|
||
|
; Self.Delete()
|
||
|
|
||
|
EndEvent
|
||
|
|
||
|
;=====================================================================================
|
||
|
; FUNCTIONS
|
||
|
;=====================================================================================
|
||
|
|
||
|
Function Dash(bool bCorrectZ = False)
|
||
|
|
||
|
float fDistance = (Math.abs(Self.GetDistance(PlayerREF)))
|
||
|
|
||
|
If (fDistance > fMaximumDistance)
|
||
|
|
||
|
float fCorrection = Math.abs(fMaximumDistance - fDistance)
|
||
|
; Debug.MessageBox(fCorrection)
|
||
|
; Debug.MessageBox("Correct " + Self.GetPositionZ())
|
||
|
Self.MoveTo(Self, -(fCorrection* Math.Sin(Self.GetAngleZ())), -(fCorrection* Math.Cos(Self.GetAngleZ())), 0.0)
|
||
|
|
||
|
Else
|
||
|
; Debug.MessageBox("Don't Correct " + Self.GetPositionZ())
|
||
|
Self.MoveTo(Self, -(75.0 * Math.Sin(Self.GetAngleZ())), -(75.0 * Math.Cos(Self.GetAngleZ())), 0.0)
|
||
|
|
||
|
EndIf
|
||
|
|
||
|
If bCorrectZ
|
||
|
Self.SetPosition(Self.GetPositionX(), Self.GetPositionY(), PlayerREF.GetPositionZ())
|
||
|
akNavmeshRef = Self.PlaceActorAtMe(_00E_NPCOorbayaInvisibeActor)
|
||
|
Self.SetPosition(akNavmeshRef.GetPositionX(), akNavmeshRef.GetPositionY(), akNavmeshRef.GetPositionZ())
|
||
|
Self.SetAngle(PlayerREF.GetAngleX(), PlayerREF.GetAngleY(), PlayerREF.GetAngleZ())
|
||
|
; Debug.MessageBox("Correct Z!")
|
||
|
Else
|
||
|
akNavmeshRef = Self.PlaceActorAtMe(_00E_NPCOorbayaInvisibeActor)
|
||
|
Self.SetPosition(Self.GetPositionX(), Self.GetPositionY(), akNavmeshRef.GetPositionZ())
|
||
|
EndIf
|
||
|
|
||
|
_00E_A1_OnslaughtCloakSP.Cast(PlayerREF, PlayerREF)
|
||
|
|
||
|
PlayerREF.SplineTranslateToRef(Self, 1.0, 2750.0, 1.0)
|
||
|
A1_OnslaughtPlayer.ForceRefTo(PlayerREF)
|
||
|
MAGShoutSprint03.Apply()
|
||
|
MAGShoutSprintFire.Play(PlayerREF)
|
||
|
akNavmeshRef.Delete()
|
||
|
|
||
|
EndFunction
|
||
|
|
||
|
;=====================================================================================
|
||
|
; PROPERTIES
|
||
|
;=====================================================================================
|
||
|
|
||
|
float fMaximumZDifference = 350.0
|
||
|
float fMaximumDistance = 1300.0
|
||
|
|
||
|
Actor akNavmeshRef
|
||
|
ReferenceAlias Property A1_OnslaughtPlayer Auto
|
||
|
|
||
|
Sound Property MAGShoutSprintFire Auto
|
||
|
Spell Property _00E_A1_OnslaughtCloakSP Auto
|
||
|
|
||
|
Actor Property PlayerREF Auto
|
||
|
|
||
|
ActorBase Property _00E_NPCOorbayaInvisibeActor Auto
|
||
|
|
||
|
ImageSpaceModifier Property MAGShoutSprint03 Auto
|