You are on page 1of 42

//

//----------------------------- : ,
5--------(by Den_spb)-------------------------------------------
//
//
-----------------------------------------------------------------------------------
------------------------------------
{
0@ - (
)
1@ -
2@ -
3@ -
4@ -
5@ -
6@ -
7@ -
8@ -
9@ -
10@ -
11@ - ,

12@ - ,

13@ - ,

14@ - ,

15@ - (
)
16@ - ,
( , )
17@ - ,
( , )
18@ - .

0 - . , ,

1 - . , ,

2 -
3 -
4 -
19@ - . .
20@ -
21@ -
22@ -
23@ -
24@ -
25@ -
26@ -
27@ -
28@ -
29@ -
30@ - .

0 - CJ -
1 - -
31@ - . .
32@ - 1.
33@ - 2. }
//---------------------------------------------------------------------------------
---------------------------------------------
{$CLEO .cs}
wait 1000
0A95: enable_thread_saving // (), ,

var //
20@ : Integer
22@ : Integer
23@ : Integer
24@ : Integer
25@ : Integer
end
16@ = 0
17@ = 0
30@ = 0
31@ = 0
32@ = 0
33@ = 0
while true
//---------------------------------------------------------------------------------
---------------------------
wait 0
if
//--------------------------------------------------------------------------
( )
856E: not car 8@ defined
then
if
18@ <> 1
then
18@ = 1
0209: 16@ = random_int_in_ranges 60 121 // min max ,

16@ *= 1000
32@ = 0
else
0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0 //
, ,
if and
15@ == 0 // , .

001D: 32@ > 16@ // (int)
then
actor.StorePos($PLAYER_ACTOR,3@,4@,6@)
if or
3@ < 956.0
4@ < 1281.0
856E: not car 9@ defined //
,
then
// . - 2,
- 4 ( Y X)
// ,

if
3@ >= 0.0 //
then
if
4@ >= 0.0
then
21@ = 1 //
else
21@ = 2
end
else
if
4@ >= 0.0
then
21@ = 4
else
21@ = 3
end
end
// tracks2.dat
. , ,
// ,
.
//
.
// ,
.
// 300 ( 300 ).
(),
// 600 - ,
( ).
// - ,
, .
// 600 ,
.
// ,
.
// , 300 - 600
.
// ,
,
// .
- tracks4.dat
if
21@ == 1
then
jump @kvad_1t1
end
if
21@ == 2
then
jump @kvad_2t1
end
if
21@ == 3
then
jump @kvad_3t1
end
if
21@ == 4
then
jump @kvad_4t1
end
:kvad_1t1
//------------------------------------------------------------------------------
. 1
0@ = -598.09 // pas-

1@ = 1188.22
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@ //

2@ > 600.0 // 600 ,

jf @create1 // ,

0@ = -325.94
1@ = 1248.88
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -35.79
1@ = 1293.15
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 241.37
1@ = 1229.34
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 536.14
1@ = 1247.17
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 739.12
1@ = 1461.33
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 742.99
1@ = 1697.59
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 742.51
1@ = 1787.34
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 740.75
1@ = 2026.49
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 726.84
1@ = 2321.07
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 801.16
1@ = 2609.48
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1072.24
1@ = 2722.62
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1236.12
1@ = 2632.27
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1481.99
1@ = 2632.34
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1774.87
1@ = 2675.03
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2021.92
1@ = 2694.18
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2229.69
1@ = 2690.17
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2519.59
1@ = 2639.43
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2552.81
1@ = 2344.89
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2735.05
1@ = 2111.73
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2781.06
1@ = 1816.16
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2856.25
1@ = 1531.03
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2864.77
1@ = 1239.22
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2764.76
1@ = 983.25
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2764.79
1@ = 743.27
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
if
21@ == 4 // 4 ,

then
jump @_5 // ,

