Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$CLEO}
- 0000: TF_1_21
- // Open this text with the Sanny Builder, make your own changes bellow then press the F6 button.
- // DO NOT TOUCH "ped" or "veh" constants!!!
- REPEAT
- wait 250
- UNTIL 0256: player $PLAYER_CHAR defined
- CONST
- ped = 25@
- veh = 31@
- // ------> changes go here:
- PLAYER_TANK_FIRE_RATE = 1000 // integer 1000 = 1 second
- NPC_TANK_FIRE_RATE = 0 // integer 1000 = 1 second
- CANNONBALL_SPEED = 120.0 // float (decimal)
- CANNONBALL_SMOKE_R = 1.0 // float (decimal)
- CANNONBALL_SMOKE_G = 0.0 // float (decimal)
- CANNONBALL_SMOKE_B = 0.0 // float (decimal)
- END
- VAR
- ped: int
- veh: int
- PLAYER_TANK_FIRE_RATE: int
- NPC_TANK_FIRE_RATE: int
- CANNONBALL_SPEED: float
- CANNONBALL_SMOKE_R: float
- CANNONBALL_SMOKE_G: float
- CANNONBALL_SMOKE_B: float
- END
- IF 0AA9: game_version_original
- THEN
- 27@ = 0x6AECE9 // NOP 6 ---> constFire
- 0A8C: write_memory 0x6AED10 size 2 value PLAYER_TANK_FIRE_RATE virtual_protect 1 // the interval between shots 800 ms
- 0A8C: write_memory 0x6AF0AC size 1 value 2 virtual_protect 1 // explo ID
- 0A8C: write_memory 0x871080 size 4 value 0.0 virtual_protect 1 // g_fTankPushingPower dd -0.1
- // distanceShot-------------------------------------------------------> // def flt_858B34 60.0f [XYZ]
- 0A8C: write_memory 0x6AEF42 size 4 value 0x858A48 virtual_protect 1 // *X flt_858A48 200.0
- 0A8C: write_memory 0x6AEF56 size 4 value 0x858A48 virtual_protect 1 // *Y flt_858A48 200.0
- 0A8C: write_memory 0x6AEF65 size 4 value 0x858A48 virtual_protect 1 // *Z flt_858A48 200.0
- ELSE
- 27@ = 0x6AF509 // NOP 6 ---> constFire
- 0A8C: write_memory 0x6AF530 size 2 value 150 virtual_protect 1 // the interval between shots 800 ms
- 0A8C: write_memory 0x6AF8CC size 1 value 2 virtual_protect 1 // explo ID
- 0A8C: write_memory 0x8720B8 size 4 value 0.0 virtual_protect 1 // g_fTankPushingPower dd -0.1
- // distanceShot-------------------------------------------------------> // def flt_859B34 60.0f [XYZ]
- 0A8C: write_memory 0x6AF762 size 4 value 0x859A48 virtual_protect 1 // *X flt_859A48 200.0
- 0A8C: write_memory 0x6AF776 size 4 value 0x859A48 virtual_protect 1 // *Y flt_859A48 200.0
- 0A8C: write_memory 0x6AF785 size 4 value 0x859A48 virtual_protect 1 // *Z flt_859A48 200.0
- END
- REPEAT
- wait 0
- IF 00DD: actor $PLAYER_ACTOR driving_car_with_model #RHINO
- THEN
- gosub @setupPlayerTank
- END
- UNTIL 010F: player $PLAYER_CHAR wanted_level > 5
- 0247: request_model 1582
- 038B: load_requested_models
- 32@ = 0
- REPEAT
- wait 0
- IF 00DD: actor $PLAYER_ACTOR driving_car_with_model #RHINO
- THEN
- gosub @setupPlayerTank
- END
- UNTIL 32@ >= 2500
- WHILE TRUE
- wait 0
- IF 0AA9: game_version_original
- THEN
- 23@ = 0xB74490
- 29@ = 0xB74494
- ELSE
- 23@ = 0xB76B10
- 29@ = 0xB76B14
- END
- 0A8D: 23@ = read_memory 23@ size 4 virtual_protect 0
- 23@ += 0x4
- 0A8D: 23@ = read_memory 23@ size 4 virtual_protect 0
- FOR 24@ = 0 to 35584 step 0x100 // 8B00
- 0A8D: ped = read_memory 23@ size 1 virtual_protect 0
- 000A: 23@ += 0x1
- IF AND
- 0029: ped >= 0x00
- 001B: 0x80 > ped
- THEN
- 005A: ped += 24@
- IF AND
- 010F: player $PLAYER_CHAR wanted_level > 5
- 056D: actor ped defined
- THEN
- IF 8449: NOT actor ped in_a_car
- THEN
- 089F: get_actor ped pedtype_to 28@
- 0A96: 5@ = actor ped struct
- 000A: 5@ += 0x484
- 0006: 26@ = 0
- 0A8D: 26@ = read_memory 5@ size 1 virtual_protect 1
- IF AND
- 0184: actor ped health >= 97
- 8A32: NOT actor ped on_turret_of_car
- 8039: NOT 28@ == 0
- 8039: NOT 28@ == 6
- 0039: 26@ == 1
- THEN
- 00A0: store_actor $PLAYER_ACTOR position_to 8@ 9@ 10@
- 05DA: AS_actor ped run_away_in_panic_from 8@ 9@ 10@ away_radius 1000.0 timelimit -1
- 0223: set_actor ped health_to 95
- END
- ELSE
- 03C0: 18@ = actor ped car
- 089F: get_actor ped pedtype_to 28@
- 0A96: 5@ = actor ped struct
- 000A: 5@ += 0x484
- 0006: 26@ = 0
- 0A8D: 26@ = read_memory 5@ size 1 virtual_protect 1
- IF AND
- 8975: NOT car 18@ emergency_vehicle
- 0184: actor ped health >= 97
- 8A32: NOT actor ped on_turret_of_car
- 8039: NOT 28@ == 0
- 8039: NOT 28@ == 6
- 0039: 26@ == 1
- 0104: actor ped near_actor $PLAYER_ACTOR radius 40.0 40.0 40.0 sphere 0
- 02CA: car 18@ bounding_sphere_visible
- THEN
- 0633: AS_actor ped exit_car
- END
- END
- IF AND
- 82F2: NOT actor ped model == #LAPD1
- 82F2: NOT actor ped model == #SFPD1
- 82F2: NOT actor ped model == #LVPD1
- 82F2: NOT actor ped model == #CSHER
- 82F2: NOT actor ped model == #DSHER
- 82F2: NOT actor ped model == #SWAT
- 82F2: NOT actor ped model == #FBI
- 82F2: NOT actor ped model == #ARMY
- THEN
- 03C0: 18@ = actor ped car
- 089F: get_actor ped pedtype_to 28@
- 0A96: 5@ = actor ped struct
- 000A: 5@ += 0x484
- 0006: 26@ = 0
- 0A8D: 26@ = read_memory 5@ size 1 virtual_protect 1
- IF AND
- 8A32: NOT actor ped on_turret_of_car
- 8039: NOT 28@ == 0
- 0039: 28@ == 6
- 8449: NOT actor ped in_a_car
- 0184: actor ped health >= 97
- THEN
- 060B: set_actor ped decision_maker_to 1
- 0223: set_actor ped health_to 95
- END
- END
- END
- END
- END
- 0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
- 29@ += 0x4
- 0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
- FOR 30@ = 0 to 27904 step 0x100
- 0A8D: veh = read_memory 29@ size 1 virtual_protect 0
- 000A: 29@ += 0x1
- IF AND
- 0029: veh >= 0x00
- 001B: 0x80 > veh
- THEN
- 005A: veh += 30@
- IF 00DD: actor $PLAYER_ACTOR driving_car_with_model #RHINO
- THEN
- gosub @setupPlayerTank
- gosub @ExplosionEvant
- END
- IF 010F: player $PLAYER_CHAR wanted_level > 5
- THEN
- IF AND
- 8449: NOT actor $PLAYER_ACTOR in_a_car
- 84AD: NOT actor $PLAYER_ACTOR in_water
- 0AB0: key_pressed 0x11
- 0AB0: key_pressed 0x53
- THEN
- 04D7: set_actor $PLAYER_ACTOR locked 1
- 05C4: AS_actor $PLAYER_ACTOR hands_up -1 ms
- 0A96: 5@ = actor $PLAYER_ACTOR struct
- 000A: 5@ += 0x530
- 0A8C: write_memory 5@ size 1 value 63 virtual_protect 1
- 0006: 32@ = 0
- REPEAT
- wait 0
- UNTIL 0029: 32@ >= 4500
- 04D7: set_actor $PLAYER_ACTOR locked 0
- 0687: clear_actor $PLAYER_ACTOR task
- END
- IF 056E: car veh defined
- THEN
- IF 0137: car veh model == #RHINO
- THEN
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 0174: 7@ = car veh Z_angle
- 0063: 6@ -= 7@
- 0017: 6@ /= 57.295779513082320876798154814105 // rad
- 0A97: 5@ = car veh struct
- 000A: 5@ += 0x94C // HA
- 0A8C: write_memory 5@ size 4 value 6@ virtual_protect 1
- IF OR
- 031E: car veh hit_by_weapon 16
- 031E: car veh hit_by_weapon 19
- 031E: car veh hit_by_weapon 35
- 031E: car veh hit_by_weapon 36
- 031E: car veh hit_by_weapon 40
- THEN
- 046C: 4@ = car veh driver
- IF 056D: actor 4@ defined
- THEN
- 009B: destroy_actor 4@
- 020B: explode_car veh
- ELSE
- 020B: explode_car veh
- END
- END
- 046C: 4@ = car veh driver
- IF AND
- 8119: NOT car veh wrecked
- 80DB: NOT actor $PLAYER_ACTOR in_car veh
- 81F3: NOT car veh in_air
- 056D: actor 4@ defined
- 010F: player $PLAYER_CHAR wanted_level > 5
- 0256: player $PLAYER_CHAR defined
- THEN
- IF 04AD: actor 4@ in_water
- THEN
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 07E1: AS_actor 4@ swim_to 5@ 6@ 7@
- END
- IF AND
- 02F2: actor 4@ model == #ARMY
- 00DF: actor 4@ driving
- 010F: player $PLAYER_CHAR wanted_level > 5
- THEN
- IF 8491: NOT actor 4@ has_weapon 16
- THEN
- 054A: set_actor 4@ can_be_shot_in_a_car 1
- 04D8: set_actor 4@ drowns_in_water 0
- 048F: actor 4@ remove_weapons
- 01B2: give_actor 4@ weapon 45 ammo 9999
- 01B2: give_actor 4@ weapon 16 ammo 9999
- 01B2: give_actor 4@ weapon 31 ammo 9999
- END
- IF 03CA: object 13@ exists
- THEN
- IF AND
- 0137: car veh model == #RHINO
- 8119: NOT car veh wrecked
- THEN
- IF AND
- 010F: player $PLAYER_CHAR wanted_level > 6
- 0897: car veh collided_with_object 13@
- THEN
- IF 056D: actor 4@ defined
- THEN
- 009B: destroy_actor 4@
- 020B: explode_car veh
- ELSE
- 020B: explode_car veh
- END
- END
- END
- END
- 03C0: 18@ = actor $PLAYER_ACTOR car
- IF AND
- 056E: car 18@ defined
- 03CA: object 13@ exists
- THEN
- IF 0449: actor $PLAYER_ACTOR in_a_car
- THEN
- IF AND
- 010F: player $PLAYER_CHAR wanted_level > 6
- 00DD: actor $PLAYER_ACTOR driving_car_with_model #RHINO
- 0897: car 18@ collided_with_object 13@
- THEN
- 000A: 19@ += 1
- IF 0029: 19@ >= 50
- THEN
- 0224: set_car 18@ health_to 100
- 0006: 19@ = 0
- END
- END
- END
- END
- 02AA: set_car veh immune_to_nonplayer 1
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 0174: 7@ = car veh Z_angle
- 0063: 6@ -= 7@
- 0017: 6@ /= 57.295779513082320876798154814105 // rad
- 0A97: 5@ = car veh struct
- 000A: 5@ += 0x94C // HA
- 0A8C: write_memory 5@ size 4 value 6@ virtual_protect 1
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 6@ 7@ 12@
- 0509: 11@ = distance_between_XY 6@ 7@ and_XY 8@ 9@
- IF AND
- 0031: 11@ >= 10.0
- 0025: 12@ > 10@
- THEN
- 0A97: 5@ = car veh struct
- 000A: 5@ += 0x950 // VA
- 0006: 26@ = 0
- 0A8D: 26@ = read_memory 5@ size 4 virtual_protect 1
- IF 0021: 26@ > 1.221730476396031
- THEN
- gosub @getVerticalAngle
- 0A97: 5@ = car veh struct
- 000A: 5@ += 0x950 // VA
- 0A8C: write_memory 5@ size 4 value 1.221730476396031 virtual_protect 1
- ELSE
- gosub @getVerticalAngle
- 0A97: 5@ = car veh struct
- 000A: 5@ += 0x950 // VA
- 0A8C: write_memory 5@ size 4 value 8@ virtual_protect 1
- END
- END
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- IF 06BD: no_obstacles_between 5@ 6@ 7@ and 8@ 9@ 10@ solid 1 car 0 actor 0 object 0 particle 0
- THEN
- IF OR
- 02CA: car veh bounding_sphere_visible
- 0205: actor $PLAYER_ACTOR near_car veh radius 500.0 500.0 500.0 flag 0
- THEN
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 02F6: 15@ = cos 6@
- 02F7: 16@ = sin 6@
- 0013: 15@ *= CANNONBALL_SPEED
- 0013: 16@ *= CANNONBALL_SPEED
- 0013: 15@ *= -1.0
- gosub @getVerticalAngle
- 00AA: store_car veh position_to 9@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- IF 0025: 7@ > 10@
- THEN
- 0013: 8@ *= CANNONBALL_SPEED
- 0087: 17@ = 8@
- ELSE
- 0013: 8@ *= CANNONBALL_SPEED
- 8@ *= -1.0
- 0087: 17@ = 8@
- END
- END
- IF 03CA: object 13@ exists
- THEN
- 05C0: AS_actor $PLAYER_ACTOR look_at_car veh 1000 ms
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- IF AND
- 04E6: object 13@ near_point 5@ 6@ 7@ radius 1.0 1.0 1.0 flag 0
- 8449: NOT actor $PLAYER_ACTOR in_a_car
- THEN
- ////////////////////////////////////////
- END
- IF AND
- 0205: actor $PLAYER_ACTOR near_car veh radius 500.0 500.0 500.0 flag 0
- 32@ >= NPC_TANK_FIRE_RATE
- THEN
- 0392: make_object 13@ moveable 1
- 0381: throw_object 13@ velocity_in_direction 15@ 16@ 17@
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- // 0453: set_object 13@ XY_rotation 0.0 0.0 angle 6@
- 0174: 7@ = car veh Z_angle
- 0063: 6@ -= 7@
- 02F6: 15@ = sine 6@
- 02F7: 16@ = cosine 6@
- 0013: 15@ *= 7.0
- 0013: 16@ *= 7.0
- 0013: 15@ *= -1.0
- 00AA: store_car veh position_to 8@ 9@ 10@
- IF 84E5: NOT object 13@ near_point 8@ 9@ radius 10.0 10.0 sphere 0
- THEN
- 01BB: store_object 13@ position_to 5@ 6@ 7@
- 095C: create_smoke_at 5@ 6@ 7@ velocity 0.0 0.0 0.0 RGBA CANNONBALL_SMOKE_R CANNONBALL_SMOKE_G CANNONBALL_SMOKE_B 1.0 size 0.5 last_factor 0.075
- END
- IF OR
- 0019: 32@ > 2000
- 04DA: object 13@ collided
- THEN
- 00AA: store_car veh position_to 8@ 9@ 10@
- IF 04E6: object 13@ near_point 8@ 9@ 10@ radius 20.0 20.0 20.0 flag 0
- THEN
- 0108: destroy_object 13@
- 32@ = 0
- ELSE
- IF 0205: actor $PLAYER_ACTOR near_car veh radius 10.0 10.0 10.0 flag 0
- THEN
- IF 0019: 33@ > 0
- THEN
- 01BB: store_object 13@ position_to 5@ 6@ 7@
- 0948: create_explosion_at 5@ 6@ 7@ type 3 camera_shake 0.5
- 08EB: create_sparks_at 5@ 6@ 7@ velocity_direction 10.0 10.0 10.0 density 60
- 0108: destroy_object 13@
- 32@ = 0
- 33@ = 0
- END
- ELSE
- 01BB: store_object 13@ position_to 5@ 6@ 7@
- 0948: create_explosion_at 5@ 6@ 7@ type 3 camera_shake 0.5
- 08EB: create_sparks_at 5@ 6@ 7@ velocity_direction 10.0 10.0 10.0 density 60
- 0108: destroy_object 13@
- 32@ = 0
- 33@ = 0
- END
- END
- END
- END
- ELSE
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 0174: 7@ = car veh Z_angle
- 0063: 6@ -= 7@
- 02F6: 15@ = sine 6@
- 02F7: 16@ = cosine 6@
- 0013: 15@ *= 7.0
- 0013: 16@ *= 7.0
- 0013: 15@ *= -1.0
- 0407: store_coords_to 8@ 9@ 10@ from_car veh with_offset 15@ 16@ 1.2
- 0107: 13@ = create_object 1582 at 8@ 9@ 10@
- 050E: set_object 13@ no_collision_with_car veh
- 0177: set_object 13@ Z_angle_to 6@
- 0750: set_object 13@ visibility 0
- 04D9: object 13@ set_scripted_collision_check 1
- 0382: set_object 13@ collision_detection 0
- 0723: break_object 13@ intensity 0
- 01BB: store_object 13@ position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 11@
- 02F6: 20@ = cos 11@ // (float)
- 02F7: 21@ = sin 11@ // (float)
- 0013: 20@ *= 27.0
- 0013: 21@ *= 27.0
- 0013: 20@ *= -1.0
- gosub @getVerticalAngle
- 0087: 22@ = 8@
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- IF 0025: 10@ > 7@
- THEN
- 0013: 22@ *= CANNONBALL_SPEED
- 22@ *= 1.0
- ELSE
- 0013: 22@ *= CANNONBALL_SPEED
- END
- 0400: store_coords_to 5@ 6@ 7@ from_object 13@ with_offset 20@ 21@ 22@
- 01BB: store_object 13@ position_to 8@ 9@ 10@
- IF 8202: NOT actor $PLAYER_ACTOR near_car veh radius 9.0 9.0 sphere 0
- THEN
- IF 0AA9: game_version_original
- THEN
- 0AA5: call 0x4A0FA0 num_params 2 pop 0 20@v 8@v // TriggerTankFire
- ELSE
- 0AA5: call 0x4A1020 num_params 2 pop 0 20@v 8@v // TriggerTankFire
- END
- END
- 0108: destroy_object 13@
- 32@ = 0
- 00AA: store_car veh position_to 8@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 0174: 7@ = car veh Z_angle
- 0063: 6@ -= 7@
- 02F6: 15@ = sine 6@
- 02F7: 16@ = cosine 6@
- 0013: 15@ *= 7.0
- 0013: 16@ *= 7.0
- 0013: 15@ *= -1.0
- gosub @getVerticalAngle
- 00AA: store_car veh position_to 9@ 9@ 10@
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- IF 0025: 7@ > 10@
- THEN
- 0013: 8@ *= 1.0
- 0087: 17@ = 8@
- ELSE
- 0013: 8@ *= 1.0
- 0087: 17@ = 8@
- END
- 0407: store_coords_to 8@ 9@ 10@ from_car veh with_offset 15@ 16@ 1.5
- 0107: 13@ = create_object 1582 at 8@ 9@ 10@
- 050E: set_object 13@ no_collision_with_car veh
- 0177: set_object 13@ Z_angle_to 6@
- 0750: set_object 13@ visibility 0
- 04D9: object 13@ set_scripted_collision_check 1
- 0382: set_object 13@ collision_detection 1
- 0906: set_object 13@ mass_to 200.0
- 0908: set_object 13@ turn_mass_to 200.0
- 0006: 32@ = 0
- END
- END
- END
- END
- END
- END
- END
- END
- END
- END
- :getAngleBetweenPoints
- 0063: 0@ -= 2@
- 0063: 1@ -= 3@
- 0604: get_Z_angle_for_point 0@ 1@ store_to 6@
- 0AB2: ret 1 6@
- :getVerticalAngle
- 0407: store_coords_to 8@ 9@ 10@ from_car veh with_offset 0.0 0.0 0.0
- 00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
- 0063: 7@ -= 10@
- 0097: make 7@ absolute_float // a
- 050A: 11@ = distance_between_XYZ 8@ 9@ 10@ and_XYZ 5@ 6@ 7@ // c
- 0073: 7@ /= 11@ // SIN_VA
- 0087: 8@ = 7@ // X
- 0087: 9@ = 7@ // X
- 0087: 5@ = 7@ // X
- 0087: 6@ = 7@ // X
- 0087: 7@ = 7@ // X
- 006B: 9@ *= 7@ // X^2
- 006B: 9@ *= 7@ // X^3
- 006B: 5@ *= 7@ // X^4
- 006B: 5@ *= 7@ // X^5
- 006B: 6@ *= 7@ // X^6
- 006B: 6@ *= 7@ // X^7
- 006B: 7@ *= 7@ // X^8
- 006B: 7@ *= 7@ // X^9
- 0017: 9@ /= 6.0 // X^3/6
- 0013: 5@ *= 3.0
- 0017: 5@ /= 40.0 // 3X^5/40
- 0013: 6@ *= 5.0
- 0017: 6@ /= 112.0 // 5X^7/112
- 0013: 7@ *= 35.0
- 0017: 7@ /= 1152.0 // 35X^9/1152
- 005B: 8@ += 9@
- 0087: 12@ = 8@
- 005B: 8@ += 5@
- 005B: 8@ += 12@
- 0017: 8@ /= 2.0 // ARC SIN(SIN_VA)= VA
- return
- :setupPlayerTank
- 26@ = 0
- IF 0AA9: game_version_original
- THEN
- 0A8D: 26@ = read_memory 0xB73405 size 1 virtual_protect 1 // RMB
- ELSE
- 0A8D: 26@ = read_memory 0xB75A85 size 1 virtual_protect 1 // RMB
- END
- IF 26@ <> 0
- THEN
- 26@ = 0
- 0A8D: 26@ = read_memory 27@ size 4 virtual_protect 1 // RMB
- IF 26@ <> 0x90909090
- THEN
- 0A8C: write_memory 27@ size 4 value 0x90909090 virtual_protect 1
- 27@ += 4
- 0A8C: write_memory 27@ size 2 value 0x9090 virtual_protect 1
- 27@ += -4
- END
- ELSE
- 26@ = 0
- 0A8D: 26@ = read_memory 27@ size 4 virtual_protect 1 // RMB
- IF 26@ == 0x90909090
- THEN
- 0A8C: write_memory 27@ size 4 value 0x040B840F virtual_protect 1
- 27@ += 4
- 0A8C: write_memory 27@ size 2 value 0x0000 virtual_protect 1
- 27@ += -4
- END
- END
- 03C0: 18@ = actor $PLAYER_ACTOR car
- 00AA: store_car 18@ position_to 5@ 6@ 7@
- 068E: get_camera_target_point_to 8@ 9@ 10@
- 0AB1: call_scm_func @getAngleBetweenPoints 4 from_XY 5@ 6@ and_XY 8@ 9@ store_to 6@
- 0174: 7@ = car 18@ Z_angle
- 0063: 6@ -= 7@
- 0017: 6@ /= 57.295779513082320876798154814105 // rad
- 0A97: 5@ = car 18@ struct
- 000A: 5@ += 0x94C // HA
- 0A8C: write_memory 5@ size 4 value 6@ virtual_protect 1
- return
- :ExplosionEvant
- 00AA: store_car veh position_to 8@ 9@ 10@
- 000F: 8@ -= 7.0
- 000F: 9@ -= 7.0
- 000F: 10@ -= 7.0
- 00AA: store_car veh position_to 5@ 6@ 7@
- 000F: 5@ -= -7.0
- 000F: 6@ -= -7.0
- 000F: 7@ -= -7.0
- IF 8119: NOT car veh wrecked
- THEN
- IF AND
- 8356: NOT explosion_type 3 in_cube_cornerA 8@ 9@ 10@ cornerB 5@ 6@ 7@
- 0356: explosion_type -1 in_cube_cornerA 8@ 9@ 10@ cornerB 5@ 6@ 7@
- 80DB: NOT actor $PLAYER_ACTOR in_car veh
- THEN
- 020B: explode_car veh
- END
- END
- return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement