144 lines
4.4 KiB
Plaintext
144 lines
4.4 KiB
Plaintext
Scriptname _00E_A0_ActionTrigger_MyradFlight extends ObjectReference
|
|
|
|
|
|
; ========= ACTIONTYPE INDEX =========
|
|
; 1 - Sound: FlyBy close object
|
|
; 2 - Sound: FlyBy ground
|
|
; 3 - Event: Birds fly away
|
|
; 4 - Event: Landing Zone
|
|
; 5 - Event: Loading
|
|
; ====================================
|
|
|
|
|
|
;How to use:
|
|
;===========
|
|
|
|
; Dem trigger an der gewünschten Stelle erstellen und ein linked Ref
|
|
; setzten, ganz egal was es ist. Das Entscheidene dabei ist das
|
|
; Keyword des links.
|
|
|
|
; Natürlich kann das linkd Ref auch gezielt auf Objekt
|
|
; verweisen, dass im Event Verwendung findet. Bei der Landung ist
|
|
; der linked Ref z.B. die camera der Lande cinematic.
|
|
|
|
; Bei Initialisierung holt sich das script den link und checkt
|
|
; anhand des keyword für was es zuständig ist:
|
|
|
|
; if GetLinkedRef(FlyByCloseObject) != none
|
|
; ActionRef = GetLinkedRef(FlyByCloseObject)
|
|
; ActionType = 1
|
|
; endif
|
|
|
|
|
|
; Durch hinzufügen von neuen Keywords können schnell neue events
|
|
; definiert werden ohne jedes mal einen neuen activator +script
|
|
; erstellen zu müssen.
|
|
|
|
; Dabei den ACTIONTYPE INDEX auf den neuesten Stand bringen.
|
|
|
|
; Beim Erstellen von neuen Event-Keywords immer die Namensgebung
|
|
; einhalten: _00E_ActionTrigger_MyradFlight_NeuerEvent
|
|
|
|
|
|
; Es können natürlich neue ActionTrigger mit einem anderen Zusändigkeitsbereich
|
|
; im Kit erstellt werden. Neues script, neue keywords:
|
|
|
|
; Scriptname: _00E_A0_ActionTrigger_Todesstern
|
|
; Keywords: _00E_ActionTrigger_Todesstern_DarthVaderAmbush, _00E_ActionTrigger_Todesstern_AlderanSprengen
|
|
|
|
|
|
Quest Property FlightControl auto
|
|
|
|
Keyword Property EVENTflyByGround Auto
|
|
Keyword Property EVENTflyByCloseObject Auto
|
|
Keyword Property EVENTbirdsFlyAway Auto
|
|
Keyword Property EVENTLandingZone Auto
|
|
Keyword Property EVENTloading Auto
|
|
|
|
objectReference Property ActionRef Auto hidden
|
|
objectReference Property PlayerGoal Auto hidden
|
|
|
|
Sound Property SFXflyByGround Auto
|
|
Sound Property SFXflyByObject Auto
|
|
Sound Property SFXflyByBirds Auto
|
|
|
|
ImageSpaceModifier Property IMODflyBy Auto
|
|
ImageSpaceModifier Property IMODflyByDV Auto
|
|
GlobalVariable Property MyradIsFlying Auto
|
|
|
|
Int Property ACTIONTYPE Auto Hidden
|
|
|
|
|
|
|
|
Event OnInit()
|
|
|
|
if GetLinkedRef(EVENTflyByCloseObject) != none
|
|
ActionRef = GetLinkedRef(EVENTflyByCloseObject) ; link: egal
|
|
ACTIONTYPE = 1
|
|
endif
|
|
if GetLinkedRef(EVENTflyByGround) != none
|
|
ActionRef = GetLinkedRef(EVENTflyByGround) ; link: egal
|
|
ACTIONTYPE = 2
|
|
endif
|
|
if GetLinkedRef(EVENTBirdsFlyAway) != none ; link: FXBirdFlockFleePineACT
|
|
ActionRef = GetLinkedRef(EVENTBirdsFlyAway)
|
|
ACTIONTYPE = 3
|
|
endif
|
|
if GetLinkedRef(EVENTLandingZone) != none
|
|
ActionRef = GetLinkedRef(EVENTLandingZone) ; link 1: xmarkerheading für camera position, land cinematic
|
|
PlayerGoal = ActionRef.GetLinkedRef() ; link 2: xmarkerheading für playergoal, land cinematic
|
|
ACTIONTYPE = 4
|
|
endif
|
|
if GetLinkedRef(EVENTloading) != none
|
|
ActionRef = GetLinkedRef(EVENTloading) ; link 1: xmarkerheading Spawn
|
|
ACTIONTYPE = 5
|
|
endif
|
|
ENDevent
|
|
|
|
|
|
int SFXvolume
|
|
Event OnTriggerEnter(ObjectReference ActionActor)
|
|
|
|
if ActionActor == (FlightControl as _00E_A0_MyradFlightControlQuest).Myrad && MyradIsFlying.getValue() != 0
|
|
if ACTIONTYPE == 1
|
|
SFXvolume = SFXflyByObject.play(ActionActor)
|
|
Sound.SetInstanceVolume(SFXvolume, 0.85)
|
|
game.shakeCamera(afStrength = 4, afDuration = 3)
|
|
IMODflyByDV.apply()
|
|
|
|
elseif ACTIONTYPE == 2
|
|
game.shakeCamera(afStrength = 4, afDuration = 2)
|
|
SFXvolume = SFXflyByGround.play(ActionActor)
|
|
Sound.SetInstanceVolume(SFXvolume, 0.75)
|
|
IMODflyBy.apply()
|
|
|
|
elseif ACTIONTYPE == 3
|
|
; Als link: FXBirdFlockFleePineACT benutzen!
|
|
ActionRef.PlayAnimation("PlayAnim01")
|
|
SFXvolume = SFXflyByBirds.play(ActionActor)
|
|
Sound.SetInstanceVolume(SFXvolume, 1)
|
|
|
|
elseif ACTIONTYPE == 4
|
|
if (ActionActor as actor).GetFlyingState() != 0
|
|
(FlightControl as _00E_A0_MyradFlightControlQuest).CamSpawn = ActionRef
|
|
if PlayerGoal != none
|
|
(FlightControl as _00E_A0_MyradFlightControlQuest).PlayerGoal = PlayerGoal
|
|
endif
|
|
endif
|
|
|
|
elseif ACTIONTYPE == 5
|
|
(FlightControl as _00E_A0_MyradFlightControlQuest).PlayerGoal = ActionRef
|
|
(FlightControl as _00E_A0_MyradFlightControlQuest).Loading()
|
|
endif
|
|
endif
|
|
ENDevent
|
|
|
|
;Event OnTriggerLeave(ObjectReference ActionActor)
|
|
|
|
; if ActionActor == (FlightControl as _00E_A0_MyradFlightControlQuest).Myrad && MyradIsFlying.getValue() != 0
|
|
; if ACTIONTYPE == 1
|
|
|
|
; endif
|
|
; endif
|
|
|
|
;ENDevent |