end
:kvad_2t1
//---------------------------------------------------------------------------
. 2
0@ = 2765.28
1@ = 528.72
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2781.32
1@ = 239.50
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2827.61
1@ = 36.33
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2763.10
1@ = -250.25
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2467.57
1@ = -275.00
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2192.47 //
point 1
1@ = -357.99
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2122.11 //
point 2
1@ = -647.61
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2284.98
1@ = -897.82
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2284.99
1@ = -1186.05
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2273.19
1@ = -1484.06
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 2198.65
1@ = -1760.34
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1989.68
1@ = -1953.75
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1696.98
1@ = -1953.73
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1398.43
1@ = -1948.14
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1197.64
1@ = -1779.76
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 1002.70
1@ = -1556.24
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 815.00
1@ = -1366.51
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 778.25
1@ = -1333.63
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
if
21@ == 1
then
jump @_5
end
:kvad_3t1
//-------------------------------------------------------------------------
. 3
wait 0
0@ = 589.52
1@ = -1187.75
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 335.44
1@ = -1061.40
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = 49.59
1@ = -1018.00
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -237.89
1@ = -1069.90
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -470.71
1@ = -1253.47
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -742.62
1@ = -1133.88
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -847.02
1@ = -1404.64
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1113.11
1@ = -1514.30
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1392.21
1@ = -1509.24
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1676.36
1@ = -1465.42
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1876.64
1@ = -1258.10
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1976.75
1@ = -995.47
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1978.81
1@ = -717.47
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
if
21@ == 2
then
jump @_5
end
:kvad_4t1
//--------------------------------------------------------------------------
. 4
0@ = -1980.12
1@ = -592.06
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1960.09
1@ = -296.04
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1944.42
1@ = -11.95
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1942.72
1@ = 171.88
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1756.16
1@ = 399.26
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1523.12
1@ = 568.50
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1290.21
1@ = 737.81
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -1082.96
1@ = 888.28
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -992.44
1@ = 954.08
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
0@ = -760.64
1@ = 1122.39
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create1
if
21@ == 3
then
jump @_5
end
jump @kvad_1t1
:create1
//---------------------------------------------------------------------------------

wait 0
0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0
if
15@ == 0 // (
)
then
while true
wait 0
0209: 21@ = random_int_in_ranges 0 16 //
(1-15)
if and
21@ <> 8
21@ <> 9
21@ <> 14 // ,

then
break //
end
end
7@ = -382234 // ,

21@ *= 16 // *

005A: 7@ += 21@ // (int) -

0016: 21@ /= 16
11@ = 6.643 //
- 60 /
// = 6,643 + 6,357 *
while &0(7@,1i) <> 0 //
wait 0
Model.Load(&0(7@,1i)) //
11@ += 6.357 //

7@ += 1
end
038B: load_requested_models
0087: 12@ = 11@ // (float)
12@ += 20.0
// 60 / . .
20
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
while &0(7@,1i) <> 0 // ,

repeat
wait 0
until Model.Available(&0(7@,1i))
7@ += 1
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
7@ += 14 // 14

if and // 19 ,

&0(7@,1i) <> 0 // 14

21@ < 7 // 0-6 ( -


, )
then
22@ = &0(7@,1i) // 14
7@ += 1
&0(7@,1i) = 22@ // 15 (0) 14
7@ += 1
23@ = &0(7@,1i) // 16
( )
&0(7@,1i) = 22@ // 16 ,
14
7@ += 1
20@ = &0(7@,1i) // 17
&0(7@,1i) = 22@
7@ += 1
24@ = &0(7@,1i) // 18
&0(7@,1i) = 22@
7@ += 1
25@ = &0(7@,1i) // 19 ()
&0(7@,1i) = 0
end
// 2
// ,
.
//
.
// ,
.
if and
0@ == 2192.47 // 1

1@ == -357.99
then
06D8: 8@ = create_train_at 0@ 1@ 60.0 type 21@
direction 1
else
if and
0@ == 2122.11 // 2
1@ == -647.61
then
06D8: 8@ = create_train_at 0@ 1@ 70.0 type 21@
direction 1
else // -
06D8: 8@ = create_train_at 0@ 1@ 0.0 type 21@
direction 1
end //
- 0.0
end
18@ = 2
30@ = 1
06DC: set_train 8@ acc 16.67 //
-
06DD: set_train 8@ speed 16.67 // 60 /
if
$ONMISSION == 0 //

then
5@ = Marker.CreateAboveCar(8@)
Marker.SetColor(5@, 0)
018B: set_marker 5@ radar_mode 2
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
7@ += 14
if and //
,
&0(7@,1i) <> 0
21@ < 7
then
7@ += 1 // 15
&0(7@,1i) = 0
7@ += 1 // 16
&0(7@,1i) = 23@
7@ += 1 // 17
&0(7@,1i) = 20@
7@ += 1 // 18
&0(7@,1i) = 24@
7@ += 1 // 19
&0(7@,1i) = 25@
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
while &0(7@,1i) <> 0 //

