Advertisement
Guest User

Untitled

a guest
Dec 12th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.53 KB | None | 0 0
  1. {$CLEO}
  2. 0000:
  3.  
  4. :ZOMBIES
  5. thread 'ZOMBIES'
  6. 0@ = 25 // zombie limit
  7. 1@ = 3000 // timer limit
  8. 0085: 2@ = 0@
  9. 000A: 2@ += 1
  10. 0012: 2@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
  11. 0AC8: 15@ = allocate_memory_size 2@
  12. 2@ = 0 // zombie count
  13. 16@ = 0 // reset timer
  14. Model.Load(#BRASSKNUCKLE)
  15. Model.Load(#SCREWDRIVER)
  16. Model.Load(#KNIFECUR)
  17. Model.Load(#MACHETE)
  18. 023C: load_special_actor 1 'Z1'
  19. 023C: load_special_actor 2 'Z2'
  20. 023C: load_special_actor 3 'Z3'
  21. 023C: load_special_actor 4 'Z4'
  22. 023C: load_special_actor 5 'Z5'
  23. 023C: load_special_actor 6 'Z6'
  24. 023C: load_special_actor 7 'Z7'
  25. 023C: load_special_actor 8 'Z8'
  26. 023C: load_special_actor 9 'Z9'
  27. 023C: load_special_actor 10 'Z10'
  28. 023C: load_special_actor 11 'Z11'
  29. 023C: load_special_actor 12 'Z12'
  30. 038B: load_requested_models
  31. 01F0: set_max_wanted_level_to 0
  32. 0004: $ZOMBIESCRIPT = 1
  33.  
  34. :ZOMBIES_CYCLE_1
  35. wait 0
  36. 0038: $ZOMBIESCRIPT == 1
  37. jf @ZOMBIES_DESTROY
  38. Player.Defined($PLAYER_CHAR)
  39. jf @ZOMBIES_CYCLE_1
  40. 0AD1: show_formatted_text_highpriority "%d" time 1000 2@
  41. if and
  42. 001D: 16@ > 1@
  43. 001D: 0@ > 2@
  44. jf @ZOMBIES_CYCLE_2
  45. 0AB1: call_scm_func @ZOMBIES_SPAWNACTOR 2 15@ 2@
  46. 000A: 2@ += 1 // + 1 zombie
  47. 16@ = 0 // reset timer
  48.  
  49. :ZOMBIES_CYCLE_2
  50. 0AB1: call_scm_func @ZOMBIES_RESPAWNACTOR 2 15@ 2@
  51. jump @ZOMBIES_CYCLE_1
  52.  
  53. :ZOMBIES_SPAWNACTOR
  54. 0AB1: call_scm_func @ZOMBIES_SPAWN 1 2@ 2@
  55. 0012: 1@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
  56. 005A: 0@ += 1@
  57. 0A8C: write_memory 0@ size 4 value 2@ virtual_protect 1 // write actor's handle
  58. 0AB2: ret 0
  59.  
  60. :ZOMBIES_RESPAWNACTOR
  61. 2@ = 0
  62.  
  63. :ZOMBIES_RESPAWNACTOR_2
  64. 001D: 1@ > 2@
  65. jf @ZOMBIES_RESPAWNACTOR_RETURN
  66. 0085: 3@ = 2@
  67. 0085: 4@ = 0@
  68. 0012: 3@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
  69. 005A: 4@ += 3@
  70. 0A8D: 3@ = read_memory 4@ size 4 virtual_protect 1 // read actor's handle
  71. 000A: 2@ += 1
  72. 04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0.0 50.0 0.0
  73. 04C4: create_coordinate 8@ 9@ 10@ from_actor $PLAYER_ACTOR offset 0.0 30.0 0.0
  74. 056D: actor 3@ defined
  75. jf @ZOMBIES_RESPAWNACTOR_7
  76. if or
  77. 00FE: actor 3@ in_sphere 0 near_point 5@ 6@ 7@ radius 100.0 100.0 100.0
  78. 00FE: actor 3@ in_sphere 0 near_point 8@ 9@ 10@ radius 80.0 80.0 80.0
  79. jf @ZOMBIES_RESPAWNACTOR_3
  80. if and
  81. 8039: NOT 3@ == -1
  82. 8118: NOT actor 3@ dead
  83. jf @ZOMBIES_RESPAWNACTOR_3
  84. 000A: 4@ += 0x08 // personal attack trigger
  85. 0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1 // read actor's personal attack trigger
  86. 0104: actor $PLAYER_ACTOR near_actor 3@ radius 3.0 3.0 3.0 sphere 0
  87. jf @ZOMBIES_RESPAWNACTOR_2A
  88. 00DF: actor $PLAYER_ACTOR driving
  89. jf @ZOMBIES_RESPAWNACTOR_2B
  90. 03C1: 6@ = player $PLAYER_CHAR car_no_save
  91. 0A97: 7@ = car 6@ struct
  92. 000A: 7@ += 0x2AB // left front door damage/physical state
  93. 0A8D: 7@ = read_memory 7@ size 1 virtual_protect 1
  94. if and
  95. 847A: NOT actor $PLAYER_ACTOR driving_a_motorbike
  96. 84A8: NOT player $PLAYER_CHAR driving_boat
  97. 8039: NOT 7@ == 3 // integer values
  98. jf @ZOMBIES_RESPAWNACTOR_2B
  99. 803B: NOT 5@ == 6@
  100. jf @ZOMBIES_RESPAWNACTOR_2C
  101. 0A8C: write_memory 4@ size 4 value 6@ virtual_protect 1 // write actor's personal attack trigger
  102. 011C: actor 3@ clear_objective
  103. 01D9: actor 3@ destroy_car 6@
  104. 04C4: create_coordinate 5@ 6@ 7@ from_actor 3@ offset 0.0 0.0 0.5
  105. 0437: scatter_particle 15 0.3 at 5@ 6@ 7@ 0.0 0.0 0.1
  106. jump @ZOMBIES_RESPAWNACTOR_2C
  107.  
  108. :ZOMBIES_RESPAWNACTOR_2A
  109. 0019: 5@ > 0
  110. jf @ZOMBIES_RESPAWNACTOR_2
  111. 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // write actor's personal attack trigger
  112. 01C9: actor 3@ kill_actor $PLAYER_ACTOR
  113. jump @ZOMBIES_RESPAWNACTOR_2
  114.  
  115. :ZOMBIES_RESPAWNACTOR_2B
  116. 0019: 5@ > 0
  117. jf @ZOMBIES_RESPAWNACTOR_2C
  118. 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // write actor's personal attack trigger
  119. 01C9: actor 3@ kill_actor $PLAYER_ACTOR
  120.  
  121. :ZOMBIES_RESPAWNACTOR_2C
  122. 0209: 5@ = random_int_in_ranges 1 15
  123. 0039: 5@ == 3
  124. jf @ZOMBIES_RESPAWNACTOR_2
  125. 0A96: 5@ = actor 3@ struct
  126. 0085: 6@ = 5@
  127. 000A: 6@ += 0x244 // current status
  128. 0A8D: 6@ = read_memory 6@ size 4 virtual_protect 1
  129. 001B: 0x37 > 6@
  130. jf @ZOMBIES_RESPAWNACTOR_2
  131. 0A96: 6@ = actor $PLAYER_ACTOR struct
  132. 0AA6: call_method 0x52D1C0 struct 5@ num_params 1 pop 1 6@
  133. jump @ZOMBIES_RESPAWNACTOR_2
  134.  
  135. :ZOMBIES_RESPAWNACTOR_3
  136. 8039: NOT 3@ == -1
  137. jf @ZOMBIES_RESPAWNACTOR_7
  138. 0118: actor 3@ dead
  139. jf @ZOMBIES_RESPAWNACTOR_4
  140. 048F: actor 3@ remove_weapons
  141. 0019: 1@ > 10 // originally 10
  142. jf @ZOMBIES_RESPAWNACTOR_5
  143. 000A: 4@ += 0x04 // personal respawn timer
  144. 0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1 // read actor's personal respawn timer
  145. 01BD: 6@ = current_time_in_ms
  146. 0019: 5@ > 0
  147. jf @ZOMBIES_RESPAWNACTOR_6
  148. 0062: 6@ -= 5@
  149. 0019: 6@ > 5000 // if actor dead more than 5000 ms
  150. jf @ZOMBIES_RESPAWNACTOR_2
  151. 000E: 4@ -= 0x04 // back to actor's handle
  152.  
  153. :ZOMBIES_RESPAWNACTOR_4
  154. 034F: destroy_actor_with_fade 3@
  155. jump @ZOMBIES_RESPAWNACTOR_7
  156.  
  157. :ZOMBIES_RESPAWNACTOR_5
  158. 01C2: remove_references_to_actor 3@
  159. jump @ZOMBIES_RESPAWNACTOR_7
  160.  
  161. :ZOMBIES_RESPAWNACTOR_6
  162. 0A8C: write_memory 4@ size 4 value 6@ virtual_protect 1 // write actor's personal respawn timer
  163. jump @ZOMBIES_RESPAWNACTOR_2
  164.  
  165. :ZOMBIES_RESPAWNACTOR_7
  166. 0AB1: call_scm_func @ZOMBIES_SPAWN 1 2@ 3@
  167. 0A8C: write_memory 4@ size 4 value 3@ virtual_protect 1 // write actor's handle
  168. 000A: 4@ += 0x04 // personal respawn timer
  169. 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // reset actor's personal respawn timer
  170. 000A: 4@ += 0x04 // personal attack trigger
  171. 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // reset actor's personal attack trigger
  172. jump @ZOMBIES_RESPAWNACTOR_2
  173.  
  174. :ZOMBIES_RESPAWNACTOR_RETURN
  175. 0AB2: ret 0
  176.  
  177. :ZOMBIES_SPAWN
  178. 0AB1: call_scm_func @ZOMBIES_GETCOORDSEXCEPTRADIUS 0 1@ 2@ 3@
  179. 0006: 0@ = -1
  180. if and
  181. 8043: NOT 1@ == 0.0
  182. 8043: NOT 2@ == 0.0
  183. 8043: NOT 3@ == 0.0
  184. jf @ZOMBIES_SPAWN_RETURN
  185. 0209: 4@ = random_int_in_ranges 109 121
  186. 0@ = Actor.Create(Player2, 4@, 1@, 2@, 3@)
  187. //0376: 0@ = create_random_actor 1@ 2@ 3@
  188. 020F: actor 0@ look_at_player $PLAYER_CHAR
  189. Actor.Health(0@) = 300
  190. 0489: set_actor 0@ muted 1
  191. 0332: set_actor 0@ bleeding_to 1
  192. 03FE: set_actor 0@ money 0
  193. 0245: set_actor 0@ walk_style_to 50
  194. 01D2: actor 0@ follow_player $PLAYER_CHAR
  195. 01C9: actor 0@ kill_actor $PLAYER_ACTOR
  196. 0319: set_actor 0@ running 1
  197. 0209: 4@ = random_int_in_ranges 1 5
  198. 0039: 4@ == 1
  199. jf @ZOMBIES_SPAWN_W2
  200. //0006: 4@ = 1 // BrassKnuckle
  201. jump @ZOMBIES_SPAWN_WEAPON
  202.  
  203. :ZOMBIES_SPAWN_W2
  204. 0039: 4@ == 2
  205. jf @ZOMBIES_SPAWN_W3
  206. //0006: 4@ = 2 // ScrewDriver
  207. jump @ZOMBIES_SPAWN_WEAPON
  208.  
  209. :ZOMBIES_SPAWN_W3
  210. 0039: 4@ == 3
  211. jf @ZOMBIES_SPAWN_W4
  212. 0006: 4@ = 5 // Knife
  213. jump @ZOMBIES_SPAWN_WEAPON
  214.  
  215. :ZOMBIES_SPAWN_W4
  216. 0006: 4@ = 9 // Machete
  217.  
  218. :ZOMBIES_SPAWN_WEAPON
  219. 01B2: give_actor 0@ weapon 4@ ammo 1
  220. 0A96: 4@ = actor 0@ struct
  221. 0AA6: call_method 0x4FFE40 struct 4@ num_params 1 pop 1 246
  222.  
  223. :ZOMBIES_SPAWN_RETURN
  224. 0AB2: ret 1 0@
  225.  
  226. :ZOMBIES_GETCOORDSEXCEPTRADIUS
  227. 0209: 0@ = random_int_in_ranges 1 5
  228. 0039: 0@ == 1 // north
  229. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_SOUTH
  230. 0007: 1@ = 0.0
  231. 0007: 2@ = 110.0
  232. jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
  233.  
  234. :ZOMBIES_GETCOORDSEXCEPTRADIUS_SOUTH
  235. 0039: 0@ == 2 // south
  236. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_WEST
  237. 0007: 1@ = 0.0
  238. 0007: 2@ = -40.0
  239. jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
  240.  
  241. :ZOMBIES_GETCOORDSEXCEPTRADIUS_WEST
  242. 0039: 0@ == 3 // west
  243. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_EAST
  244. 0007: 1@ = -60.0
  245. 0007: 2@ = 0.0
  246. jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
  247.  
  248. :ZOMBIES_GETCOORDSEXCEPTRADIUS_EAST
  249. 0007: 1@ = 60.0
  250. 0007: 2@ = 0.0
  251.  
  252. :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
  253. 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 1@ 2@ 10.0
  254. 0208: 4@ = random_float -35.0 35.0
  255. 0208: 5@ = random_float -35.01 35.01
  256. 005B: 1@ += 4@
  257. 005B: 2@ += 5@
  258. 02CE: 3@ = ground_z_at 1@ 2@ 3@
  259. 0209: 7@ = random_int_in_ranges 1 8
  260. 0039: 7@ == 1 // car path
  261. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_2
  262. 02C1: set 4@ 5@ 6@ to_car_path_coords_closest_to 1@ 2@ 3@
  263. jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_3
  264.  
  265. :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_2
  266. 02C0: store_to 4@ 5@ 6@ ped_path_coords_closest_to 1@ 2@ 3@
  267.  
  268. :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_3
  269. 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 50.0 0.0
  270. 0509: 7@ = distance_between_point 4@ 5@ and_point 1@ 2@
  271. 0021: 7@ > 70.0
  272. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_4
  273. 000B: 6@ += 2.0
  274. 02CE: 6@ = ground_z_at 4@ 5@ 6@
  275. 0AE1: 7@ = random_actor_near_point 4@ 5@ 6@ in_radius 2.0 find_next 0 pass_deads 1
  276. jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_5
  277.  
  278. :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_4
  279. 0007: 4@ = 0.0
  280. 0007: 5@ = 0.0
  281. 0007: 6@ = 0.0
  282.  
  283. :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_5
  284. 0AB2: ret 3 4@ 5@ 6@
  285.  
  286. :ZOMBIES_DESTROY
  287. 3@ = 0
  288.  
  289. :ZOMBIES_DESTROY_2
  290. 001D: 2@ > 3@
  291. jf @ZOMBIES_DESTROY_3
  292. 0085: 4@ = 3@
  293. 0085: 5@ = 15@
  294. 0012: 4@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
  295. 005A: 5@ += 4@
  296. 0A8D: 4@ = read_memory 5@ size 4 virtual_protect 1 // read actor's handle
  297. 000A: 3@ += 1
  298. if and
  299. 8039: NOT 4@ == -1
  300. 056D: actor 4@ defined
  301. jf @ZOMBIES_DESTROY_2
  302. 034F: destroy_actor_with_fade 4@
  303. jump @ZOMBIES_DESTROY_2
  304.  
  305. :ZOMBIES_DESTROY_3
  306. 0249: release_model #BRASSKNUCKLE
  307. 0249: release_model #SCREWDRIVER
  308. 0249: release_model #KNIFECUR
  309. 0249: release_model #MACHETE
  310. 0296: unload_special_actor 1
  311. 0296: unload_special_actor 2
  312. 0296: unload_special_actor 3
  313. 0296: unload_special_actor 4
  314. 0296: unload_special_actor 5
  315. 0296: unload_special_actor 6
  316. 0296: unload_special_actor 7
  317. 0296: unload_special_actor 8
  318. 0296: unload_special_actor 9
  319. 0296: unload_special_actor 10
  320. 0296: unload_special_actor 11
  321. 0296: unload_special_actor 12
  322. 0AC9: free_allocated_memory 15@
  323. end_thread
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement