Atp Androm
Atp Androm
cs}
thread 'ATP_ANDROM'
9@ = 0 //transmitter
7@ = -1 //plane
8@ = -1 //actor
10@ = -1 //plane marker
11@ = -1 //pathID
12@ = -1 //pathDetector
27@ = -1 //long angle
26@ = -1 //long coord
25@ = -1 //long coord
24@ = -1 //long coord
0@ = -1 //coord
1@ = -1 //coord
2@ = -1 //coord
3@ = -1 //temp value
4@ = -1 //angle
5@ = -1 //health
6@ = -1 //speed
:start
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @start
if
80FE: not actor $PLAYER_ACTOR sphere 0 in_sphere 1494.0999 -2593.6995 14.7567
radius 250.0 250.0 250.0
jf @start
:ava
wait 10
if
Model.Available(#ANDROM)
jf @load
wait 10
if
Model.Available(#WMYPLT)
jf @load1
jump @available
:load
Model.Load(#ANDROM)
wait 10
jump @ava
:load1
Model.Load(#WMYPLT)
wait 10
jump @ava
:available
Car.Create(7@, #ANDROM, 1494.0999, -2593.6995, 14.7567)
Car.Angle(7@) = 270.0
08E6: set_plane 7@ landing_gear 0
0129: 8@ = create_actor_pedtype 4 model #WMYPLT in_car 7@ driverseat
Model.Destroy(#WMYPLT)
Model.Destroy(#ANDROM)
11@ = 41 //pathID
12@ = 0 //pathDetect
27@ = 270.0 //angle
26@ = 1494.0999 //longterm coords
25@ = -2593.6995 //longterm coords
24@ = 14.7567 //longterm coords
if
9@ == 1
jf @loadpath
0ACE: show_formatted_text_box "ANDROM respawned at Los Santos."
Marker.CreateAboveaCTOR(10@, 8@)
Marker.SetColor(10@, 1)
:loadpath
3@ = 0 //wait
if
9@ == 1
jf @assign
0ACE: show_formatted_text_box "ANDROM is waiting for passengers."
:assign
gosub @dead
gosub @transmit
gosub @passenger
Car.PutAt(7@, 26@, 25@, 24@)
Car.Angle(7@) = 27@
3@ += 1
if
3@ == 1500
jf @assign
:pathava
wait 10
if
07C1: path 11@ available
jf @loadpath1
jump @movingon
:loadpath1
07C0: load_path 11@
wait 10
jump @pathava
:movingon
05EB: assign_car 7@ to_path 11@
0873: release_path 11@
if
9@ == 1
jf @checks
0ACE: show_formatted_text_box "ANDROM is now taking off."
:checks
gosub @dead
gosub @transmit
gosub @landinggear
if
860E: not car 7@ assigned_to_path
jf @checks
:release
06C5: release_car 7@ from_path
12@ += 1
if
0029: 12@ >= 3
jf @detectpath
jump @repeat
:detectpath
3@ = 0
if
12@ == 1
jf @detectpath1
26@ = -1606.5895
25@ = -116.5760
24@ = 15.3408
27@ = 135.0
gosub @angle
27@ = 315.0
if
9@ == 1
jf @putat
0ACE: show_formatted_text_box "ANDROM is now in San Fierro."
:putat
gosub @dead
gosub @transmit
3@ += 1
25@ += 0.5
26@ += 0.5
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ == 21
jf @putat
26@ = -1594.2548
25@ = -106.9400
24@ = 10.7448
11@ = 44
jump @loadpath
:detectpath1
if
12@ == 2
jf @repeat
26@ = 1480.4110
25@ = 1697.7520
24@ = 10.7323
27@ = 0.0
if
9@ == 1
jf @putat1
0ACE: show_formatted_text_box "ANDROM is now in Las Venturas."
:putat1
gosub @dead
gosub @transmit
3@ += 1
25@ += 0.5
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ == 37
else_jump @putat1
26@ = 1479.7693
25@ = 1716.3430
24@ = 10.7705
gosub @angle
27@ = 180.0
11@ = 48
jump @loadpath
:repeat
26@ = 2046.3146
25@ = -2492.6272
24@ = 13.4629
27@ = 270.0
gosub @angle
27@ = 90.0
if
3@ == 1
jf @repeat1
0ACE: show_formatted_text_box "ANDROM is now in Los Santos."
:repeat1
gosub @dead
gosub @transmit
3@ += 1
26@ += -0.5
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@,25@,24@)
if
3@ == 1104
jf @repeat1
:repeat2
3@ = 0
26@ = 1494.0999
25@ = -2492.6272
24@ = 14.7567
gosub @angle90
27@ = 180.0
:repeat3
gosub @dead
gosub @transmit
3@ += 1
25@ += -0.5
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ == 200
jf @repeat3
11@ = 41
12@ = 0
26@ = 1494.0999
25@ = -2593.6995
24@ = 14.7567
gosub @angle270
27@ = 270.0
jump @loadpath
:passenger
if and
not Actor.Driving($PLAYER_ACTOR)
0205: actor $PLAYER_ACTOR near_car 7@ radius 25.0 25.0 10.0 flag 0
00E1: player 0 pressed_key 8
0AA1: return_if_false
0430: put_actor $PLAYER_ACTOR into_car 7@ passenger_seat 0
0051: return
:landinggear
Car.StorePos(7@, 0@, 1@, 2@)
if
2@ >= 50.0
jf @landinggear1
08E6: set_plane 7@ landing_gear 1
return
:landinggear1
08E6: set_plane 7@ landing_gear 0
return
:angle
3@ = 0
:angle2
gosub @dead
gosub @transmit
000B: 27@ += 1.0
000A: 3@ += 1
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ >= 180
else_jump @angle2
3@ = 0
return
:dead
wait 0
if and
not 7@ == -1
not 8@ == -1
jf @ende
if and
not Car.Wrecked(7@)
0185: car 7@ health >= 250
not Actor.Dead(8@)
Actor.InCar(8@, 7@)
jf @end
return
:end
0ABF: set_vehicle 7@ engine_state_to 0
Actor.RemoveReferences(8@)
Car.RemoveReferences(7@)
06C5: release_car 7@ from_path
if
9@ == 1
jf @start
0ACE: show_formatted_text_box "Something very bad happened to the ANDROM."
Marker.Disable(10@)
jump @start
:ende
Marker.Disable(10@)
Actor.RemoveReferences(8@)
Car.RemoveReferences(7@)
jump @start
:transmit
if
0ADC: test_cheat "ANDROM"
jf @info
if
9@ == 0
jf @off
9@ = 1
Marker.CreateAboveActor(10@, 8@)
Marker.SetColor(10@, 1)
0ACE: show_formatted_text_box "ANDROM transmitter online. Type ANDROM again to turn
off or hold H and 2 to view info."
return
:off
9@ = 0
Marker.Disable(10@)
0ACE: show_formatted_text_box "ANDROM transmitter offline. Type ANDROM to turn on."
return
:info
if
0AB0: key_pressed 72
0aa1:
if
0AB0: key_pressed 50
0aa1:
if
9@ == 1
0AA1: return_if_false
0227: 5@ = car 7@ health
02E3: 6@ = car 7@ speed
Car.StorePos(7@, 0@, 1@, 2@)
4@ = Car.Angle(7@)
0ACE: show_formatted_text_box "ANDROM Health %d Speed %f at %f %f %f Angle %f" 5@
6@ 0@ 1@ 2@ 4@
return
:angle90
3@ = 0
:angle290
gosub @dead
gosub @transmit
000B: 27@ += 1.0
000A: 3@ += 1
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ >= 90
else_jump @angle290
3@ = 0
return
:angle270
3@ = 0
:angle2270
gosub @dead
gosub @transmit
000B: 27@ -= 1.0
000A: 3@ += 1
Car.Angle(7@) = 27@
Car.PutAt(7@, 26@, 25@, 24@)
if
3@ >= 90
else_jump @angle290
3@ = 0
return