wait 0
Model.Destroy(&0(7@,1i))
7@ += 1
end
end
end
end
end
end
:_5
wait 0
if
//---------------------------------------------------------------------------
( )
856E: not car 9@ defined
then
if
19@ <> 1
then
19@ = 1
0209: 17@ = random_int_in_ranges 60 121 // min max ,

17@ *= 1000
33@ = 0
else
0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0 //
, ,
if and
15@ == 0 // , .

001D: 33@ > 17@ // (int)
then
actor.StorePos($PLAYER_ACTOR,3@,4@,6@)
if or
3@ < 956.0
4@ < 1281.0 // ,

then
if
3@ >= 0.0 //
then
if
4@ >= 0.0
then
21@ = 1 //
else
21@ = 2
end
else
if
4@ >= 0.0
then
21@ = 4
else
21@ = 3
end
end
if
21@ == 1
then
jump @kvad_1t4
end
if
21@ == 2
then
jump @kvad_2t4
end
if
21@ == 3
then
jump @kvad_3t4
end
if
21@ == 4
then
jump @kvad_4t4
end
:kvad_4t4
//------------------------------------------------------------------------------
. 4
0@ = 515.98
1@ = 1240.23
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 226.84
1@ = 1238.51
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -53.40
1@ = 1296.12
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -347.38
1@ = 1247.21
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -631.83
1@ = 1185.07
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -880.27
1@ = 1040.72
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1030.44
1@ = 931.37
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1240.99
1@ = 778.43
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1342.19
1@ = 704.87
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
if
21@ == 1
then
jump @_6
end
:kvad_3t4
//----------------------------------------------------------------------------
. 3
wait 0
0@ = -1498.99
1@ = 590.90
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1601.06
1@ = 516.83
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1837.42
1@ = 347.58
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1948.42
1@ = 100.00
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1950.42
1@ = -190.28
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1982.39
1@ = -488.08
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1982.55
1@ = -768.10
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1971.89
1@ = -1059.67
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1846.91
1@ = -1309.37
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1629.08
1@ = -1486.73
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1347.52
1@ = -1513.87
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -1053.53
1@ = -1508.42
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -835.57
1@ = -1370.31
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -718.41
1@ = -1128.25
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
if
21@ == 4
then
jump @_6
end
:kvad_2t4
//------------------------------------------------------------------------------
. 2
0@ = -596.65
1@ = -1164.91
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -349.44
1@ = -1223.16
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = -137.48
1@ = -1027.47
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 151.78
1@ = -1026.41
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 438.87
1@ = -1107.08
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 690.56
1@ = -1266.07
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 910.87
1@ = -1464.63
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1097.41
1@ = -1669.80
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1293.72
1@ = -1894.03
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1573.67
1@ = -1957.68
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1857.49
1@ = -1957.93
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2152.76
1@ = -1957.85
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2205.95
1@ = -1686.16
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2288.74
1@ = -1407.02
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2288.95
1@ = -1110.09
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2281.21
1@ = -816.01
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2078.88
1@ = -607.04
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
if
21@ == 3
then
jump @_6
end
:kvad_1t4
//-------------------------------------------------------------------------------
. 1
0@ = 2062.91
1@ = -593.55
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2087.84
1@ = -365.31
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2367.59
1@ = -284.31
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2661.26
1@ = -298.92
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2832.24
1@ = -92.44
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2805.30
1@ = 182.18
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2769.17
1@ = 442.68
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2768.74
1@ = 701.56
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2768.72
1@ = 983.27
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2868.74
1@ = 1239.21
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2860.00
1@ = 1532.27
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2785.01
1@ = 1782.76
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2765.17
1@ = 2066.97
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2563.53
1@ = 2264.64
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2551.77
1@ = 2560.03
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2342.07
1@ = 2694.16
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 2092.40
1@ = 2694.22
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1797.40
1@ = 2682.39
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1510.13
1@ = 2636.25
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 1212.03
1@ = 2637.34
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 957.59
1@ = 2762.66
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 768.57
1@ = 2550.89
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 725.39
1@ = 2288.51
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 736.95
1@ = 2009.09
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 738.76
1@ = 1746.69
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 735.12
1@ = 1461.95
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
0@ = 616.45
1@ = 1297.93
0509: 2@ = distance_between_XY 3@ 4@ and_XY 0@ 1@
2@ > 600.0
jf @create4
if
21@ == 2
then
jump @_6
end
jump @kvad_4t4
:create4
//---------------------------------------------------------------------------------
----
wait 0
0A8D: 15@ = read_memory 0xC38010 size 1 virtual_protect 0
if
15@ == 0 // ( )
then
while true
wait 0
0209: 21@ = random_int_in_ranges 0 16 //
(1-15)
if and
21@ <> 8
21@ <> 9
21@ <> 14 // ,

