Scripts

T_ScNews_Echo_Spawner_Rare

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