Select game:
Search:
Select a record type:
|
SEThadonScript (0x000171b6)
- Record Type: SCPT
- Editor ID: SEThadonScript
- Form ID: 0x000171b6
- Source File: Oblivion.esm.mod
- Patch Status: FormID has not been modified.
Parameter |
Value |
SCTX |
scn SEThadonScript
short CleanUp ;A Doonce variable for cleaning up Thadon's Meal
short Speech ;Fires off Thadon's Death Speech
short ThadonTalk ;For use with Thadon's Timer for Death Speech
short ThadonMad ;For use with Thadon's Timer for Anger Talk in SE07A
float ThadonDeathTimer ;Thadon's Timer to delay stage set on death
float ThadonTalkTimer ;Thadon's Timer for Death Speech
float ThadonFinalDeathTimer ;"
float ThadonMadTalkLength ;Thadon's timer for the delay of lines and events in his Anger Talk in SE07A
float ThadonTimer ;A float for the artifical delay in Thadon's appearance before his Anger Talk in SE07A
float ThadonTimer2 ;A float for the artifical delay in Thadon's appearance before his Anger Talk in SE07A
Begin OnActivate
If GetDead == 1 && IsActionRef Player == 1 && GetStage SE07B <= 40 && GetStageDone SE07B 5 == 1
Player.AddItem SE07ThadonBlood 1
Else
Activate
EndIf
End
; The following 4 OnPackage Blocks handle the resetting of Thadon's Meal every day at the appropriate times.
begin OnPackageEnd SE07BThadonDies
if ( Speech == 0 )
if ( GetStage SE07B >= 35 )
SetEssential SEThadon 0
Set Speech to 1
endif
endif
end
begin OnDeath
; this sets the SE12 variables if he is the traitor
if GetQuestRunning SE12 == 1
set SE12.TraitorDead to 1
; which pool is still ordered?
if SE12.ManiaPoolOrdered == 1
; means we're at Mania side
if SE12.ManiaPriestsDead >= SE12.ManiaPriestsCount
SE12PoolManiaRef.activate SEThadonRef 1
setstage SE12 150
endif
else
; means we're at Dementia side
if SE12.DementiaPriestsDead >= SE12.DementiaPriestsCount
SE12PoolDementiaRef.activate SEThadonRef 1
setstage SE12 160
endif
endif
endif
If GetStage SE07B <= 45
SEWideEyeRef.PickIdle
SEGundlarRef.PickIdle
EndIf
end
; taunt at the beginning of combat in SE12
begin OnStartCombat player
if getincell XPGloomstonePassage == 1
sayto player SE12TraitorTaunts
set SE12.TraitorTalk to 2
endif
end
Begin OnAlarm 3 Player
if SE12.TraitorTalk == 0
set SE12.TraitorTalk to 1
endif
end
begin gamemode
;Set SE04 Stage 10 after player has talked to Thadon at the beginning
;Necessary so that player gets pop-up and can select this as Active Quest instead of SE04Shell
if ( GetStageDone SE04 10 == 0 )
if ( SE04.Stage10Update == 1 )
SetStage SE04 10
endif
endif
;For use with SE07A This kicks off the end speech
if ( GetStage SE07A >= 40 ) && ( SE07A.ThadonMove == 1 )
DisablePlayerControls
SEThadonRef.Enable
SE07SaintEnd01Ref.Enable
SE07SaintEnd02Ref.Enable
; SEThadonRef.Evp
; SE07SaintEnd01Ref.Evp
; SE07SaintEnd02Ref.Evp
Set ThadonTimer to 1
SEDerveninRef.Evp
SEArctusRef.Evp
Set SE07A.ThadonMove to 2
endif
if ( SE07A.ThadonMove == 2 )
if ( ThadonTimer > 0 )
Set ThadonTimer to ( ThadonTimer - GetSecondsPassed )
else
SE07ThadonSpeaks.Say SE07AThadonShout 1 SEThadon 1
Set ThadonTimer2 to 6
Set SE07A.ThadonMove to 3
endif
endif
if ( SE07A.ThadonMove == 3 )
if ( ThadonTimer2 > 0 )
Set ThadonTimer2 to ( ThadonTimer2 - GetSecondsPassed )
else
Set SE07A.ThadonMove to 4
endif
endif
if ( GetStage SE07A >= 40 ) && ( SE07A.ThadonMove == 4 )
if ( ThadonMad == 0 ) && ( ThadonMadTalkLength <= 0 )
Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout
SESheogorathRef.Sayto SEThadonRef SE07ASheoShout 1
Set ThadonMad to 1
elseif ( ThadonMad == 1 ) && ( ThadonMadTalkLength <= 0 )
Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout02
SESheogorathRef.Sayto SEThadonRef SE07ASheoShout02 1
Set ThadonMad to 2
elseif ( ThadonMad == 2 ) && ( ThadonMadTalkLength <= 0 )
Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout03
SESheogorathRef.Sayto SEThadonRef SE07ASheoShout03 1
Set ThadonMad to 3
elseif ( ThadonMad == 3 ) && ( ThadonMadTalkLength <= -6.5 )
Set SE07A.ThadonMove to 5
Set ThadonMad to 4
endif
endif
if ( ThadonMad > 0 ) && ( ThadonMad < 4 )
Set ThadonMadTalkLength to ThadonMadTalkLength - GetSecondsPassed
endif
if ( GetStage SE07A >= 40 ) && ( SE07A.Convo != 12 ) && ( SE07A.ThadonMove == 5 )
startconversation SESheogorathRef SE07AThadonLeaves
Set SE07A.ThadonMove to 6
endif
;This kicks off end part of SE07B
if ( Player.GetDistance SEThadonRef < 500 )
if ( SE07B.OffScreenKill == 0 )
if ( GetStage SE07B >= 30 )
if ( SE07B.Serves == 2 )
Set CleanUp to 0
SetStage SE07B 35
endif
endif
endif
endif
;Thadon's Death Speech
if ( Speech == 1 )
if ( ThadonTalk == 0 ) && ( ThadonTalkTimer == 0 )
Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech01
SEGundlarRef.Look SEThadonRef
SEWideEyeRef.Look SEThadonRef
SEThadonRef.Say SE07BThadonDeathSpeech01 1
Set ThadonTalk to 2
elseif ( ThadonTalk == 2 ) && ( ThadonTalkTimer <= 0 )
Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech02
Pickidle
SEThadonRef.Say SE07BThadonDeathSpeech02 1
Set ThadonTalk to 3
elseif ( ThadonTalk == 3 ) && ( ThadonTalkTimer <= 0 )
Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech03
SEThadonRef.Say SE07BThadonDeathSpeech03 1
Set ThadonTalk to 4
elseif ( ThadonTalk == 4 ) && ( ThadonTalkTimer <= 0 )
Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech04
Pickidle
SEThadonRef.Say SE07BThadonDeathSpeech04 1
Set ThadonTalk to 5
elseif ( ThadonTalk == 5 ) && ( ThadonTalkTimer <= 0 )
Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech05
Pickidle
SEThadonRef.Say SE07BThadonDeathSpeech05 1
Set ThadonTalk to 6
elseif ( ThadonTalk == 6 ) && ( ThadonTalkTimer <= 0 )
Pickidle
SEGundlarRef.Evp
SEWideEyeRef.Evp
Set ThadonDeathTimer to 5
Set ThadonTalk to 7
endif
endif
if ( ThadonTalk > 0 ) && ( ThadonTalk < 7 )
Set ThadonTalkTimer to ThadonTalkTimer - GetSecondsPassed
endif
if ( ThadonTalk == 7 )
if ( ThadonDeathTimer > 0 )
Set ThadonDeathTimer to ThadonDeathTimer - GetSecondsPassed
else
Kill
Set ThadonFinalDeathTimer to 3
Set ThadonTalk to 8
endif
endif
if ( ThadonTalk == 8 )
if ( ThadonFinalDeathTimer > 0 )
Set ThadonFinalDeathTimer to ThadonFinalDeathTimer - GetSecondsPassed
else
SetStage SE07B 40
Set ThadonTalk to 9
endif
endif
if SE12.TraitorTalk == 1
if getincell XPGloomstonePassage == 1 && GetDead == 0
if ThadonTalkTimer > 0
set ThadonTalkTimer to ThadonTalkTimer - getSecondsPassed
else
; taunt player
if IsInCombat == 1
; turn off taunts when he enters combat
set SE12.TraitorTalk to 2
setav aggression 50
endif
; taunt player
set ThadonTalkTimer to sayto player SE12TraitorTaunts 1
set ThadonTalkTimer to ThadonTalkTimer + 1
endif
endif
endif
end
begin OnPackageEnd SE07AExitsSacellum
if ( GetStage SE07A >= 40 )
SEThadonRef.Disable
SE07SaintEnd01Ref.Disable
SE07SaintEnd02Ref.Disable
EnablePlayerControls
SetStage SE07A 45
endif
end |
|