then
break //
end
end
7@ = -382234 // ,

21@ *= 16 // *

005A: 7@ += 21@ // (int) -

0016: 21@ /= 16
13@ = 6.643 //
- 60 /
// = 6,643 + 6,357 *
while &0(7@,1i) <> 0 //
wait 0
Model.Load(&0(7@,1i)) //
13@ += 6.357 //

7@ += 1
end
038B: load_requested_models
0087: 14@ = 13@ // (float)
14@ += 20.0
// 60 / . .
20
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
while &0(7@,1i) <> 0 // ,

repeat
wait 0
until Model.Available(&0(7@,1i))
7@ += 1
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
7@ += 14 // 14

if and // 19 ,

&0(7@,1i) <> 0 // 14

21@ < 7 // 0-6 ( -


, )
then
22@ = &0(7@,1i) // 14
7@ += 1
&0(7@,1i) = 22@ // 15 (0) 14
7@ += 1
23@ = &0(7@,1i) // 16
( )
&0(7@,1i) = 22@ // 16 ,
14
7@ += 1
20@ = &0(7@,1i) // 17
&0(7@,1i) = 22@
7@ += 1
24@ = &0(7@,1i) // 18
&0(7@,1i) = 22@
7@ += 1
25@ = &0(7@,1i) // 19 ()
&0(7@,1i) = 0
end
06D8: 9@ = create_train_at 0@ 1@ 0.0 type 21@ direction 0
// - 0.0
19@ = 2
31@ = 1
06DC: set_train 9@ acc 16.67 //
-
06DD: set_train 9@ speed 16.67 // 60 /
if
$ONMISSION == 0 //

then
10@ = Marker.CreateAboveCar(9@)
Marker.SetColor(10@, 1)
018B: set_marker 10@ radar_mode 2
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
7@ += 14
if and //
,
&0(7@,1i) <> 0
21@ < 7
then
7@ += 1 // 15
&0(7@,1i) = 0
7@ += 1 // 16
&0(7@,1i) = 23@
7@ += 1 // 17
&0(7@,1i) = 20@
7@ += 1 // 18
&0(7@,1i) = 24@
7@ += 1 // 19
&0(7@,1i) = 25@
end
7@ = -382234
21@ *= 16
005A: 7@ += 21@ // (int)
0016: 21@ /= 16
while &0(7@,1i) <> 0 //

wait 0
Model.Destroy(&0(7@,1i))
7@ += 1
end
end
end
end
end
end
:_6 //
-----------------------------------------------------------------------------------
---------------
wait 0
// , ,
-.
//
-. 13 .
// - 1000 , 600 (
1 )
// ,

// ,

00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
3@ = 1431.0647 // X 1
4@ = 2634.4133 // Y 1
0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@ //
20@ = 1 //

3@ = 2550.8633 //

4@ = 2498.4736
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@ //
if
0025: 2@ > 6@ // (float) //
2 ,
then
0087: 2@ = 6@ // (float) //

20@ = 2 //
end
3@ = 2866.9167
4@ = 1287.7421
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 3
end
3@ = 2791.6074
4@ = 218.3158
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 4
end
3@ = 2284.8879
4@ = -331.9585
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 5
end
3@ = 2287.0544
4@ = -1051.7172
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 6
end
3@ = 1919.104
4@ = -1955.9293
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 7
end
3@ = -21.6351
4@ = -1020.1892
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 8
end
3@ = -1260.7156
4@ = -1515.5342
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 9
end
3@ = -1946.1219
4@ = 134.2469
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 10
end
3@ = -915.0107
4@ = 1012.6142
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 11
end
3@ = 156.3303
4@ = 1265.4232
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 12
end
3@ = 739.1387
4@ = 1994.1334
0509: 6@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
0025: 2@ > 6@ // (float)
then
0087: 2@ = 6@ // (float)
20@ = 13
end
// ,

// , ,

// ( )
if
20@ == 1 //
- 1,
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ > 1483.521// train position -
( )
// , -

