Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$CLEO}
- 0000:
- :ZOMBIES
- thread 'ZOMBIES'
- 0@ = 25 // zombie limit
- 1@ = 3000 // timer limit
- 0085: 2@ = 0@
- 000A: 2@ += 1
- 0012: 2@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
- 0AC8: 15@ = allocate_memory_size 2@
- 2@ = 0 // zombie count
- 16@ = 0 // reset timer
- Model.Load(#BRASSKNUCKLE)
- Model.Load(#SCREWDRIVER)
- Model.Load(#KNIFECUR)
- Model.Load(#MACHETE)
- 023C: load_special_actor 1 'Z1'
- 023C: load_special_actor 2 'Z2'
- 023C: load_special_actor 3 'Z3'
- 023C: load_special_actor 4 'Z4'
- 023C: load_special_actor 5 'Z5'
- 023C: load_special_actor 6 'Z6'
- 023C: load_special_actor 7 'Z7'
- 023C: load_special_actor 8 'Z8'
- 023C: load_special_actor 9 'Z9'
- 023C: load_special_actor 10 'Z10'
- 023C: load_special_actor 11 'Z11'
- 023C: load_special_actor 12 'Z12'
- 038B: load_requested_models
- 01F0: set_max_wanted_level_to 0
- 0004: $ZOMBIESCRIPT = 1
- :ZOMBIES_CYCLE_1
- wait 0
- 0038: $ZOMBIESCRIPT == 1
- jf @ZOMBIES_DESTROY
- Player.Defined($PLAYER_CHAR)
- jf @ZOMBIES_CYCLE_1
- 0AD1: show_formatted_text_highpriority "%d" time 1000 2@
- if and
- 001D: 16@ > 1@
- 001D: 0@ > 2@
- jf @ZOMBIES_CYCLE_2
- 0AB1: call_scm_func @ZOMBIES_SPAWNACTOR 2 15@ 2@
- 000A: 2@ += 1 // + 1 zombie
- 16@ = 0 // reset timer
- :ZOMBIES_CYCLE_2
- 0AB1: call_scm_func @ZOMBIES_RESPAWNACTOR 2 15@ 2@
- jump @ZOMBIES_CYCLE_1
- :ZOMBIES_SPAWNACTOR
- 0AB1: call_scm_func @ZOMBIES_SPAWN 1 2@ 2@
- 0012: 1@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
- 005A: 0@ += 1@
- 0A8C: write_memory 0@ size 4 value 2@ virtual_protect 1 // write actor's handle
- 0AB2: ret 0
- :ZOMBIES_RESPAWNACTOR
- 2@ = 0
- :ZOMBIES_RESPAWNACTOR_2
- 001D: 1@ > 2@
- jf @ZOMBIES_RESPAWNACTOR_RETURN
- 0085: 3@ = 2@
- 0085: 4@ = 0@
- 0012: 3@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
- 005A: 4@ += 3@
- 0A8D: 3@ = read_memory 4@ size 4 virtual_protect 1 // read actor's handle
- 000A: 2@ += 1
- 04C4: create_coordinate 5@ 6@ 7@ from_actor $PLAYER_ACTOR offset 0.0 50.0 0.0
- 04C4: create_coordinate 8@ 9@ 10@ from_actor $PLAYER_ACTOR offset 0.0 30.0 0.0
- 056D: actor 3@ defined
- jf @ZOMBIES_RESPAWNACTOR_7
- if or
- 00FE: actor 3@ in_sphere 0 near_point 5@ 6@ 7@ radius 100.0 100.0 100.0
- 00FE: actor 3@ in_sphere 0 near_point 8@ 9@ 10@ radius 80.0 80.0 80.0
- jf @ZOMBIES_RESPAWNACTOR_3
- if and
- 8039: NOT 3@ == -1
- 8118: NOT actor 3@ dead
- jf @ZOMBIES_RESPAWNACTOR_3
- 000A: 4@ += 0x08 // personal attack trigger
- 0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1 // read actor's personal attack trigger
- 0104: actor $PLAYER_ACTOR near_actor 3@ radius 3.0 3.0 3.0 sphere 0
- jf @ZOMBIES_RESPAWNACTOR_2A
- 00DF: actor $PLAYER_ACTOR driving
- jf @ZOMBIES_RESPAWNACTOR_2B
- 03C1: 6@ = player $PLAYER_CHAR car_no_save
- 0A97: 7@ = car 6@ struct
- 000A: 7@ += 0x2AB // left front door damage/physical state
- 0A8D: 7@ = read_memory 7@ size 1 virtual_protect 1
- if and
- 847A: NOT actor $PLAYER_ACTOR driving_a_motorbike
- 84A8: NOT player $PLAYER_CHAR driving_boat
- 8039: NOT 7@ == 3 // integer values
- jf @ZOMBIES_RESPAWNACTOR_2B
- 803B: NOT 5@ == 6@
- jf @ZOMBIES_RESPAWNACTOR_2C
- 0A8C: write_memory 4@ size 4 value 6@ virtual_protect 1 // write actor's personal attack trigger
- 011C: actor 3@ clear_objective
- 01D9: actor 3@ destroy_car 6@
- 04C4: create_coordinate 5@ 6@ 7@ from_actor 3@ offset 0.0 0.0 0.5
- 0437: scatter_particle 15 0.3 at 5@ 6@ 7@ 0.0 0.0 0.1
- jump @ZOMBIES_RESPAWNACTOR_2C
- :ZOMBIES_RESPAWNACTOR_2A
- 0019: 5@ > 0
- jf @ZOMBIES_RESPAWNACTOR_2
- 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // write actor's personal attack trigger
- 01C9: actor 3@ kill_actor $PLAYER_ACTOR
- jump @ZOMBIES_RESPAWNACTOR_2
- :ZOMBIES_RESPAWNACTOR_2B
- 0019: 5@ > 0
- jf @ZOMBIES_RESPAWNACTOR_2C
- 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // write actor's personal attack trigger
- 01C9: actor 3@ kill_actor $PLAYER_ACTOR
- :ZOMBIES_RESPAWNACTOR_2C
- 0209: 5@ = random_int_in_ranges 1 15
- 0039: 5@ == 3
- jf @ZOMBIES_RESPAWNACTOR_2
- 0A96: 5@ = actor 3@ struct
- 0085: 6@ = 5@
- 000A: 6@ += 0x244 // current status
- 0A8D: 6@ = read_memory 6@ size 4 virtual_protect 1
- 001B: 0x37 > 6@
- jf @ZOMBIES_RESPAWNACTOR_2
- 0A96: 6@ = actor $PLAYER_ACTOR struct
- 0AA6: call_method 0x52D1C0 struct 5@ num_params 1 pop 1 6@
- jump @ZOMBIES_RESPAWNACTOR_2
- :ZOMBIES_RESPAWNACTOR_3
- 8039: NOT 3@ == -1
- jf @ZOMBIES_RESPAWNACTOR_7
- 0118: actor 3@ dead
- jf @ZOMBIES_RESPAWNACTOR_4
- 048F: actor 3@ remove_weapons
- 0019: 1@ > 10 // originally 10
- jf @ZOMBIES_RESPAWNACTOR_5
- 000A: 4@ += 0x04 // personal respawn timer
- 0A8D: 5@ = read_memory 4@ size 4 virtual_protect 1 // read actor's personal respawn timer
- 01BD: 6@ = current_time_in_ms
- 0019: 5@ > 0
- jf @ZOMBIES_RESPAWNACTOR_6
- 0062: 6@ -= 5@
- 0019: 6@ > 5000 // if actor dead more than 5000 ms
- jf @ZOMBIES_RESPAWNACTOR_2
- 000E: 4@ -= 0x04 // back to actor's handle
- :ZOMBIES_RESPAWNACTOR_4
- 034F: destroy_actor_with_fade 3@
- jump @ZOMBIES_RESPAWNACTOR_7
- :ZOMBIES_RESPAWNACTOR_5
- 01C2: remove_references_to_actor 3@
- jump @ZOMBIES_RESPAWNACTOR_7
- :ZOMBIES_RESPAWNACTOR_6
- 0A8C: write_memory 4@ size 4 value 6@ virtual_protect 1 // write actor's personal respawn timer
- jump @ZOMBIES_RESPAWNACTOR_2
- :ZOMBIES_RESPAWNACTOR_7
- 0AB1: call_scm_func @ZOMBIES_SPAWN 1 2@ 3@
- 0A8C: write_memory 4@ size 4 value 3@ virtual_protect 1 // write actor's handle
- 000A: 4@ += 0x04 // personal respawn timer
- 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // reset actor's personal respawn timer
- 000A: 4@ += 0x04 // personal attack trigger
- 0A8C: write_memory 4@ size 4 value 0 virtual_protect 1 // reset actor's personal attack trigger
- jump @ZOMBIES_RESPAWNACTOR_2
- :ZOMBIES_RESPAWNACTOR_RETURN
- 0AB2: ret 0
- :ZOMBIES_SPAWN
- 0AB1: call_scm_func @ZOMBIES_GETCOORDSEXCEPTRADIUS 0 1@ 2@ 3@
- 0006: 0@ = -1
- if and
- 8043: NOT 1@ == 0.0
- 8043: NOT 2@ == 0.0
- 8043: NOT 3@ == 0.0
- jf @ZOMBIES_SPAWN_RETURN
- 0209: 4@ = random_int_in_ranges 109 121
- 0@ = Actor.Create(Player2, 4@, 1@, 2@, 3@)
- //0376: 0@ = create_random_actor 1@ 2@ 3@
- 020F: actor 0@ look_at_player $PLAYER_CHAR
- Actor.Health(0@) = 300
- 0489: set_actor 0@ muted 1
- 0332: set_actor 0@ bleeding_to 1
- 03FE: set_actor 0@ money 0
- 0245: set_actor 0@ walk_style_to 50
- 01D2: actor 0@ follow_player $PLAYER_CHAR
- 01C9: actor 0@ kill_actor $PLAYER_ACTOR
- 0319: set_actor 0@ running 1
- 0209: 4@ = random_int_in_ranges 1 5
- 0039: 4@ == 1
- jf @ZOMBIES_SPAWN_W2
- //0006: 4@ = 1 // BrassKnuckle
- jump @ZOMBIES_SPAWN_WEAPON
- :ZOMBIES_SPAWN_W2
- 0039: 4@ == 2
- jf @ZOMBIES_SPAWN_W3
- //0006: 4@ = 2 // ScrewDriver
- jump @ZOMBIES_SPAWN_WEAPON
- :ZOMBIES_SPAWN_W3
- 0039: 4@ == 3
- jf @ZOMBIES_SPAWN_W4
- 0006: 4@ = 5 // Knife
- jump @ZOMBIES_SPAWN_WEAPON
- :ZOMBIES_SPAWN_W4
- 0006: 4@ = 9 // Machete
- :ZOMBIES_SPAWN_WEAPON
- 01B2: give_actor 0@ weapon 4@ ammo 1
- 0A96: 4@ = actor 0@ struct
- 0AA6: call_method 0x4FFE40 struct 4@ num_params 1 pop 1 246
- :ZOMBIES_SPAWN_RETURN
- 0AB2: ret 1 0@
- :ZOMBIES_GETCOORDSEXCEPTRADIUS
- 0209: 0@ = random_int_in_ranges 1 5
- 0039: 0@ == 1 // north
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_SOUTH
- 0007: 1@ = 0.0
- 0007: 2@ = 110.0
- jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_SOUTH
- 0039: 0@ == 2 // south
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_WEST
- 0007: 1@ = 0.0
- 0007: 2@ = -40.0
- jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_WEST
- 0039: 0@ == 3 // west
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_EAST
- 0007: 1@ = -60.0
- 0007: 2@ = 0.0
- jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_EAST
- 0007: 1@ = 60.0
- 0007: 2@ = 0.0
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN
- 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 1@ 2@ 10.0
- 0208: 4@ = random_float -35.0 35.0
- 0208: 5@ = random_float -35.01 35.01
- 005B: 1@ += 4@
- 005B: 2@ += 5@
- 02CE: 3@ = ground_z_at 1@ 2@ 3@
- 0209: 7@ = random_int_in_ranges 1 8
- 0039: 7@ == 1 // car path
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_2
- 02C1: set 4@ 5@ 6@ to_car_path_coords_closest_to 1@ 2@ 3@
- jump @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_3
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_2
- 02C0: store_to 4@ 5@ 6@ ped_path_coords_closest_to 1@ 2@ 3@
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_3
- 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 50.0 0.0
- 0509: 7@ = distance_between_point 4@ 5@ and_point 1@ 2@
- 0021: 7@ > 70.0
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_4
- 000B: 6@ += 2.0
- 02CE: 6@ = ground_z_at 4@ 5@ 6@
- 0AE1: 7@ = random_actor_near_point 4@ 5@ 6@ in_radius 2.0 find_next 0 pass_deads 1
- jf @ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_5
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_4
- 0007: 4@ = 0.0
- 0007: 5@ = 0.0
- 0007: 6@ = 0.0
- :ZOMBIES_GETCOORDSEXCEPTRADIUS_RETURN_5
- 0AB2: ret 3 4@ 5@ 6@
- :ZOMBIES_DESTROY
- 3@ = 0
- :ZOMBIES_DESTROY_2
- 001D: 2@ > 3@
- jf @ZOMBIES_DESTROY_3
- 0085: 4@ = 3@
- 0085: 5@ = 15@
- 0012: 4@ *= 0x0C // 12 bytes per actor for handle and personal respawn timer
- 005A: 5@ += 4@
- 0A8D: 4@ = read_memory 5@ size 4 virtual_protect 1 // read actor's handle
- 000A: 3@ += 1
- if and
- 8039: NOT 4@ == -1
- 056D: actor 4@ defined
- jf @ZOMBIES_DESTROY_2
- 034F: destroy_actor_with_fade 4@
- jump @ZOMBIES_DESTROY_2
- :ZOMBIES_DESTROY_3
- 0249: release_model #BRASSKNUCKLE
- 0249: release_model #SCREWDRIVER
- 0249: release_model #KNIFECUR
- 0249: release_model #MACHETE
- 0296: unload_special_actor 1
- 0296: unload_special_actor 2
- 0296: unload_special_actor 3
- 0296: unload_special_actor 4
- 0296: unload_special_actor 5
- 0296: unload_special_actor 6
- 0296: unload_special_actor 7
- 0296: unload_special_actor 8
- 0296: unload_special_actor 9
- 0296: unload_special_actor 10
- 0296: unload_special_actor 11
- 0296: unload_special_actor 12
- 0AC9: free_allocated_memory 15@
- end_thread
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement