Scripts

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