// , X X ,
,
//
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000 //
30000 (30 )
//
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if //
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ < 1380.6613// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end //

0@ = 1483.521 // x
1@ = 2629.804 // y
2@ = 9.8203 // z
28@ = 90.0 // z . -
, .
3@ = 1380.6613
4@ = 2638.6968
6@ = 9.8203
29@ = 270.0
jump @lights_1 // ,

end
if
20@ == 2
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ < 2489.8071// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ > 2507.032// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 2545.4644
1@ = 2489.8071
2@ = 9.8203
28@ = 0.0
3@ = 2555.9687
4@ = 2507.032
6@ = 9.8203
29@ = 180.0
jump @lights_1
end
if
20@ == 3
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ < 1226.0918// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ > 1341.5892// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 2861.7556
1@ = 1226.0918
2@ = 9.8203
28@ = 0.0
3@ = 2871.428
4@ = 1341.5892
6@ = 9.8203
29@ = 180.0
jump @lights_1
end
if
20@ == 4
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ < 208.3398// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ > 228.1062// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 2790.0676
1@ = 208.3398
2@ = 10.4456
28@ = 17.1433
3@ = 2793.0969
4@ = 228.1062
6@ = 9.3835
29@ = 197.625
jump @lights_1
end
if
20@ == 5
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if and
0@ < 2274.7961// train position
1@ > -481.795
then
21@ = 18633 // set traffic light color to red
else
if
1@ < -481.795
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if and
1@ > -481.795// train position
0@ > 2294.8137
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 2274.7961
1@ = -332.2822
2@ = 37.0372
28@ = 298.171
3@ = 2294.8137
4@ = -331.2238
6@ = 34.7746
29@ = 122.6793
jump @lights_1
end
if
20@ == 6
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ < -1060.2272// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ > -1042.8805// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 2281.8567
1@ = -1060.2272
2@ = 25.8661
28@ = 0.0
3@ = 2292.123
4@ = -1042.8805
6@ = 25.8325
29@ = 180.0
jump @lights_1
end
if
20@ == 7
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ < 1910.3224// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ > 1928.194// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 1910.3224
1@ = -1950.7422
2@ = 12.5547
28@ = 270.0
3@ = 1928.194
4@ = -1961.0897
6@ = 12.5469
29@ = 90.0
jump @lights_1
end
if
20@ == 8
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ < -30.3923// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ > -12.0904// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = -30.3923
1@ = -1014.865
2@ = 19.3695
28@ = 270.0
3@ = -12.0904
4@ = -1025.2236
6@ = 19.7471
29@ = 90.0
jump @lights_1
end
if
20@ == 9
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ < -1268.5348// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ > -1252.0717// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = -1268.5348
1@ = -1509.6836
2@ = 25.4872
28@ = 265.262
3@ = -1252.0717
4@ = -1521.1899
6@ = 27.1844
29@ = 86.347
jump @lights_1
end
if
20@ == 10
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ > 206.1199// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ < 61.969// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = -1936.4524
1@ = 206.1199
2@ = 24.5516
28@ = 180.0
3@ = -1951.3076
4@ = 61.969
6@ = 24.7109
29@ = 0.0
jump @lights_1
end
if
20@ == 11
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ > -905.1539// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ < -925.2382// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = -905.1539
1@ = 1014.1198
2@ = 33.5781
28@ = 125.4259
3@ = -925.2382
4@ = 1011.7167
6@ = 33.5781
29@ = 305.5475
jump @lights_1
end
if
20@ == 12
then
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
0@ > 163.6387// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
0@ < 150.1235// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 163.6387
1@ = 1257.507
2@ = 21.837
28@ = 69.524
3@ = 150.1235
4@ = 1273.7073
6@ = 21.6341
29@ = 248.1258
jump @lights_1
end
if
056E: car 8@ defined // .
then
car.StorePos(8@,0@,1@,2@)
if
1@ > 2002.6312// train position
then
21@ = 18633 // set traffic light color to red
else
21@ = 18632 // set traffic light color to green
end
else
if
32@ < 30000
then
21@ = 18631 // set traffic light color to yellow
else
21@ = 18632 // set traffic light color to green
end
end
if
056E: car 9@ defined // .
then
car.StorePos(9@,0@,1@,2@)
if
1@ < 1985.515// train position
then
22@ = 18633 // set traffic light color to red
else
22@ = 18632 // set traffic light color to green
end
else
if
33@ < 30000
then
22@ = 18631 // set traffic light color to yellow
else
22@ = 18632 // set traffic light color to green
end
end
0@ = 744.1491
1@ = 2002.6312
2@ = 4.7541
28@ = 180.0
3@ = 733.924
4@ = 1985.515
6@ = 4.3359
29@ = 0.0
:lights_1 //
-----------------------------------------------------------------------------------
-
wait 0
23@ = -382079 // place of traffic lights -

