//-------------MAIN---------------
0000: NOP
:NONAME_2
wait 0
if and
Player.Defined($PLAYER_ACTOR)
Actor.Driving($PLAYER_ACTOR)
0AB0: key_pressed 16
0AB0: key_pressed 82
else_jump @NONAME_2
jump @NONAME_3
:NONAME_3
wait 0
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@) // SEARCHING START POS
3@ = 3000.0 // SEARCH RADIUS
gosub @AIC_GETACTOR // GET ACTOR WICH IS AT POS 0@ 1@ 2@ TO 26@
if
056D: actor 26@ defined
else_jump @NONAME_3
jump @NONAME_118
:NONAME_118
wait 0
if
Actor.Driving(26@)
jf @NONAME_2
$SATAN = Actor.CurrentCar(26@)
$MR_****** = Actor.CurrentCar($PLAYER_ACTOR)
jump @NONAME_188
:NONAME_188
wait 0
if
056E: car $MR_****** defined
056E: car $SATAN defined
jump @NONAME_209
:NONAME_209
wait 0
if
not Actor.InCar($PLAYER_ACTOR, $SATAN)
else_jump @NONAME_2
if
Actor.InCar($PLAYER_ACTOR, $MR_******)
else_jump @NONAME_2
036A: put_actor $PLAYER_ACTOR in_car $SATAN
036A: put_actor $PLAYER_ACTOR in_car $SATAN
036A: put_actor $PLAYER_ACTOR in_car $SATAN
call @NONAME_347 1 4.0 0@ 1@ 2@
Car.StorePos($MR_******, 3@, 4@, 5@)
4@ += 5.0
5@ += 5.0
Car.PutAt($SATAN, 3@, 4@, 5@)
07D5: set_car $SATAN velocity_in_direction_XYZ 0@ 1@ 2@ rotation_velocitiesXY 0.0 0.0 unk 0.0
wait 100
036A: put_actor $PLAYER_ACTOR in_car $MR_******
036A: put_actor $PLAYER_ACTOR in_car $MR_******
036A: put_actor $PLAYER_ACTOR in_car $MR_******
jump @NONAME_2
:AIC_GETACTOR
0395: clear_area 1 at 0@ 1@ 2@ radius 100000.0
0006: 16@ = 305868
0006: 5@ = @AIC_TESTACTORHANDLE
0006: 6@ = 1988
0002: jump @AIC_STARTSEARCH
:AIC_STARTSEARCH
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 8 )^ = 7@ // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0 // CPool.pUnits
0006: 26@ = -1
0006: 10@ = 0
:AIC_SEARCHLOOPMAIN
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 11@ + 20 )^ = 4@ // xyz*
8039: not 4@ == 0
004D: jump_if_false @AIC_SEARCHLOOPNEXT
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 48 )^ = 12@ // x
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 52 )^ = 13@ // y
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 56 )^ = 14@ // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@
0025: 3@ > 15@ // (float)
004D: jump_if_false @AIC_SEARCHLOOPNEXT
0085: 26@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 26@ // (int)
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0
0012: 26@ *= 256
005A: 26@ += 4@ // (int)
0002: jump 5@
:AIC_TESTACTORHANDLE
056D: is 26@ valid_actor_handle
004D: jump_if_false @AIC_NOHANDLE
00D6: if or
003C: $PLAYER_ACTOR == 26@ // (int)
0118: actor 26@ dead
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE
//:AIC_TESTOBJECTHANDLE
//0001: wait 0
//83CA: not object 26@ exists
//004D: jump_if_false @AIC_NEWSEARCHRADIUS
//:AIC_TESTVEHICLEHANDLE
//056E: is 26@ valid_vehicle_handle
//004D: jump_if_false @AIC_NOHANDLE
//00D6: if or
//003B: $PLAYER_ACTOR == 26@ // (int)
//0119: car 26@ wrecked
///004D: jump_if_false @AIC_NEWSEARCHRADIUS
//0002: jump @AIC_NOHANDLE
:AIC_NOHANDLE
0006: 26@ = -1
0002: jump @AIC_SEARCHLOOPNEXT
:AIC_NEWSEARCHRADIUS
if
056D: actor 26@ defined
jf @AIC_NOHANDLE
0085: 3@ = 15@
:AIC_SEARCHLOOPNEXT
005A: 11@ += 6@ // (int)
000A: 10@ += 1
002D: 10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN
0051: return
:AIC_READMEMOFFSET
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@
:NONAME_347
0087: 13@ = 0@ // (float)
Car.StorePos($MR_******, 20@, 21@, 22@)
068D: get_camera_position_to 24@ 25@ 26@
0063: 20@ -= 24@ // (float)
0063: 21@ -= 25@ // (float)
0063: 22@ -= 26@ // (float)
Car.StorePos($MR_******, 0@, 1@, 2@)
006B: 20@ *= 13@ // (float)
006B: 21@ *= 13@ // (float)
006B: 22@ *= 13@ // (float)
005B: 22@ += 13@ // (float)
005B: 0@ += 20@ // (float)
005B: 1@ += 21@ // (float)
005B: 2@ += 22@ // (float)
Car.StorePos($MR_******, 3@, 4@, 5@)
0063: 0@ -= 3@ // (float)
0063: 1@ -= 4@ // (float)
0063: 2@ -= 5@ // (float)
ret 3 0@ 1@ 2@
Thank you for making interest in others for test out this cleos stuffs.
|