4
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

157 lines
4.2 KiB

Scriptname _00E_MQ12c_HarbirSiegeSC extends ObjectReference Conditional
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnTriggerEnter(ObjectReference akActionRef)
If akActionRef == PlayerREF
bInTrigger = True
RegisterForSingleUpdate(1)
SpotPlayer()
EndIf
EndEvent
Event OnTriggerLeave(ObjectReference akActionRef)
If akActionRef == PlayerREF
bInTrigger = False
if MQ12c_OpenFire.GetValueInt() == 1
StopFireOnPlayer()
EndIf
EndIf
EndEvent
Event OnUpdate()
if bInTrigger
OpenFireOnPlayer()
EndIf
EndEvent
State KillPlayerState
Event OnBeginState()
RegisterForSingleUpdate(10)
EndEvent
Event OnUpdate()
_00E_MQ12c_BallistaSpell.cast(MQ12c_HarborMage_01, PlayerREF)
_00E_MQ12c_BallistaSpell.cast(MQ12c_HarborMage_02, PlayerREF)
_00E_MQ12c_BallistaSpell.cast(MQ12c_HarborMage_03, PlayerREF)
RegisterForSingleUpdate(10)
EndEvent
EndState
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function SpotPlayer()
_00E_MQ12c_CaughtByNehrimese.Show()
_00E_TavernGames_CaughtCheatingImod.Apply()
MAGVampireSunlight.Play(PlayerREF)
MQ12c_NehrimeseScoutREF.Say(MQ12c_D01_NehrimeseScoutBranchTopic)
EndFunction
Function OpenFireOnPlayer()
_00E_Music_Combat_BonehunterNoCond.Add()
MQ12c_OpenFire.SetValueInt(1)
int iIndex = _00E_MQ12c_FireNPCs.GetSize()
while iIndex > 0
iIndex -= 1
Actor akActor = _00E_MQ12c_FireNPCs.GetAt(iIndex) as Actor
akActor.EvaluatePackage()
endwhile
iIndex = _00E_MQ12c_SoldierNPCs.GetSize()
while iIndex > 0
iIndex -= 1
Actor akActor = _00E_MQ12c_SoldierNPCs.GetAt(iIndex) as Actor
akActor.EvaluatePackage()
akActor.StartCombat(PlayerREF)
akActor.SetGhost(False)
endwhile
Actor akSayActor = _00E_MQ12c_FireNPCs.GetAt(Utility.RandomInt(0, _00E_MQ12c_FireNPCs.GetSize() - 1)) as Actor
akSayActor.Say(BanditDialogue_NormalToCombat)
GoToState("KillPlayerState")
EndFunction
Function StopFireOnPlayer()
_00E_Music_Combat_BonehunterNoCond.Remove()
MQ12c_OpenFire.SetValueInt(0)
int iIndex = _00E_MQ12c_FireNPCs.GetSize()
while iIndex > 0
iIndex -= 1
Actor akActor = _00E_MQ12c_FireNPCs.GetAt(iIndex) as Actor
akActor.EvaluatePackage()
akActor.StopCombat()
akActor.StopCombatAlarm()
endwhile
iIndex = _00E_MQ12c_SoldierNPCs.GetSize()
while iIndex > 0
iIndex -= 1
Actor akActor = _00E_MQ12c_SoldierNPCs.GetAt(iIndex) as Actor
akActor.EvaluatePackage()
akActor.StopCombat()
akActor.StopCombatAlarm()
akActor.SetGhost(True)
endwhile
GoToState("")
UnregisterForUpdate()
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool bInTrigger
bool Property bOpenFire Auto Conditional Hidden
Actor Property MQ12c_HarborMage_01 Auto
Actor Property MQ12c_HarborMage_02 Auto
Actor Property MQ12c_HarborMage_03 Auto
Formlist Property _00E_MQ12c_FireNPCs Auto
Formlist Property _00E_MQ12c_SoldierNPCs Auto
Actor Property PlayerREF Auto
ObjectReference Property MQ12c_NehrimeseScoutREF Auto
ImageSpaceModifier Property _00E_TavernGames_CaughtCheatingImod Auto
GlobalVariable Property MQ12c_OpenFire Auto
Message Property _00E_MQ12c_CaughtByNehrimese Auto
MusicType Property _00E_Music_Combat_BonehunterNoCond Auto
Sound Property MAGVampireSunlight Auto
Spell Property _00E_MQ12c_BallistaSpell Auto
Topic Property MQ12c_D01_NehrimeseScoutBranchTopic Auto
Topic Property BanditDialogue_NormalToCombat Auto