24@ = -382078 // colour of traffic light 1 -
..
if and
003B: 20@ == &0(23@,1i) // (int)
003B: 21@ == &0(24@,1i) // (int)
then
else // .
,
model.Load(21@)
repeat
wait 0
until model.Available(21@)
if
03CA: object 26@ exists //
,
then
0108: destroy_object 26@ //
end
object.Create(26@,21@,0@,1@,2@) //
0177: set_object 26@ Z_angle_to 28@
model.Destroy(21@)
0085: &0(24@,1i) = 21@ // (int) //

end
24@ = -382077 // colour of traffic light 4 -
if and
003B: 20@ == &0(23@,1i) // (int) -
003B: 22@ == &0(24@,1i) // (int)
then
else //

model.Load(22@)
repeat
wait 0
until model.Available(22@)
if
03CA: object 27@ exists
then
0108: destroy_object 27@
end
object.Create(27@,22@,3@,4@,6@)
0177: set_object 27@ Z_angle_to 29@
model.Destroy(22@)
0085: &0(23@,1i) = 20@ // (int) save new parameters in memory
0085: &0(24@,1i) = 22@ // (int)
end //

//---------------------------------------------------------------------------------
----
056E: car 8@ defined //
jf @_7
if and
18@ == 2 //
30@ == 1 //
jf @_7
car.StorePos(8@,3@,4@,6@) //

0509: 2@ = distance_between_XY 1474.9031 2634.6375 and_XY 3@ 4@ //
1474.9031 2634.6375 - -
if and
0025: 12@ > 2@ // (float)
0025: 2@ > 11@ // (float) (
)
3@ < 1474.9031 //
// , -. ,
Y Y ,
// , , -

then
06DD: set_train 8@ speed 0.0 //
18@ = 3 //
jump @_7 //
end
0509: 2@ = distance_between_XY 2866.8667 1246.4919 and_XY 3@ 4@
if and
0025: 12@ > 2@ // (float)
0025: 2@ > 11@ // (float)
4@ > 1246.4919
then
06DD: set_train 8@ speed 0.0
18@ = 3
jump @_7
end
0509: 2@ = distance_between_XY 1696.873 -1955.7689 and_XY 3@ 4@
if and
0025: 12@ > 2@ // (float)
0025: 2@ > 11@ // (float)
3@ > 1696.873
then
06DD: set_train 8@ speed 0.0
18@ = 3
jump @_7
end
0509: 2@ = distance_between_XY 784.326 -1341.736 and_XY 3@ 4@
if and
0025: 12@ > 2@ // (float)
0025: 2@ > 11@ // (float)
3@ > 784.326
then
06DD: set_train 8@ speed 0.0
18@ = 3
jump @_7
end
0509: 2@ = distance_between_XY -1943.7788 183.2991 and_XY 3@ 4@
if and
0025: 12@ > 2@ // (float)
0025: 2@ > 11@ // (float)
4@ < 183.2991
then
06DD: set_train 8@ speed 0.0
18@ = 3
end
:_7

