You are not logged in.
я бы еще не поленился добавить
2@ == 72 // COPS SEEN YOU
then
if and
Actor.Driving($PLAYER_ACTOR)
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
84A9: not actor $PLAYER_ACTOR driving_helicopter
not Actor.DrivingPoliceVehicle($PLAYER_ACTOR)
not Actor.DrivingPlane($PLAYER_ACTOR)
then
03C0: 0@ = actor $PLAYER_ACTOR carчтобы полиция не пыталась ловить вас, когда вы пролетаете мимо, или едете на коповской тачке. Кстати, 84C8 включает в себя 84A9 и Actor.DrivingPlane?
Ловите update мода. В архив сложил скрипт, самолет Dimazzza (надеюсь, что он не обидится) и 2 комплекта скинов.
http://westcoast-4-life.msk.ru/Air_Traffic_Mod_20.rar
EDIT: Новый код, короткий и рабочий, я еще добавил код продавца, который стоит на площаке, но после его добавления скрипт перестал работать :)
все равно в этом ничерта не просто разобраться - логика многих вещей отличается от обычного построения main'a.
[strike]Вот попробовал доработать скрипт, а) чтобы панель убиралась, когда появляется сообщение о нехватке денег б) чтобы Карл не убирался из сферы, а просто была проверка после покупки машины, стоит ли он в сфере, и пока он стоит перехода на начало скрипта не происходит. Только чего-то после выбора машины игра вылетает... ;( нашел очень мало инфы по массивам и такому построению if... then... end...[/strike]
а вообще спасибо, что помогаете, в финале раскидаю автосалоны по всему штату в виде отдельных CLEO скриптов.
{$CLEO .cs}
0000: NOP
12@ = 2132.0
13@ = -1149.3
14@ = 24.2
15@ = Marker.CreateIconAndSphere(57, 12@, 13@, 14@)
0@ = 4300
1@ = 6100
2@ = 4200
3@ = 6200
4@ = 6500
5@ = 5100
6@ = 4900
7@ = 500
8@ = 5300
9@ = 7400
10@ = 5300
11@ = 8000
20@ = 547
21@ = 479
22@ = 541
23@ = 482
24@ = 419
25@ = 492
26@ = 566
27@ = 516
28@ = 600
29@ = 475
30@ = 576
31@ = 518
:NONAME_236
wait 0
if and
Player.Defined($PLAYER_CHAR)
00FE: actor $PLAYER_ACTOR 0 2132.0 -1149.3 24.2 radius 200.0 200.0 200.0
jf @NONAME_236
:NONAME_237
wait 0
Model.Load(#HMOST)
038B: load_requested_models
if
Model.Available(#HMOST)
jf @NONAME_237
$AUTO_DEAL1 = Actor.Create(CivMale, #HMOST, 2132.0, -1149.3, 24.2)
:NONAME_240
if
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 2131.9434 2131.9434 24.4603 radius 1.0 1.0 2.0 sphere 0
jf @NONAME_239
jump @NONAME_365
:NONAME_239
if
80FE: not actor $PLAYER_ACTOR 0 2132.0 -1149.3 24.2 radius 200.0 200.0 200.0
jf @NONAME_240
Actor.DestroyWithFade($AUTO_DEAL1)
:NONAME_365
Player.CanMove($PLAYER_CHAR) = False
03E6: remove_text_box
08D4: 16@ = create_panel_with_title 'DEALCAR' position 29.0 165.0 width 60.0 columns 2 interactive 1 background 1 alignment 1
08D6: set_panel 16@ column 0 alignment 1
09DB: set_panel 16@ column 0 width 140
08DB: set_panel 16@ column 0 header 'DUMMY' data 'PRIMO' 'REGINA' 'BULLET' 'BURRITO' 'ESPERAN' 'GREENWO' 'TAHOMA' 'NEBULA' 'PICADOR' 'SABRE' 'TORNADO' 'BUCCANE' // Primo // Regina // Bullet // Burrito // Esperanto // Greenwood // Tahoma // Nebula // Picador // Sabre // Tornado // Buccaneer
08D6: set_panel 16@ column 1 alignment 2
08DB: set_panel 16@ column 1 header 'COST' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' // Cost
18@ = 0
:NONAME_694
08EE: set_panel 16@ column 1 row 18@ text_1number GXT 'DOLLAR' number 0@(18@,12i) // $~1~
18@ += 1
18@ > 11
jf @NONAME_694
090E: set_panel 16@ active_row 0
:NONAME_695
wait 0
if 0
00E1: player 0 pressed_key 15
jf @NONAME_778
08DA: remove_panel 16@
03E6: remove_text_box
jump @NONAME_1120
:NONAME_778
if
00E1: player 0 pressed_key 16
jf @NONAME_695
08D7: 17@ = panel 16@ active_row
0085: 19@ = 0@(17@,12i) // (int)
if
not Player.Money($PLAYER_CHAR) > 19@
jf @NONAME_857
08DA: remove_panel 16@
03E6: remove_text_box
00BC: show_text_highpriority GXT 'IE07' time 3500 flag 1 // ~r~You don't have enough cash!
jump @NONAME_1120
:NONAME_857
19@ *= -1
Player.Money($PLAYER_CHAR) += 19@
:NONAME_904
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
0169: set_fade_color_RGB 0 0 0
fade 0 1500
:NONAME_926
fading
jf @NONAME_946
wait 0
jump @NONAME_926
:NONAME_946
Model.Load(20@(17@,12i))
:NONAME_955
not Model.Available(20@(17@,12i))
jf @NONAME_982
wait 0
jump @NONAME_955
:NONAME_982
wait 100
08DA: remove_panel 16@
03E6: remove_text_box
0395: clear_area 1 at 2126.3237 -1144.1848 24.8206 radius 2.0
Actor.PutAt($PLAYER_ACTOR, 2126.3237, -1144.1848, 24.8206)
Actor.Angle($PLAYER_ACTOR) = 41.6
0395: clear_area 1 at 2123.8 -1140.3 26.5 radius 2.0
19@ = Car.Create(20@(17@,12i), 2123.8, -1140.3, 26.5)
Car.Angle(19@) = 351.0
Camera.SetPosition(2127.2, -1149.4, 26.2, 0, 0, 0)
Camera.PointAt(2123.8, -1140.3, 26.5, 2)
wait 2000
fade 1 1500
:NONAME_1097
fading
jf @NONAME_1117
wait 0
jump @NONAME_1097
:NONAME_1117
wait 1000
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
03BF: set_player $PLAYER_CHAR ignored_by_everyone 0
Car.RemoveReferences(19@)
Model.Destroy(20@(17@,12i))
wait 1000
:NONAME_1120
wait 250
Player.CanMove($PLAYER_CHAR) = True
if 0
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 12@ 13@ 14@ radius 1.5 1.5 1.5 sphere 0
jf @NONAME_236
jump @NONAME_1120
Переименовал scmlog.cleo в scmlog.asi, положил в папку c exe и игра стала вылетать при запуске...
scm500k.asi я вообще убрал... хз.
если в папке cleo лежит, то работает, но ничего не мониторит... показал время запуска, время окончания, а между ничего... да еще и версию 1.04, хотя у меня 1.05 скачанная стоит
да уж массивы для меня штука непонятная...
{$CLEO}
:DEAL1_1
03A4: name_thread 'CHEAP'
0006: 4@ = 2132.0 // integer values
0006: 5@ = -1149.3 // integer values
0006: 6@ = 24.2 // integer values
04CE: $CDICON = create_icon_marker_without_sphere 57 at 4@ 5@ 6@
03BC: 10@ = create_sphere 4@ 5@ 6@ 1.5
:DEAL1_2
wait 250
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @DEAL1_2
00D6: if 0
03EE: player $PLAYER_CHAR controllable
004D: jump_if_false @DEAL1_2
00D6: if 0
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 4@ 5@ 6@ radius 1.5 1.5 1.5 sphere 0
004D: jump_if_false @DEAL1_2
jump @DEAL1_3
:DEAL1_3
var
0@: Array 12 of Integer
20@: Array 12 of Integer
end
0@ = 4300
1@ = 6100
2@ = 4200
3@ = 6200
4@ = 6500
5@ = 5100
6@ = 4900
7@ = 500
8@ = 5300
9@ = 7400
10@ = 5300
11@ = 8000
20@ = #PRIMO
21@ = #REGINA
22@ = #BULLET
23@ = #BURRITO
24@ = #ESPERANT
25@ = #GREENWOO
26@ = #TAHOMA
27@ = #NEBULA
28@ = #PICADOR
29@ = #SABRE
30@ = #TORNADO
31@ = #BUCCANEE
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if
00E1: player 0 pressed_key 4
then
Player.CanMove($PLAYER_CHAR) = False
08D4: 12@ = create_panel_with_title 'DEALCAR' position 29.0 165.0 width 60.0 columns 2 interactive 1 background 1 alignment 1
08D6: set_panel 12@ column 0 alignment 1
09DB: set_panel 12@ column 0 width 140
08DB: set_panel 12@ column 0 header 'DUMMY' data 'PRIMO' 'REGINA' 'BULLET' 'BURRITO' 'ESPERAN' 'GREENWO' 'TAHOMA' 'NEBULA' 'PICADOR' 'SABRE' 'TORNADO' 'BUCCANE'
08D6: set_panel 12@ column 1 alignment 2
08DB: set_panel 12@ column 1 header 'COST' data 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
for 13@ = 0 to 11
08EE: set_panel 12@ column 1 row 13@ text_1number GXT 'DOLLAR' number 0@[13@] // $~1~
end
while true
wait 0
if
00E1: key_pressed 0 15
then
Break
end
if
00E1: key_pressed 0 16
then
08D7: 14@ = panel 12@ active_row
13@ = 0@[14@]
13@ *= -1
Player.Money($PLAYER_CHAR) += 13@
0AA5: call 0x43A0B6 num_params 1 pop 1 20@[14@]
Break
end
end
08DA: remove_panel 12@
03E6: remove_text_box
Player.CanMove($PLAYER_CHAR) = True
end
end
endв этом случае после входа в сферу нужно еще нажимать кнопку Action - не знаю как убрать
Кроме того проверки денег нет, т.е. они отнимаются в нужном объеме, но уходят в минус.
И еще машина появляется врезанной в здание 
2 Seemann:
у меня такая странная проблема, не работает scmlog, CLEO работает прекрасно, но логи не ведутся. Просто в /CLEO/ появляется такой файл scmlog.log с таким содержанием и все...
После запуска игры меняется только время вверху. Версия scm loga 1.0.5, только скачана с сайта.
************ SCM LOG ************
> Logging started: 22:50:31
*********************************
*********************************
> Total opcodes: 0
> Logging finished: 22:50:59
Powered by SCMLog v1.04
*********************************
Очень интересно, но можно ли обойтись без минусов перед названиями?
IMPALA - это машина, которую я добавил (не заменил) в игру
2 flashTrash
Понимаешь, я не могу указывать цену машины в куске скрипта с ее созданием и проверкой цены - этот кусок должен быть единственным для всех машин. Поэтому я должен указать цену машины в лейбле на который можной перейти с помощью 0871: init_jump_table.
А потом с уже загруженной переменной цены мне нужно перейти к куску создания машины и проверки денег.
2 flashTrash и Alexander
Я попробовал оба варианта, машины появляются, но проверка денег не делается - деньги не отнимаются.
{$CLEO}
:DEAL1_1
03A4: name_thread 'CHEAP'
0006: 4@ = 2132.0 // integer values
0006: 5@ = -1149.3 // integer values
0006: 6@ = 24.2 // integer values
04CE: $CDICON = create_icon_marker_without_sphere 57 at 4@ 5@ 6@
03BC: 10@ = create_sphere 4@ 5@ 6@ 1.5
:DEAL1_2
wait 250
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @DEAL1_2
00D6: if 0
03EE: player $PLAYER_CHAR controllable
004D: jump_if_false @DEAL1_2
00D6: if 0
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 4@ 5@ 6@ radius 1.5 1.5 1.5 sphere 0
004D: jump_if_false @DEAL1_2
jump @DEAL1_3
return
:DEAL1_3
01B4: set player $PLAYER_CHAR frozen_state 0 (frozen)
08D4: $deal1_handle = create_panel_with_title 'DEALCAR' position 29.0 165.0 width 60.0 columns 2 interactive 1 background 1 alignment 1
08D6: set_panel $deal1_handle column 0 alignment 1
09DB: set_panel $deal1_handle column 0 width 140
08DB: $deal1_handle 0 'DUMMY' 'PRIMO' 'REGINA' 'IMPALA' 'BURRITO' 'ESPERAN' 'GREENWO' 'TAHOMA' 'NEBULA' 'PICADOR' 'SABRE' 'TORNADO' 'BUCCANE'
08D6: set_panel $deal1_handle column 1 alignment 2
08DB: $deal1_handle 1 'COST' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
10@ = 4300
11@ = 6100
12@ = 4200
13@ = 6200
14@ = 6500
15@ = 5100
16@ = 4900
17@ = 500
18@ = 5300
19@ = 7400
20@ = 5300
21@ = 8000
08EE: set_panel $deal1_handle column 1 row 0 text_1number 'DOLLAR' 10@ // $~1~
08EE: set_panel $deal1_handle column 1 row 1 text_1number 'DOLLAR' 11@ // $~1~
08EE: set_panel $deal1_handle column 1 row 2 text_1number 'DOLLAR' 12@ // $~1~
08EE: set_panel $deal1_handle column 1 row 3 text_1number 'DOLLAR' 13@ // $~1~
08EE: set_panel $deal1_handle column 1 row 4 text_1number 'DOLLAR' 14@ // $~1~
08EE: set_panel $deal1_handle column 1 row 5 text_1number 'DOLLAR' 15@ // $~1~
08EE: set_panel $deal1_handle column 1 row 6 text_1number 'DOLLAR' 16@ // $~1~
08EE: set_panel $deal1_handle column 1 row 7 text_1number 'DOLLAR' 17@ // $~1~
08EE: set_panel $deal1_handle column 1 row 8 text_1number 'DOLLAR' 18@ // $~1~
08EE: set_panel $deal1_handle column 1 row 9 text_1number 'DOLLAR' 19@ // $~1~
08EE: set_panel $deal1_handle column 1 row 10 text_1number 'DOLLAR' 20@ // $~1~
08EE: set_panel $deal1_handle column 1 row 11 text_1number 'DOLLAR' 21@ // $~1~
:DEAL1_4
wait 0
if 0
00E1: key_pressed 0 15
004D: jump_if_false @DEAL1_5
08DA: remove_panel $deal1_handle
03E6: remove_text_box
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
0002: jump @DEAL1_END
:DEAL1_5
if 0
00E1: key_pressed 0 16
004D: jump_if_false @DEAL1_4
08D7: 7@ = panel $deal1_handle active_row
08DA: remove_panel $deal1_handle
03E6: remove_text_box
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
0871: init_jump_table 7@ total_jumps 12 0 @PRIMO jumps 0 @PRIMO 1 @REGINA 2 @IMPALA 3 @BURRITO 4 @ESPERAN 5 @GREENWO 6 @TAHOMA
0872: jump_table_jumps 7 @NEBULA 8 @PICADOR 9 @SABRE 10 @TORNADO 11 @BUCCANE -1 @PRIMO -1 @PRIMO -1 @PRIMO -1 @PRIMO
:PICKERZ2
wait 250
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 (true)
01B4: set_player $PLAYER_CHAR frozen_state 0 (frozen)
0169: set_fade_color 0 0 0
fade 0 1500
0006: 1@ = 2123.8 // integer values
0006: 2@ = -1140.3 // integer values
0006: 3@ = 26.5 // integer values
:PICKERZ3
if
fading
else_jump @PICKERZ4
wait 0
jump @PICKERZ3
:PICKERZ4
return
:PRIMO
wait 100
0085: 10@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:REGINA
wait 100
0085: 11@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:IMPALA
wait 100
0085: 12@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:BURRITO
wait 100
0085: 13@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:ESPERAN
wait 100
0085: 14@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:GREENWO
wait 100
0085: 15@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:TAHOMA
wait 100
0085: 16@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:NEBULA
wait 100
0085: 17@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:PICADOR
wait 100
0085: 18@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:SABRE
wait 100
0085: 19@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:TORNADO
wait 100
0085: 20@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:BUCCANE
wait 100
0085: 21@ = 22@
23@ = 547 // integer values
jump @DEAL1_6
:DEAL1_6
010B: 33@ = player $PLAYER_CHAR money
002D: 33@ >= 22@
004D: jump_if_false @NOMONEY
0085: 33@ = 22@
0012: 33@ *= -1
0109: player $PLAYER_CHAR money += 33@
wait 10
gosub @PICKERZ2
jump @DEAL1_7
:DEAL1_7
Model.Load(23@)
038B: load_requested_models
:DEAL1_8
if
not Model.Available(23@)
004D: jump_if_false @DEAL1_9
wait 0
jump @DEAL1_7
:DEAL1_9
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car 23@ at 1@ 2@ 3@
jump @NEXTRI
:NEXTRI
wait 0
0175: set_car 8@ z_angle_to 351.0
015F: set_camera_position 2127.2 -1149.4 26.2 0 0 0
0160: point_camera 1@ 2@ 3@ 2
wait 2000
fade 1 1500
:TRI_566
if 0
fading
004D: jump_if_false @TRI_576
wait 0
jump @TRI_566
:TRI_576
00A1: put_actor $PLAYER_ACTOR at 2132.3 -1147.4 24.7
0173: set_actor $PLAYER_ACTOR z_angle_to 40.4
wait 1000
02EB: restore_camera_with_jumpcut
0373: set_camera_directly_behind_player
:TRI_583
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0 (false)
01C3: remove_references_to_car 8@
wait 1000
jump @DEAL1_2
:NOMONEY
00BC: text_highpriority 'IE07' 2000 ms 1
wait 3000
jump @DEAL1_2
:DEAL1_END
wait 250
if 0
0102: NOT actor $PLAYER_ACTOR stopped_near_point_on_foot 4@ 5@ 6@ radius 1.5 1.5 1.5 sphere 0
004D: jump_if_false @DEAL1_2
jump @DEAL1_END
Хотел все это оптимизировать но столкнулся с проблемой: не могу понять как я могу заменить количество отнмимаемых денег у игрока на переменную, которая будет браться из таблицы (10@ = 4300)
Если подставить 10@ вместо 4300 игра вылетает...
:DEAL1_6 // selected button 'PRIMO' (0) if 010A: player $PLAYER_CHAR money > 4299 004D: jump_if_false @NOMONEY 0109: player $PLAYER_CHAR money += -4300 wait 10 gosub @PICKERZ2 jump @PRIMO
спасибо! попробую пофиксить на досуге
вот блин, я его фигово написал, т.к. не знаю как лучше - мне просто нужно сделать перед покупкой машины проверку и вычет денег игрока...
Как я могу сделать, чтобы код создания машины был один?
а глобальные переменные поправлю.. спасибо
ну в общем понятно...
я тут хотел в моде поменять многокнопочные комбинации клавиш, но не нашел как можно проверить, что кнопка не нажата
0AB0: key_pressed 143
- просто проверяет, что нажата, что делать с таким исходным скриптом, когда используется проверка NOT?
wait 0 if and 80E1: not key_pressed 0 16 80E1: not key_pressed 0 18 else_jump @NONAME_3_59
Вот решил переделать свой старый код автосалона. Подходишь, выбираешь из меню машину, покупаешь, рядом появляется купленная машина. Скрипт не сложный, но не оптимизированный. По сравнению с Grotti Street Autos не тормозит, т.к. все машины не грузятся разом, а только после покупки. Когда код оптитмизирую раскидаю штук 5 автосалонов по штату с разными по калибру машинами.
EDIT: Поправил весь скрипт, в CLEO работает прекрасно. Добавил вторую колонку с ценой, исправил цены, убрал глобальные переменные.
Impala это моя добавленная тачка в игру, если хотите, замените ее на что-нибудь другое
{$CLEO}
:DEAL1_1
03A4: name_thread 'CHEAP'
0006: 4@ = 2132.0 // integer values
0006: 5@ = -1149.3 // integer values
0006: 6@ = 24.2 // integer values
04CE: $CDICON = create_icon_marker_without_sphere 57 at 4@ 5@ 6@
03BC: 10@ = create_sphere 4@ 5@ 6@ 1.5
:DEAL1_2
wait 250
00D6: if 0
0256: player $PLAYER_CHAR defined
004D: jump_if_false @DEAL1_2
00D6: if 0
03EE: player $PLAYER_CHAR controllable
004D: jump_if_false @DEAL1_2
00D6: if 0
0102: actor $PLAYER_ACTOR stopped_near_point_on_foot 4@ 5@ 6@ radius 1.5 1.5 1.5 sphere 0
004D: jump_if_false @DEAL1_2
jump @DEAL1_3
return
:DEAL1_3
01B4: set player $PLAYER_CHAR frozen_state 0 (frozen)
08D4: $deal1_handle = create_panel_with_title 'DEALCAR' position 29.0 165.0 width 60.0 columns 2 interactive 1 background 1 alignment 1
08D6: set_panel $deal1_handle column 0 alignment 1
09DB: set_panel $deal1_handle column 0 width 140
08DB: $deal1_handle 0 'DUMMY' 'PRIMO' 'REGINA' 'IMPALA' 'BURRITO' 'ESPERAN' 'GREENWO' 'TAHOMA' 'NEBULA' 'PICADOR' 'SABRE' 'TORNADO' 'BUCCANE'
08D6: set_panel $deal1_handle column 1 alignment 2
08DB: $deal1_handle 1 'COST' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY'
10@ = 4300
11@ = 6100
12@ = 4200
13@ = 6200
14@ = 6500
15@ = 5100
16@ = 4900
17@ = 500
18@ = 5300
19@ = 7400
20@ = 5300
21@ = 8000
08EE: set_panel $deal1_handle column 1 row 0 text_1number 'DOLLAR' 10@ // $~1~
08EE: set_panel $deal1_handle column 1 row 1 text_1number 'DOLLAR' 11@ // $~1~
08EE: set_panel $deal1_handle column 1 row 2 text_1number 'DOLLAR' 12@ // $~1~
08EE: set_panel $deal1_handle column 1 row 3 text_1number 'DOLLAR' 13@ // $~1~
08EE: set_panel $deal1_handle column 1 row 4 text_1number 'DOLLAR' 14@ // $~1~
08EE: set_panel $deal1_handle column 1 row 5 text_1number 'DOLLAR' 15@ // $~1~
08EE: set_panel $deal1_handle column 1 row 6 text_1number 'DOLLAR' 16@ // $~1~
08EE: set_panel $deal1_handle column 1 row 7 text_1number 'DOLLAR' 17@ // $~1~
08EE: set_panel $deal1_handle column 1 row 8 text_1number 'DOLLAR' 18@ // $~1~
08EE: set_panel $deal1_handle column 1 row 9 text_1number 'DOLLAR' 19@ // $~1~
08EE: set_panel $deal1_handle column 1 row 10 text_1number 'DOLLAR' 20@ // $~1~
08EE: set_panel $deal1_handle column 1 row 11 text_1number 'DOLLAR' 21@ // $~1~
:DEAL1_4
wait 0
if 0
00E1: key_pressed 0 15
004D: jump_if_false @DEAL1_5
08DA: remove_panel $deal1_handle
03E6: remove_text_box
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
0002: jump @DEAL1_END
:DEAL1_5
if 0
00E1: key_pressed 0 16
004D: jump_if_false @DEAL1_4
08D7: 7@ = panel $deal1_handle active_row
08DA: remove_panel $deal1_handle
03E6: remove_text_box
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
0871: init_jump_table 7@ total_jumps 12 0 @DEAL1_6 jumps 0 @DEAL1_6 1 @DEAL1_7 2 @DEAL1_8 3 @DEAL1_9 4 @DEAL1_10 5 @DEAL1_11 6 @DEAL1_12
0872: jump_table_jumps 7 @DEAL1_13 8 @DEAL1_14 9 @DEAL1_15 10 @DEAL1_16 11 @DEAL1_17 -1 @DEAL1_6 -1 @DEAL1_6 -1 @DEAL1_6 -1 @DEAL1_6
:PICKERZ2
wait 250
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 1 (true)
01B4: set_player $PLAYER_CHAR frozen_state 0 (frozen)
0169: set_fade_color 0 0 0
fade 0 1500
0006: 1@ = 2123.8 // integer values
0006: 2@ = -1140.3 // integer values
0006: 3@ = 26.5 // integer values
:PICKERZ3
if
fading
else_jump @PICKERZ4
wait 0
jump @PICKERZ3
:PICKERZ4
return
:DEAL1_6
// selected button 'PRIMO' (0)
if
010A: player $PLAYER_CHAR money > 4299
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -4300
wait 10
gosub @PICKERZ2
jump @PRIMO
:PRIMO
0247: request_model #PRIMO
:PRIMO2
if 0
8248: NOT model #PRIMO available
004D: jump_if_false @PRIMO3
wait 0
jump @PRIMO
:PRIMO3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #PRIMO at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_7
// selected button 'REGINA' (1)
if 0
010A: player $PLAYER_CHAR money > 6099
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -6100
wait 10
gosub @PICKERZ2
jump @REGINA
:REGINA
0247: request_model #REGINA
:REGINA2
if 0
8248: NOT model #REGINA available
004D: jump_if_false @REGINA3
wait 0
jump @REGINA
:REGINA3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #REGINA at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_8
// selected button 'IMPALA' (2)
00D6: if 0
010A: player $PLAYER_CHAR money > 5099
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -5100
wait 10 ms
gosub @PICKERZ2
jump @BLISTAC
:BLISTAC
0247: request_model #IMPALA
:BLISTAC2
if 0
8248: NOT model #IMPALA available
004D: jump_if_false @BLISTAC3
wait 0
jump @BLISTAC
:BLISTAC3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #IMPALA at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_9
// selected button 'BURRITO' (3)
if 0
010A: player $PLAYER_CHAR money > 4199
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -4200
wait 10
gosub @PICKERZ2
jump @BURR
:BURR
0247: request_model #BURRITO
:BURR2
if 0
8248: NOT model #BURRITO available
004D: jump_if_false @BURR3
wait 0 ms
jump @BURR
:BURR3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #BURRITO at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_10
// selected button 'ESPERAN' (4)
if 0
010A: player $PLAYER_CHAR money > 6499
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -6500
wait 10
gosub @PICKERZ2
jump @ESPER
:ESPER
0247: request_model #ESPERANT
:ESPER2
if 0
8248: NOT model #ESPERANT available
004D: jump_if_false @ESPER3
wait 0
jump @ESPER
:ESPER3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #ESPERANT at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_11
// selected button 'GREENWO' (5)
if 0
010A: player $PLAYER_CHAR money > 5099
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -5100
wait 10
gosub @PICKERZ2
jump @GREEN
:GREEN
0247: request_model #GREENWOO
:GREEN2
if 0
8248: NOT model #GREENWOO available
004D: jump_if_false @GREEN3
wait 0
jump @GREEN
:GREEN3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #GREENWOO at 1@ 2@ 3@
0002: jump @NEXTRI
:DEAL1_12
// selected button 'TAHOMA' (6)
if 0
010A: player $PLAYER_CHAR money > 4899
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -4900
wait 10
gosub @PICKERZ2
jump @TAHOM
:TAHOM
0247: request_model #TAHOMA
:TAHOM2
if 0
8248: NOT model #TAHOMA available
004D: jump_if_false @TAHOM3
wait 0 ms
jump @TAHOM
:TAHOM3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #TAHOMA at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_13
// selected button 'NEBULA' (7)
if 0
010A: player $PLAYER_CHAR money > 499
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -500
wait 10 ms
gosub @PICKERZ2
jump @NEBUL
:NEBUL
0247: request_model #NEBULA
:NEBUL2
if 0
8248: NOT model #NEBULA available
004D: jump_if_false @NEBUL3
wait 0
jump @NEBUL
:NEBUL3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #NEBULA at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_14
// selected button 'PICADOR' (8)
if 0
010A: player $PLAYER_CHAR money > 5299
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -5300
wait 10 ms
gosub @PICKERZ2
jump @PICA
:PICA
0247: request_model #PICADOR
:PICA2
if 0
8248: NOT model #PICADOR available
004D: jump_if_false @PICA3
wait 0
jump @PICA
:PICA3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #PICADOR at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_15
// selected button 'SABRE' (9)
if 0
010A: player $PLAYER_CHAR money > 7399
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -7400
wait 10
gosub @PICKERZ2
jump @SABR
:SABR
0247: request_model #SABRE
:SABR2
if 0
8248: NOT model #SABRE available
004D: jump_if_false @SABR3
wait 0
jump @SABR
:SABR3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #SABRE at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_16
// selected button 'TORNADO' (10)
if 0
010A: player $PLAYER_CHAR money > 5299
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -5300
wait 10
gosub @PICKERZ2
jump @TORN
:TORN
0247: request_model #TORNADO
:TORN2
if 0
8248: NOT model #TORNADO available
004D: jump_if_false @TORN3
wait 0
jump @TORN
:TORN3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #TORNADO at 1@ 2@ 3@
jump @NEXTRI
:DEAL1_17
// selected button 'BUCCANE' (11)
if 0
010A: player $PLAYER_CHAR money > 7999
004D: jump_if_false @NOMONEY
0109: player $PLAYER_CHAR money += -8000
wait 10
gosub @PICKERZ2
jump @BUCC
:BUCC
0247: request_model #BUCCANEE
:BUCC2
if 0
8248: NOT model #BUCCANEE available
004D: jump_if_false @BUCC3
wait 0
jump @BUCC
:BUCC3
0395: clear_area 1 at 1@ 2@ 3@ range 2.0
00A5: 8@ = create_car #BUCCANEE at 1@ 2@ 3@
jump @NEXTRI
:NEXTRI
wait 0
0175: set_car 8@ z_angle_to 351.0
015F: set_camera_position 2127.2 -1149.4 26.2 0 0 0
0160: point_camera 1@ 2@ 3@ 2
wait 2000
fade 1 1500
:TRI_566
if 0
fading
004D: jump_if_false @TRI_576
wait 0
jump @TRI_566
:TRI_576
00A1: put_actor $PLAYER_ACTOR at 2132.3 -1147.4 24.7
0173: set_actor $PLAYER_ACTOR z_angle_to 40.4
0001: wait 1000
02EB: restore_camera_with_jumpcut
0373: set_camera_directly_behind_player
:TRI_583
01B4: set_player $PLAYER_CHAR frozen_state 1 (unfrozen)
03BF: set_player $PLAYER_CHAR ignored_by_everyone_to 0 (false)
01C3: remove_references_to_car 8@
wait 1000
jump @DEAL1_2
:NOMONEY
00BC: text_highpriority 'IE07' 2000 ms 1
wait 3000
jump @DEAL1_2
:DEAL1_END
wait 250
if 0
0102: NOT actor $PLAYER_ACTOR stopped_near_point_on_foot 4@ 5@ 6@ radius 1.5 1.5 1.5 sphere 0
004D: jump_if_false @DEAL1_2
jump @DEAL1_END
компилил скрипты из тех, что у меня стояли в main секции scm'a. Некоторые работают (тушение машины огнетушителем, мой скрипт самолетов, бензин для машин), а некторые нет, например этот - бензоколонки. Игра вылетает при загрузке/начале новой.
Переменная $11055 это машина игрока. (машина игрока привязывается к этой переменной в скрипте самого расхода бензина).
Может скрипт вылетает из-за того, что машина определена в другом скрипте?
Как можно создавать CLEO поток с проверкой wasted_or_busted?
{$CLEO}
:NONAME_1
thread "PETROLST"
wait 0
if
$ONMISSION == 0 // integer values
else_jump @NONAME_1
if and
Actor.Driving($PLAYER_ACTOR)
Actor.Stopped($PLAYER_ACTOR)
else_jump @NONAME_1
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2640.0 1107.0 10.0 radius 5.5 8.7 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2114.0 919.0 11.0 radius 5.5 8.7 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1597.0 2199.0 11.5 radius 5.5 8.7 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2202.0 2473.0 11.0 radius 8.7 5.5 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2146.5 2753.4 11.0 radius 5.5 3.5 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1328.1 2677.3 50.0 radius 2.0 10.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1471.0 1864.5 32.0 radius 8.0 8.0 2.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2410.5 975.5 45.5 radius 7.5 4.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1677.7 415.0 7.3 radius 15.5 15.5 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2242.5 -2563.1 32.0 radius 3.5 3.5 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1382.5 460.0 20.3 radius 4.0 7.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 655.6 -565.0 16.3 radius 4.0 8.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1942.4 -1773.0 13.3 radius 4.0 9.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1605.4 -2714.0 48.3 radius 10.0 13.0 2.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1001.2 -940.3 42.1 radius 10.0 10.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 487.9 -1739.7 10.7 radius 12.0 12.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1024.6 -1023.1 31.7 radius 12.0 12.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2065.6 -1831.7 13.1 radius 12.0 12.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2746.1 -2585.9 0.3 radius 30.0 30.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1632.7 158.6 0.3 radius 10.0 10.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1895.9 1400.4 0.3 radius 15.0 15.0 5.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2953.0 502.5 0.3 radius 30.0 30.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2231.0 2422.0 0.3 radius 60.0 60.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -631.0 1807.5 0.3 radius 30.0 30.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1627.5 572.5 0.3 radius 10.0 10.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2356.0 520.5 0.3 radius 15.0 15.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 722.0 -1499.5 0.3 radius 20.0 20.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1508.0 1301.0 0.3 radius 10.0 9.0 5.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1544.0 -1353.5 330.3 radius 10.0 10.0 4.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1005.0 -934.5 42.3 radius 10.0 9.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2229.0 2327.5 7.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1766.9 -2284.1 26.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2618.0 2721.0 36.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 309.0 1992.3 18.5 radius 30.0 30.0 3.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1360.0 500.0 19.0 radius 80.0 10.0 4.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1680.0 705.0 31.5 radius 10.0 10.0 4.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 2092.7 2414.5 13.3 radius 4.0 9.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -939.7 2642.3 40.0 radius 25.0 25.0 5.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -90.0 -1168.5 13.3 radius 4.0 9.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 615.0 1693.0 13.3 radius 4.0 9.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1163.0 -186.0 48.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1436.8 -2446.6 13.3 radius 4.0 9.0 2.0 sphere 0
else_jump @NONAME_1_2111
if and
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1389.9 1770.1 48.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2656.2 642.3 48.3 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 719.1 -457.5 15.9 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1905.5 284.3 40.7 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -2424.7 1023.1 49.9 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -1420.1 2585.8 55.4 radius 10.0 13.0 2.0 sphere 0
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car -100.3 1115.6 19.7 radius 10.0 13.0 2.0 sphere 0
else_jump @NONAME_1_2111
if
8103: not actor $PLAYER_ACTOR stopped_near_point_in_car 1974.6 2162.6 10.6 radius 10.0 13.0 2.0 sphere 0
else_jump @NONAME_1_2111
if and
Actor.Driving($PLAYER_ACTOR)
Actor.Stopped($PLAYER_ACTOR)
00A4: actor $PLAYER_ACTOR 0 598.0 1708.7 6.5 629.3 1675.8 9.0
else_jump @NONAME_1_2046
jump @NONAME_1_2111
:NONAME_1_2046
if and
Actor.Driving($PLAYER_ACTOR)
Actor.Stopped($PLAYER_ACTOR)
00A4: actor $PLAYER_ACTOR 0 -87.6 -1179.1 2.0 -95.0 -1159.5 5.0
else_jump @NONAME_1
jump @NONAME_1_2111
:NONAME_1_2111
wait 100
if and
not Car.Model($11055) == #BMX
not Car.Model($11055) == #BIKE
not Car.Model($11055) == #MTBIKE
not Car.Model($11055) == #FREIGHT
not Car.Model($11055) == #BAGGAGE
not Car.Model($11055) == #CADDY
not Car.Model($11055) == #SWEEPER
else_jump @NONAME_1
if and
not Car.Model($11055) == #STREAKC
not Car.Model($11055) == #STREAK
not Car.Model($11055) == #TRAM
not Car.Model($11055) == #FREIFLAT
not Car.Model($11055) == #FREIBOX
else_jump @NONAME_1
if
not $11054 > 99 // integer values
else_jump @NONAME_1_2290
if
Player.Money($PLAYER_CHAR) > 1
else_jump @NONAME_1_2344
$11054 += 1 // integer values
Player.Money($PLAYER_CHAR) += -1
jump @NONAME_1
:NONAME_1_2290
wait 0
054C: use_GXT_table 'MAN_2'
00BC: text_highpriority 'MAN2_EF' 1000 ms 1 // ~z~You're not a British tank, so you should be fine.
wait 5000
054C: use_GXT_table 'ZERO2'
jump @NONAME_1
:NONAME_1_2344
wait 0
00BC: text_highpriority 'IE07' 1000 ms 1 // ~r~You don't have enough cash!
wait 5000
054C: use_GXT_table 'ZERO2'
jump @NONAME_1
Гениально, проверил - работает. Нужно потестить, но с showscreensav.cleo сохраняет и загружает без проблем. спасибо!
А у меня проблемы с сохранением игры - игра вылетает при попытке сохраниться обычным способом. Версия 1.0 US, CLEO3, scm - Driver mod 1.3, из CLEO скриптов только scm500k.cleo в папке CLEO. Причем ставлю обратно CLEO2, (больше ничего не меняю) и игра сохраняется без проблем. Похоже это проблема третьей версии...
Кроме сохранения все функции CLEO работают без проблем.
Вообще я дико завален работой, но код отлажен, поиграл на выходных - проблем не обнаружил, скрипт то простой.
Чтобы не лагало и не было аварий, постоянно небе не более одного самолета.
Есть только проблема at400 не хочет перекрашиваться через скрипт загрузки разных винилов. Может это связано с тем, что в конце его названия стоит цифра. Тот же самый скрипт я пробовал на Beagle и он прекрасно грузил рэндомные винилы.
0@ = Car.Create(#AT400, 4@, 5@, 6@) Car.Angle(0@) = 7@ 0209: 1@ = random_int 0 3 06ED: set_car 0@ paintjob 1@
Хех... Заюзай редактор путей: http://ape.aschratt.com
он не берет rrr файлы
есть ощущение, что эти настройки как-то влияют на дальность прорисовки, хотя дымка и дальность ее появления задается в timecyc.dat
pe_leftx 15
pe_topy 15
pe_rightx 15
pe_bottomy 15
во всяком случае при изменении этих настроек возрастает нагрузка на видеокарту.
Да элементарно - прибытие и отправление делать с разных полос.
э-э-э, я не могу этого сделать, т.к. я использую существующие пути самолетов из потока 'planes', которые лежат в файле carrec.img, как открыть такие файлы и добавить что-нить или заменить непонятно - ясно только одно, пути экспортируются из 3ds Max'a
В таком случае, делай полный перелёт (как это было в VC) из одного аэропорта в другой, а не имитацию отлёта с пропадением самолёта в воздуе.
Ты, я смотрю, в мод не врубился
, самолеты взлетают, пролетают полный путь до другого аэропорта и садятся. Пропадают они из-за distance view, который, увы, невозможно исправить кроме как в stream.ini выставить максимальные значения дальности прорисовки.
Кстати, обновил скрипт, теперь самолеты не пропадают после посадки, а стоят на месте (по крайней мере до тех пор, пока не начнет садится или взлетать другой самолет)
@Seemann
пока так и не удалось найти отличия между 06C5 и 05EC. В обоих случаях самолет снимается с пути и падает на землю.
2jayrocc:
Неплохой скрипт.
Минимум ошибок:
1. Пилоты, IMHO, вообще не нужны - меньше проблем с моделями и проверками, тем более их не видно.
еще как видно! даже если пешком рядом с самолетом бегать, а можно на лету заглянуть в испуганные глаза пилотов 
2. Пропущенна команда
05EC: release_car @0 from_path- "снять" самолёт с пути, а уж потом удалять сам путь.
надо поправить
3. Убрать
00A6: destroy_car @0, достаточно
01C3: remove_references_to_car @0, потому, как находясь рядом с приземлившимся самолётом - видно его исчезновение.
4. После посадки желательно отключать звук двигателя.
Нужно уничтожать модель потому что следующий приземляющийся самолет проторанит стоящий на посадочной полосе, пока не знаю как сделать, чтобы самолет пропал не на глазах игрока и чтобы в него никто не врезался
5. Зачем самолётам летать там, где нет игрока в данный момент, либо он в интерьере, либо полёты вообще запрещены в данный момент командой
096A: set_flying_helicopters_enabled 0, иначе могут быть глюки.
В этом одна из фишек кода, если привязать самолеты к игроку, то получится, что нельзя застать самолеты в определенный момент их цикла. Идея мода, чтобы сделать рэндомные полеты самолетов вне зависимости от игрока. А насчет глюков я проверял, все должно работать корректно.
Не совсем понятно назначение трёх циклов с разными задержками...
Не проще ли проверять в воздухе/на земле, двигается/остановился ???
Как узнал номера/направление путей?
Первая задержка это время отсчета взлета с выпущенными шасси, второй полет без шасси, а третий выпуск шасси и посадка.
Не хорошо дважды регистрироваться... Выбери кого из вас двоих оставить, второго видимо придётся кильнуть...
ты не понял, altman я только на GTAF.
спасиб за советы,
да, я двуличен как никогда 
Теперь между тремя мегаполисами San An курсируют самолеты, взлетают, садятся, их можно увидеть в небе 
Всего 7 направлений, из LS самолеты взлетают с двух полос.
Пока это первая версия, пока не добавлены самолеты в аэропорт. Также скрипт поддерживает paintjob'ы самолетов, так что в финальной версии взлетающие и припарованные самолеты будут разных авиакомпаний.
КОД ОБНОВЛЕН
:PLANEZ0
thread 'PLANEZ'
:PLANEINIT_298
wait 0
0209: 3@ = random_int 0 7
0871: init_jump_table 3@ total_jumps 7 0 @PLANEINIT_299 jumps 0 @PLANEINIT_299 1 @PLANEINIT_320 2 @PLANEINIT_341 3 @PLANEINIT_363 4 @PLANEINIT_385 5 @PLANEINIT_407 6 @PLANEINIT_429
:PLANEINIT_299
4@ = 1473.33 // integer values
5@ = -2600.0 // integer values
6@ = 13.5895
7@ = 270
8@ = 41
10@ = 100000
12@ = 1994.5245
13@ = -2487.4561
14@ = 13.0822
jump @PLANEZ1
:PLANEINIT_320
4@ = 1577.298 // integer values
5@ = -2493.749 // integer values
6@ = 13.5895
7@ = 270
8@ = 42
10@ = 120000
12@ = 1994.5245
13@ = -2487.4561
14@ = 13.0822
jump @PLANEZ1
:PLANEINIT_341
4@ = 1577.298 // integer values
5@ = -2493.749 // integer values
6@ = 13.5895
7@ = 270
8@ = 46
10@ = 80000
12@ = 1994.5245
13@ = -2487.4561
14@ = 13.0822
jump @PLANEZ1
:PLANEINIT_363
4@ = 1479.46 // integer values
5@ = 1641.41 // integer values
6@ = 10.4851
7@ = 180
8@ = 43
10@ = 50000
12@ = 1479.9421
13@ = 1697.2932
14@ = 10.3581
jump @PLANEZ1
:PLANEINIT_385
4@ = 1479.46 // integer values
5@ = 1641.41 // integer values
6@ = 10.4851
7@ = 180
8@ = 48
10@ = 90000
12@ = 1479.9421
13@ = 1697.2932
14@ = 10.3581
jump @PLANEZ1
:PLANEINIT_407
4@ = -1586.67 // integer values
5@ = -93.33 // integer values
6@ = 44.0
7@ = 314
8@ = 44
10@ = 120000
12@ = -1541.494
13@ = -47.5275
14@ = 13.6904
jump @PLANEZ1
:PLANEINIT_429
4@ = -1626.0 // integer values
5@ = -137.3 // integer values
6@ = 13.0
7@ = 314
8@ = 49
10@ = 70000
12@ = -1541.494
13@ = -47.5275
14@ = 13.6904
:PLANEZ1
wait 0
Model.Load(#AT400)
Model.Load(#WMYPLT)
038B: load_requested_models
:PLANEZ1_38
wait 0
if and
Model.Available(#AT400)
Model.Available(#WMYPLT)
else_jump @PLANEZ1_38
0395: clear_area 1 at 4@ 5@ 6@ range 40.0
0@ = Car.Create(#AT400, 4@, 5@, 6@)
Car.Angle(0@) = 7@
0209: 1@ = random_int 0 3
06ED: set_car 0@ paintjob 1@
0129: 11@ = create_actor_pedtype 4 model #WMYPLT in_car 0@ driverseat
01C8: 12@ = create_actor 4 #WMYPLT in_car 0@ passenger_seat 0
Model.Destroy(#WMYPLT)
Model.Destroy(#AT400)
07C0: load_path 8@
:PLANEZ1_139
wait 0
if
07C1: path 8@ available
else_jump @PLANEZ1_139
if
not Car.Wrecked(0@)
else_jump @PLANEZ1_324
05EB: assign_vehicle 0@ to_path 8@
32@ = 0 // integer values
:PLANEZ1_195
wait 500
if
not Car.Wrecked(0@)
else_jump @PLANEZ1_324
if
32@ > 30000 // integer values
else_jump @PLANEZ1_195
if
060E: not 0@
else_jump @PLANEZ1_324
08E6: set_plane 0@ landing_gear 1
32@ = 0
:PLANEZZ_305B
wait 500 ms
if
not Car.Wrecked(0@)
else_jump @PLANEZ1_324
if
001D: 32@ > 10@ // integer values
else_jump @PLANEZZ_305B
if
060E: not 0@
else_jump @PLANEZ1_324
08E6: set_plane 0@ landing_gear 0
32@ = 0
:PLANEZZ_305C
wait 500 ms
if
not Car.Wrecked(0@)
else_jump @PLANEZ1_324
0395: clear_area 1 at 12@ 13@ 14@ range 40.0
if
32@ > 60000
else_jump @PLANEZZ_305C
:PLANEZ1_324
wait 100
Car.RemoveReferences(0@)
Actor.RemoveReferences(11@)
06C5: release_car 0@ from_path
0873: release_path 8@
jump @PLANEINIT_298
а, теперь я понял, до этого мне казалось, что у каждой клавиши свой HEX код 
правда все равно не работает 
вот код такой вставляю, а он ошибку при загрузке игры вызывает.
create_thread @FARS0 ------------------------------ :FARS0 0@ = 304550 :FARS wait 0 if and actor.Driving($PLAYER_ACTOR) &0(0@,1i) == 0xFF jf @FARS jump @FARS_ON :FARS_ON wait 500 067F: set_car $Car headlights 2 jf @FARS_ON :FARS_2 wait 0 if and actor.Driving($PLAYER_ACTOR) &0(0@,1i) == 0xFF jf @FARS_2 Jump @FARS_OFF :FARS_OFF wait 500 067F: set_car $Car headlights 0 jf @FARS_OFF jump @FARS
т.е. для keylo - 0xFF, а для keyhi - 0x00FF0000? но в примерах встречается еще 0x00FF00FF. Если честно, я не понимаю как добывать код для конкретной цифры. Или их только 2 варианта?
прошу прощения за неполиткорректный ответ,
но где берутся шестнадцатеричные коды KeyHi и Lo - типа 0x00FF0000?