T_ScNews_Echo_Spawner_Allw
Tamriel_Data.esm
Variables
8
Local Variables
pick1
pick2
weight1
weight2
doOnce
resetDay
randomPaperDiv
randomPaper
Source
1Begin T_ScNews_Echo_Spawner_Allw
2
3short pick1
4short pick2
5short weight1
6short weight2
7short doOnce
8short resetDay
9float randomPaper
10short randomPaperDiv
11
12if ( MenuMode )
13 Return
14endif
15
16if ( doOnce >= 30 ) ; paper has been spawned, check if it should respawn
17 if ( CellChanged == 1 )
18 if ( resetDay <= DaysPassed ) ; if two days have passed, reset and respawn.
19 set doOnce to 0
20 endif
21 else
22 Return
23 endif
24endif
25
26if ( doOnce == 0 ) ; if we've reset the script, fire it up.
27 set doOnce to 10
28 ; disable the spawner
29 if ( GetDisabled == 0 )
30 Disable
31 endif
32endif
33
34if ( doOnce == 30 )
35 Return
36elseif ( doOnce == 10 )
37 ; only if no other script has initialized the randompicker scripts do we proceed
38 if ( ScriptRunning T_ScNews_Echo_Picker1 == 0 )
39 if ( ScriptRunning T_ScNews_Echo_Picker2 == 0 )
40 set doOnce to 20
41 StartScript T_ScNews_Echo_Picker1
42 StartScript T_ScNews_Echo_Picker2
43 endif
44; else
45; MessageBox "script already running"
46 endif
47elseif ( doOnce == 20 )
48 ; fetch the data on which paper was picked
49 if ( T_Glob_News_Echo_Pick1 > 0 )
50 set pick1 to T_Glob_News_Echo_Pick1
51 set weight1 to ( pick1 / 100 )
52 set pick1 to ( pick1 - 100*weight1 )
53 set T_Glob_News_Echo_Pick1 to 0
54 elseif ( T_Glob_News_Echo_Pick1 < 0 )
55 set pick1 to 0
56 set weight1 to 0
57 set T_Glob_News_Echo_Pick1 to 0
58 else
59 Return
60 endif
61 if ( T_Glob_News_Echo_Pick2 > 0 )
62 set pick2 to T_Glob_News_Echo_Pick2
63 set weight2 to ( pick2 / 100 )
64 set pick2 to ( pick2 - 100*weight2 )
65 set T_Glob_News_Echo_Pick2 to 0
66 elseif ( T_Glob_News_Echo_Pick2 < 0 )
67 set pick2 to 0
68 set weight2 to 0
69 set T_Glob_News_Echo_Pick2 to 0
70 else
71 Return
72 endif
73
74 set weight2 to ( weight1 + weight2 )
75; set weight3 to ( weight2 + weight3 ) ;etc if you have more pickers
76
77 if ( weight2 > 0 ) ; if there are papers in the pool
78 set randomPaper to ( Random 32767 )
79 set randomPaperDiv to ( randomPaper / weight2 )
80 set randomPaper to ( randomPaper - ( randomPaperDiv * weight2 ) ) + 0.1
81
82 if ( weight1 > randomPaper )
83; set pick1 to pick1
84 else
85 set pick1 to pick2
86; in case of 3 or more pick variables, the latter pick should be the final one in the else bracket here
87 endif
88
89 ; here's where you spawn the papers.
90 if ( pick1 == 48 )
91 PlaceAtMe T_News_Echo_48 1 0 1
92 elseif ( pick1 == 47 )
93 PlaceAtMe T_News_Echo_47 1 0 1
94 elseif ( pick1 == 46 )
95 PlaceAtMe T_News_Echo_46 1 0 1
96 elseif ( pick1 == 45 )
97 PlaceAtMe T_News_Echo_45 1 0 1
98 elseif ( pick1 == 44 )
99 PlaceAtMe T_News_Echo_44 1 0 1
100 elseif ( pick1 == 43 )
101 PlaceAtMe T_News_Echo_43 1 0 1
102 elseif ( pick1 == 42 )
103 PlaceAtMe T_News_Echo_42 1 0 1
104 elseif ( pick1 == 41 )
105 PlaceAtMe T_News_Echo_41 1 0 1
106 elseif ( pick1 == 40 )
107 PlaceAtMe T_News_Echo_40 1 0 1
108 elseif ( pick1 == 39 )
109 PlaceAtMe T_News_Echo_39 1 0 1
110 elseif ( pick1 == 38 )
111 PlaceAtMe T_News_Echo_38 1 0 1
112 elseif ( pick1 == 37 )
113 PlaceAtMe T_News_Echo_37 1 0 1
114 elseif ( pick1 == 36 )
115 PlaceAtMe T_News_Echo_36 1 0 1
116 elseif ( pick1 == 35 )
117 PlaceAtMe T_News_Echo_35 1 0 1
118 elseif ( pick1 == 34 )
119 PlaceAtMe T_News_Echo_34 1 0 1
120 elseif ( pick1 == 33 )
121 PlaceAtMe T_News_Echo_33 1 0 1
122 elseif ( pick1 == 32 )
123 PlaceAtMe T_News_Echo_32 1 0 1
124 elseif ( pick1 == 31 )
125 PlaceAtMe T_News_Echo_31 1 0 1
126 elseif ( pick1 == 30 )
127 PlaceAtMe T_News_Echo_30 1 0 1
128 elseif ( pick1 == 29 )
129 PlaceAtMe T_News_Echo_29 1 0 1
130 elseif ( pick1 == 28 )
131 PlaceAtMe T_News_Echo_28 1 0 1
132 elseif ( pick1 == 27 )
133 PlaceAtMe T_News_Echo_27 1 0 1
134 elseif ( pick1 == 26 )
135 PlaceAtMe T_News_Echo_26 1 0 1
136 elseif ( pick1 == 25 )
137 PlaceAtMe T_News_Echo_25 1 0 1
138 elseif ( pick1 == 24 )
139 PlaceAtMe T_News_Echo_24 1 0 1
140 elseif ( pick1 == 23 )
141 PlaceAtMe T_News_Echo_23 1 0 1
142 elseif ( pick1 == 22 )
143 PlaceAtMe T_News_Echo_22 1 0 1
144 elseif ( pick1 == 21 )
145 PlaceAtMe T_News_Echo_21 1 0 1
146 elseif ( pick1 == 20 )
147 PlaceAtMe T_News_Echo_20 1 0 1
148 elseif ( pick1 == 19 )
149 PlaceAtMe T_News_Echo_19 1 0 1
150 elseif ( pick1 == 18 )
151 PlaceAtMe T_News_Echo_18 1 0 1
152 elseif ( pick1 == 17 )
153 PlaceAtMe T_News_Echo_17 1 0 1
154 elseif ( pick1 == 16 )
155 PlaceAtMe T_News_Echo_16 1 0 1
156 elseif ( pick1 == 15 )
157 PlaceAtMe T_News_Echo_15 1 0 1
158 elseif ( pick1 == 14 )
159 PlaceAtMe T_News_Echo_14 1 0 1
160 elseif ( pick1 == 13 )
161 PlaceAtMe T_News_Echo_13 1 0 1
162 elseif ( pick1 == 12 )
163 PlaceAtMe T_News_Echo_12 1 0 1
164 elseif ( pick1 == 11 )
165 PlaceAtMe T_News_Echo_11 1 0 1
166 elseif ( pick1 == 10 )
167 PlaceAtMe T_News_Echo_10 1 0 1
168 elseif ( pick1 == 9 )
169 PlaceAtMe T_News_Echo_09 1 0 1
170 elseif ( pick1 == 8 )
171 PlaceAtMe T_News_Echo_08 1 0 1
172 elseif ( pick1 == 7 )
173 PlaceAtMe T_News_Echo_07 1 0 1
174 elseif ( pick1 == 6 )
175 PlaceAtMe T_News_Echo_06 1 0 1
176 elseif ( pick1 == 5 )
177 PlaceAtMe T_News_Echo_05 1 0 1
178 elseif ( pick1 == 4 )
179 PlaceAtMe T_News_Echo_04 1 0 1
180 elseif ( pick1 == 3 )
181 PlaceAtMe T_News_Echo_03 1 0 1
182 elseif ( pick1 == 2 )
183 PlaceAtMe T_News_Echo_02 1 0 1
184 elseif ( pick1 == 1 )
185 PlaceAtMe T_News_Echo_01 1 0 1
186 endif
187; MessageBox "spawned paper"
188
189 endif
190
191 ; set resetday to something so that the same paper doesn't stay here forever
192 set resetDay to ( 2 + DaysPassed )
193
194 set doOnce to 30
195
196endif
197
198End