Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.35 KB | None | 0 0
  1. Save Hero
  2. Options: Action, Create Thread
  3. Return Type: (None)
  4. Parameters
  5. Player Index = 0 <Integer>
  6. Grammar Text: Save Hero(Player Index)
  7. Hint Text: (None)
  8. Custom Script Code
  9. Local Variables
  10. Temp Loop Var = 0 <Integer>
  11. Temp Start Loop Var = 0 <Integer>
  12. Saving Player = 0 <Integer>
  13. ------- Number of vars stored is: 4 not including items or abilities, then add 16x2 +4 for item slots... and add 7+7 for abilities.. so 54
  14. ------- atm 54 because no slot
  15. Number of Vars Stored = 54 <Integer>
  16. Check Sum Char = "" <String>
  17. Encrypted String = "" <String>
  18. Encryption Key = "" <String>
  19. Check Sum Int = 0 <Integer>
  20. Pre-encryption String = "" <String>
  21. Final String = "" <String>
  22. Encryption Numbers = "" <String[95]>
  23. Temp Strings = "" <String[60]>
  24. Encryption Key Int = (Random integer between 0 and (Number of Encryption Sets - 1)) <Integer>
  25. Conversion Integer = 0 <Integer>
  26. Conversion Divided Int = 0 <Integer>
  27. Conversion Remainder = 0 <Integer>
  28. Power Of Current = 0 <Integer>
  29. Power Of Max Number = 0 <Integer>
  30. Hero Abilities = 0 <Integer[7]>
  31. Actions
  32. Variable - Set Saving Player = Player Index
  33. General - If (Conditions) then do (Actions) else do (Actions)
  34. If
  35. Or
  36. Conditions
  37. Player Heroes[Saving Player] == No Unit
  38. (Status of player Saving Player) != Playing
  39. Then
  40. General - Skip remaining actions
  41. Else
  42. Variable - Set Encryption Key = Character Types[Encryption Key Int]
  43. General - Pick each integer from 1 to Number of Characters, and do (Actions)
  44. Actions
  45. Variable - Set Encryption Numbers[((Picked integer) - 1)] = (Substring(Encryption Set[Encryption Key Int], (Picked integer), (Picked integer)))
  46. ------- -----------------------------------------------------------------------------------------------
  47. ------- Hero Class:
  48. ------- -----------------------------------------------------------------------------------------------
  49. General - Pick each integer from 0 to (Number of Heroes - 1), and do (Actions)
  50. Actions
  51. General - If (Conditions) then do (Actions) else do (Actions)
  52. If
  53. Player Heroes Types[Saving Player] == Hero Types[(Picked integer)]
  54. Then
  55. Variable - Set Conversion Integer = (Picked integer)
  56. Else
  57. ------- Convert to non-decimal: (Small since only 1 slot this round)
  58. Variable - Set Temp Strings[1] = Character Types[Conversion Integer]
  59. ------- -----------------------------------------------------------------------------------------------
  60. ------- Hero Exp:
  61. ------- -----------------------------------------------------------------------------------------------
  62. Variable - Set Conversion Integer = (Integer((Total experience of Player Heroes[Saving Player])))
  63. General - Pick each integer from 1 to Slots - Hero Exp, and do (Actions)
  64. Actions
  65. Variable - Set Power Of Max Number = 1
  66. General - Repeat (Actions) (Slots - Hero Exp - (Picked integer)) times
  67. Actions
  68. Variable - Set Power Of Max Number = (Power Of Max Number * Number of Characters)
  69. General - If (Conditions) then do (Actions) else do (Actions)
  70. If
  71. (Slots - Hero Exp - (Picked integer)) >= 1
  72. Then
  73. Variable - Set Conversion Divided Int = (Conversion Integer / Power Of Max Number)
  74. Variable - Set Conversion Remainder = (Conversion Integer - (Conversion Divided Int * Power Of Max Number))
  75. Variable - Set Temp Strings[2] = (Temp Strings[2] + Character Types[Conversion Divided Int])
  76. Else
  77. Variable - Set Temp Strings[2] = (Temp Strings[2] + Character Types[Conversion Remainder])
  78. Variable - Set Conversion Integer = Conversion Remainder
  79. ------- -----------------------------------------------------------------------------------------------
  80. ------- Hero Ability Types (7 abils):
  81. ------- -----------------------------------------------------------------------------------------------
  82. Variable - Set Temp Start Loop Var = 1
  83. General - For each integer Temp Loop Var from 1 to 7 with increment 1, do (Actions)
  84. Actions
  85. Variable - Set Conversion Integer = 0
  86. General - Pick each integer from Temp Start Loop Var to Number of Abilities, and do (Actions)
  87. Actions
  88. General - If (Conditions) then do (Actions) else do (Actions)
  89. If
  90. (Current level for ability Ability Types[(Picked integer)] on Player Heroes[Saving Player]) >= 0
  91. (Ability Types[(Picked integer)] is Enabled for Player Heroes[Saving Player]) == true
  92. Then
  93. Variable - Set Conversion Integer = (Picked integer)
  94. Variable - Set Temp Start Loop Var = ((Picked integer) + 1)
  95. Variable - Set Hero Abilities[Temp Loop Var] = (Picked integer)
  96. General - Break
  97. Else
  98. ------- Convert to non-decimal: (Small since only 1 slot this round)
  99. Variable - Set Temp Strings[(Temp Loop Var + 2)] = Character Types[Conversion Integer]
  100. ------- -----------------------------------------------------------------------------------------------
  101. ------- Hero Ability Levels (7 abils):
  102. ------- -----------------------------------------------------------------------------------------------
  103. General - For each integer Temp Loop Var from 1 to 7 with increment 1, do (Actions)
  104. Actions
  105. Variable - Set Conversion Integer = (Current level for ability Ability Types[Hero Abilities[Temp Loop Var]] on Player Heroes[Saving Player])
  106. General - If (Conditions) then do (Actions) else do (Actions)
  107. If
  108. (Ability Types[Hero Abilities[Temp Loop Var]] is Enabled for Player Heroes[Saving Player]) == true
  109. Then
  110. ------- Add 1 because current level starts from 0
  111. Variable - Modify Conversion Integer: + 1
  112. Else
  113. ------- Convert to non-decimal: (Small since only 1 slot this round)
  114. Variable - Set Temp Strings[(Temp Loop Var + 9)] = Character Types[Conversion Integer]
  115. ------- -----------------------------------------------------------------------------------------------
  116. ------- Hero Items (36 item slots):
  117. ------- -----------------------------------------------------------------------------------------------
  118. General - For each integer Temp Loop Var from 1 to 36 with increment 1, do (Actions)
  119. Actions
  120. Variable - Set Conversion Integer = 0
  121. General - Pick each integer from 1 to Number of Items, and do (Actions)
  122. Actions
  123. General - If (Conditions) then do (Actions) else do (Actions)
  124. If
  125. (Unit type of (Item carried by Player Heroes[Saving Player] in Temp Loop Var)) == Item Types[(Picked integer)]
  126. Then
  127. Variable - Set Conversion Integer = (Picked integer)
  128. Else
  129. General - Pick each integer from 1 to Slots - Each Hero Item, and do (Actions)
  130. Actions
  131. Variable - Set Power Of Max Number = 1
  132. General - Repeat (Actions) (Slots - Each Hero Item - (Picked integer)) times
  133. Actions
  134. Variable - Set Power Of Max Number = (Power Of Max Number * Number of Characters)
  135. General - If (Conditions) then do (Actions) else do (Actions)
  136. If
  137. (Slots - Each Hero Item - (Picked integer)) >= 1
  138. Then
  139. Variable - Set Conversion Divided Int = (Conversion Integer / Power Of Max Number)
  140. Variable - Set Conversion Remainder = (Conversion Integer - (Conversion Divided Int * Power Of Max Number))
  141. Variable - Set Temp Strings[(Temp Loop Var + 16)] = (Temp Strings[(Temp Loop Var + 16)] + Character Types[Conversion Divided Int])
  142. Else
  143. Variable - Set Temp Strings[(Temp Loop Var + 16)] = (Temp Strings[(Temp Loop Var + 16)] + Character Types[Conversion Remainder])
  144. Variable - Set Conversion Integer = Conversion Remainder
  145. ------- -----------------------------------------------------------------------------------------------
  146. ------- Gold:
  147. ------- -----------------------------------------------------------------------------------------------
  148. Variable - Set Conversion Integer = (Player Saving Player Minerals)
  149. General - Pick each integer from 1 to Slots - Gold, and do (Actions)
  150. Actions
  151. Variable - Set Power Of Max Number = 1
  152. General - Repeat (Actions) (Slots - Gold - (Picked integer)) times
  153. Actions
  154. Variable - Set Power Of Max Number = (Power Of Max Number * Number of Characters)
  155. General - If (Conditions) then do (Actions) else do (Actions)
  156. If
  157. (Slots - Gold - (Picked integer)) >= 1
  158. Then
  159. Variable - Set Conversion Divided Int = (Conversion Integer / Power Of Max Number)
  160. Variable - Set Conversion Remainder = (Conversion Integer - (Conversion Divided Int * Power Of Max Number))
  161. Variable - Set Temp Strings[53] = (Temp Strings[53] + Character Types[Conversion Divided Int])
  162. Else
  163. Variable - Set Temp Strings[53] = (Temp Strings[53] + Character Types[Conversion Remainder])
  164. Variable - Set Conversion Integer = Conversion Remainder
  165. ------- -----------------------------------------------------------------------------------------------
  166. ------- Silver:
  167. ------- -----------------------------------------------------------------------------------------------
  168. Variable - Set Conversion Integer = (Player Saving Player Vespene)
  169. General - Pick each integer from 1 to Slots - Silver, and do (Actions)
  170. Actions
  171. Variable - Set Power Of Max Number = 1
  172. General - Repeat (Actions) (Slots - Silver - (Picked integer)) times
  173. Actions
  174. Variable - Set Power Of Max Number = (Power Of Max Number * Number of Characters)
  175. General - If (Conditions) then do (Actions) else do (Actions)
  176. If
  177. (Slots - Silver - (Picked integer)) >= 1
  178. Then
  179. Variable - Set Conversion Divided Int = (Conversion Integer / Power Of Max Number)
  180. Variable - Set Conversion Remainder = (Conversion Integer - (Conversion Divided Int * Power Of Max Number))
  181. Variable - Set Temp Strings[54] = (Temp Strings[54] + Character Types[Conversion Divided Int])
  182. Else
  183. Variable - Set Temp Strings[54] = (Temp Strings[54] + Character Types[Conversion Remainder])
  184. Variable - Set Conversion Integer = Conversion Remainder
  185. ------- -----------------------------------------------------------------------------------------------
  186. ------- Final Concat:
  187. ------- -----------------------------------------------------------------------------------------------
  188. ------- 54 for now
  189. General - Pick each integer from 1 to Number of Vars Stored, and do (Actions)
  190. Actions
  191. Variable - Set Pre-encryption String = (Pre-encryption String + Temp Strings[(Picked integer)])
  192. ------- -----------------------------------------------------------------------------------------------
  193. ------- Checksum:
  194. ------- -----------------------------------------------------------------------------------------------
  195. Variable - Set Check Sum Int = 0
  196. General - Pick each integer from 1 to (Length of Pre-encryption String), and do (Actions)
  197. Actions
  198. General - For each integer Temp Loop Var from 0 to (Number of Characters - 1) with increment 1, do (Actions)
  199. Actions
  200. General - If (Conditions) then do (Actions) else do (Actions)
  201. If
  202. (Substring(Pre-encryption String, (Picked integer), (Picked integer))) == Character Types[Temp Loop Var]
  203. Then
  204. Variable - Set Check Sum Int = (Check Sum Int + Temp Loop Var)
  205. Else
  206. Variable - Set Conversion Integer = Check Sum Int
  207. Variable - Set Conversion Divided Int = (Conversion Integer / Number of Characters)
  208. Variable - Set Conversion Remainder = (Conversion Integer - (Conversion Divided Int * Number of Characters))
  209. Variable - Set Check Sum Char = Character Types[Conversion Remainder]
  210. Variable - Set Pre-encryption String = (Pre-encryption String + Check Sum Char)
  211. ------- -----------------------------------------------------------------------------------------------
  212. ------- Encryption:
  213. ------- -----------------------------------------------------------------------------------------------
  214. General - Pick each integer from 1 to (Length of Pre-encryption String), and do (Actions)
  215. Actions
  216. General - For each integer Temp Loop Var from 0 to (Number of Characters - 1) with increment 1, do (Actions)
  217. Actions
  218. General - If (Conditions) then do (Actions) else do (Actions)
  219. If
  220. (Substring(Pre-encryption String, (Picked integer), (Picked integer))) == Character Types[Temp Loop Var]
  221. Then
  222. Variable - Set Encrypted String = (Encrypted String + Encryption Numbers[Temp Loop Var])
  223. Else
  224. ------- -----------------------------------------------------------------------------------------------
  225. Variable - Set Final String = (Encryption Key + Encrypted String)
  226. ------- -----------------------------------------------------------------------------------------------
  227. ------- Final mangling of string:
  228. ------- -----------------------------------------------------------------------------------------------
  229. Variable - Set Temp Strings[1] = (Substring(Final String, 1, 6))
  230. Variable - Set Temp Strings[2] = Character Types[(Random integer between 90 and 92)]
  231. Variable - Set Temp Strings[3] = (Substring(Final String, 7, 15))
  232. Variable - Set Temp Strings[4] = Character Types[(Random integer between 16 and 18)]
  233. Variable - Set Temp Strings[5] = (Substring(Final String, 16, 24))
  234. Variable - Set Temp Strings[6] = Character Types[(Random integer between 29 and 31)]
  235. Variable - Set Temp Strings[7] = (Substring(Final String, 25, 30))
  236. Variable - Set Temp Strings[8] = Character Types[(Random integer between 35 and 37)]
  237. Variable - Set Temp Strings[9] = (Substring(Final String, 31, 36))
  238. Variable - Set Temp Strings[10] = Character Types[(Random integer between 44 and 46)]
  239. Variable - Set Temp Strings[11] = (Substring(Final String, 37, 45))
  240. Variable - Set Temp Strings[12] = Character Types[(Random integer between 3 and 5)]
  241. Variable - Set Temp Strings[13] = (Substring(Final String, 46, 54))
  242. Variable - Set Temp Strings[14] = Character Types[(Random integer between 14 and 16)]
  243. Variable - Set Temp Strings[15] = (Substring(Final String, 55, 61))
  244. Variable - Set Temp Strings[16] = Character Types[(Random integer between 11 and 13)]
  245. Variable - Set Temp Strings[17] = (Substring(Final String, 62, 72))
  246. Variable - Set Temp Strings[18] = Character Types[(Random integer between 61 and 63)]
  247. Variable - Set Temp Strings[19] = (Substring(Final String, 73, 80))
  248. Variable - Set Temp Strings[20] = Character Types[(Random integer between 81 and 83)]
  249. Variable - Set Temp Strings[21] = (Substring(Final String, 81, 90))
  250. Variable - Set Temp Strings[22] = Character Types[(Random integer between 70 and 72)]
  251. Variable - Set Temp Strings[23] = (Substring(Final String, 91, (Length of Final String)))
  252. Variable - Set Temp Strings[24] = Character Types[(Random integer between 52 and 54)]
  253. Variable - Set Temp Strings[25] = Character Types[(Random integer between 0 and 2)]
  254. Variable - Set Final String = ""
  255. General - Pick each integer from 1 to 25, and do (Actions)
  256. Actions
  257. Variable - Set Final String = (Final String + Temp Strings[(Picked integer)])
  258. ------- -----------------------------------------------------------------------------------------------
  259. Bank - Open bank "Hero1" for player Saving Player
  260. General - If (Conditions) then do (Actions) else do (Actions)
  261. If
  262. Player Slot Choice[Saving Player] == 0
  263. Then
  264. Bank - Store string Final String as "X" of section "IO" in bank (Last opened bank)
  265. Else
  266. Bank - Store string Final String as "Y" of section "IO" in bank (Last opened bank)
  267. Bank - Save bank (Last opened bank)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement