TR_m4_NPC_HH_RedoranHead
TR_Mainland.esm
Variables
10
Local Variables
TR_Map
control
controlQ
T_Local_NPC
NoLore
TR_m4_HH_RedoranWorker
prepareToLeave
setDisable
doOnce
frameHour
Source
1Begin TR_m4_NPC_HH_RedoranHead
2; Script for the head of the Redoran workers in Omaynis. Will only be enabled during certain stages of the Omaynis Inn quest.
3; Also has some additional mechanics
4
5short TR_Map
6short control
7short controlQ
8short T_Local_NPC
9short NoLore
10short TR_m4_HH_RedoranWorker ; identifier
11short prepareToLeave
12short setDisable
13short doOnce
14float frameHour ; timestamp of previous frame
15
16if ( MenuMode )
17 return
18endif
19
20if ( TR_m4_Oma_InnStage < 1 )
21 Set setDisable to 1
22elseif ( TR_m4_HH_WorkerDisable == 1 )
23 Set setDisable to 1
24elseif ( GetDisabled )
25 Enable
26 Set setDisable to 0
27endif
28
29if ( setDisable )
30 if ( GetHealth >= 1 )
31 if ( GetDisabled == 0 )
32 Disable
33 endif
34 endif
35 return
36endif
37
38if ( OnKnockOut )
39 if ( prepareToLeave == -1 )
40 ; workers brawl flag
41 StopCombat
42 "TR_m4_q_Balen Romayen"->StopCombat
43 "TR_m4_q_Duni Llothren"->StopCombat
44 "TR_m4_q_Jeryn"->StopCombat
45 Set prepareToLeave to 1
46 endif
47endif
48
49if ( OnDeath )
50 ; count the number of dead workers
51 Set TR_m4_HH_WorkerDeathCounter to ( TR_m4_HH_WorkerDeathCounter + 1 )
52 if ( TR_m4_HH_WorkerDeathCounter == 4 )
53 ; all dead
54 ModPCFacRep -3 "Redoran"
55 Journal TR_m4_HH_AND_OmaynisInn2 70
56 endif
57endif
58
59if ( prepareToLeave != 0 )
60 if ( doOnce == 0 )
61 Set frameHour to GameHour
62 Set doOnce to 1
63 endif
64 if ( TR_m4_HH_WorkerDeathCounter > 0 ) ; do not disable workers if having initiated a fight
65 return
66 endif
67 if ( prepareToLeave == 1 )
68 if ( TR_m4_HH_WorkerDisable == 0 )
69 Set TR_m4_HH_WorkerDisable to -1
70 ; used for dialogue purposes
71 endif
72 endif
73 if ( CellChanged )
74 if ( prepareToLeave == 1 )
75 Set TR_m4_HH_WorkerDisable to 1
76 endif
77 elseif ( GetDistance Player > 6500 )
78 ; require a bit more than a cell change if they are still fighting
79 Set TR_m4_HH_WorkerDisable to 1
80 elseif ( GameHour >= ( frameHour + 1 ) ) ; player rested
81 Set TR_m4_HH_WorkerDisable to 1
82 elseif ( GameHour < frameHour )
83 if ( GameHour >= ( frameHour - 23 ) )
84 Set TR_m4_HH_WorkerDisable to 1
85 endif
86 endif
87 Set frameHour to GameHour
88endif
89
90if ( TR_Map > 0 )
91 return
92endif
93
94set TR_Map to 4
95
96End