//---------------------------------------------------------------------------------
------------------
056E: car 9@ defined // ,
jf @_8
if and
19@ == 2
31@ == 1
jf @_8
car.StorePos(9@,3@,4@,6@)
0509: 2@ = distance_between_XY 1392.7462 2634.2546 and_XY 3@ 4@
if and
0025: 14@ > 2@ // (float)
0025: 2@ > 13@ // (float)
3@ > 1392.7462
then
06DD: set_train 9@ speed 0.0
19@ = 3
jump @_8
end
0509: 2@ = distance_between_XY 2867.2666 1330.1616 and_XY 3@ 4@
if and
0025: 14@ > 2@ // (float)
0025: 2@ > 13@ // (float)
4@ < 1330.1616
then
06DD: set_train 9@ speed 0.0
19@ = 3
jump @_8
end
0509: 2@ = distance_between_XY 1778.1157 -1955.7063 and_XY 3@ 4@
if and
0025: 14@ > 2@ // (float)
0025: 2@ > 13@ // (float)
3@ < 1778.1157
then
06DD: set_train 9@ speed 0.0
19@ = 3
jump @_8
end
0509: 2@ = distance_between_XY 841.0762 -1393.855 and_XY 3@ 4@
if and
0025: 14@ > 2@ // (float)
0025: 2@ > 13@ // (float)
3@ < 841.0762
then
06DD: set_train 9@ speed 0.0
19@ = 3
jump @_8
end
0509: 2@ = distance_between_XY -1946.4993 81.0843 and_XY 3@ 4@
if and
0025: 14@ > 2@ // (float)
0025: 2@ > 13@ // (float)
4@ > 81.0843
then
06DD: set_train 9@ speed 0.0
19@ = 3
end
:_8
if
//---------------------------------------------------------------------------------
----
056E: car 8@ defined
then
if and
18@ == 3
30@ == 1
01C1: car 8@ stopped
then
18@ = 4
0209: 16@ = random_int_in_ranges 15 21 //

wait 0
16@ *= 1000
32@ = 0
end
end
if
//---------------------------------------------------------------------------------
----
056E: car 9@ defined
then
if and
19@ == 3
31@ == 1
01C1: car 9@ stopped
then
19@ = 4
0209: 17@ = random_int_in_ranges 15 21 //

wait 0
17@ *= 1000
33@ = 0
end
end
if
//---------------------------------------------------------------------------------
------
056E: car 8@ defined
then
if and
18@ == 4
30@ == 1
001D: 32@ > 16@ // (int) -
then
18@ = 2
06DD: set_train 8@ speed 16.67
end
end
if
//---------------------------------------------------------------------------------
----------
056E: car 9@ defined
then
if and
19@ == 4
31@ == 1
001D: 33@ > 17@ // (int) -
then
19@ = 2
06DD: set_train 9@ speed 16.67
end
end
if
//---------------------------------------------------------------------------------
------
056E: car 8@ defined
then
if and
not actor.InCar($PLAYER_ACTOR,8@)
0203: actor $PLAYER_ACTOR near_car 8@ radius 8.0 8.0 flag 0 on_foot
00E1: player 0 pressed_key 15
then
05CB: AS_actor $PLAYER_ACTOR enter_car 8@ as_driver -1 ms
end
end
if
//---------------------------------------------------------------------------------
----------
056E: car 9@ defined
then
if and
not actor.InCar($PLAYER_ACTOR,9@)
0203: actor $PLAYER_ACTOR near_car 9@ radius 8.0 8.0 flag 0 on_foot
00E1: player 0 pressed_key 15
then
05CB: AS_actor $PLAYER_ACTOR enter_car 9@ as_driver -1 ms
end
end

if //------------------------------------------------------------------------------
------
056E: car 8@ defined
then
if and
30@ == 1
actor.InCar($PLAYER_ACTOR,8@)
09AE: actor $PLAYER_ACTOR driving_train // ,

then
30@ = 0
06DD: set_train 8@ speed 0.0 // ,

end
end

if //------------------------------------------------------------------------------
----------
056E: car 9@ defined
then
if and
31@ == 1
actor.InCar($PLAYER_ACTOR,9@)
09AE: actor $PLAYER_ACTOR driving_train // ,

then
31@ = 0
06DD: set_train 9@ speed 0.0 // ,

end
end
if
//---------------------------------------------------------------------------------
-----------------------
056E: car 8@ defined
then
actor.StorePos($PLAYER_ACTOR,0@,1@,6@)
car.StorePos(8@,3@,4@,6@)
0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
2@ > 600.0 // , 600
then
07BD: destroy_train 8@ //
30@ = 0
18@ = 0
end
end
if
//---------------------------------------------------------------------------------
--------------------------
056E: car 9@ defined
then
actor.StorePos($PLAYER_ACTOR,0@,1@,6@)
car.StorePos(9@,3@,4@,6@)
0509: 2@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
if
2@ > 600.0 // , 600
then
07BD: destroy_train 9@ //
31@ = 0
19@ = 0
end
end
if //------------------------------------------------------------------

056E: car 8@ defined
then
7@ = -382076
0085: &0(7@,1i) = 8@ // (int) -

end
if
//---------------------------------------------------------------------

056E: car 9@ defined
then
7@ = -382075
0085: &0(7@,1i) = 9@ // (int) -

end
end