You are not logged in.
Заново переписал и улучшил скрипт.
Теперь в нём используются локальные переменные, и во время езды, камера поднимается выше в зависимости от скорости.
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
:start
thread 'CAM'
0000: NOP
0006: 1@ = 0
:begin
:mode2check
wait 0
if
0039: 1@ == 0
jf @modifier
////////////////////////////////////////////////////////////
// jf @mode2off // use if no speed modification is needed //
////////////////////////////////////////////////////////////
jump @mode2key
:mode2key
wait 0
if
0AB0: key_pressed 0x71
jf @begin
jump @mode2on
:mode2on
Camera.Restore
:modifier
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @mode2on
if
not Actor.Driving($PLAYER_ACTOR)
jf @mode2drive
067C: put_camera_on_actor $PLAYER_ACTOR with_offset 0.0 0.0 30.0 rotation 0.0 6.0 0.0 1.0 2
0006: 1@ = 1
jump @mode2off
:mode2drive
03C0: 2@ = actor $PLAYER_ACTOR car
02E3: 3@ = car 2@ speed
0006: 4@ = 40.0
005B: 4@ += 3@ // (float)
0679: put_camera_on_car 5@ with_offset 0.0 0.0 4@ rotation 0.0 10.0 0.0 0.0 2
0007: 1@ = 1
jump @mode2off
:mode2off
if
00E1: key_pressed 0 13 // change camera button
jf @begin
0006: 1@ = 0
Camera.Restore
jump @beginСобираюсь и дальше усовершенствовать скрипт путём оптимизации движения камеры - при езде на больших и малых скоростях камеру "колбасит" из стороны в сторону - КАК ИЗБАВИТСЯ?
1. нашёл где-то на японско/китайско/корейском сайте скрипт ядерного взрыва
2. скорректировал, улучшил, оптимизировал и дополнил его
3. пытаюсь устранить все нюансы.
{$CLEO .cs}
//-------------MAIN---------------
:start
0000: NOP
:check
wait 0
if and
80DF: not actor $PLAYER_ACTOR driving
Player.Defined($PLAYER_CHAR)
not Actor.Dead($PLAYER_ACTOR)
not wasted_or_busted
0AB0: key_pressed 17
0AB0: key_pressed 78 // ctrl+n
jf @check
:phone
wait 0
Model.Load(#CELLPHONE)
Model.Load(3790)
038B: load_requested_models
if
Model.Available(#CELLPHONE)
Model.Available(3790)
jf @phone
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
03BF: set_player $PLAYER_CHAR ignored_by_everyone 1
0489: set_actor $PLAYER_ACTOR muted 1
wait 5000
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
03BF: set_player $PLAYER_CHAR ignored_by_everyone 0
0489: set_actor $PLAYER_ACTOR muted 0
$532 = 30999
014E: set_timer_to $532 type 1
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
Actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@)
0167: 3@ = create_marker_at 0@ 1@ 2@ flags 0 2
Marker.SetColor(3@, 4)
Marker.SetIconSize(3@, 2)
06D5: 4@ = create_racing_checkpoint_at 0@ 1@ 2@ point_to 0.0 0.0 0.0 type 2 radius 5.0
:abort
wait 0
if and
0AB0: key_pressed 17
0AB0: key_pressed 67 // ctrl+c
jf @timeroff
014F: stop_timer $532
Marker.Disable(3@)
06D6: disable_racing_checkpoint 4@
jump @check
:timeroff
if
not $532 > 10000
jf @abort
0208: 8@ = random_float_in_ranges 0.0 360.0
7@ = 50.0
005B: 7@ += 2@ // (float)
9@ = Object.Create(3790, 0@, 1@, 7@)
Object.SetImmunities(9@, 1, 1, 1, 1, 1)
08D2: object 9@ scale_model 2.5
Object.Angle(9@) = 8@
0400: store_coords_to 5@ 6@ 7@ from_object 9@ with_offset 3000.0 0.0 0.0
Object.PutAt(9@, 5@, 6@, 7@)
0087: 11@ = 5@ // (float)
0087: 12@ = 6@ // (float)
0063: 11@ -= 0@ // (float)
0063: 12@ -= 1@ // (float)
10@ = Marker.CreateAboveObject(9@)
Marker.SetColor(10@, 0)
Marker.SetIconSize(10@, 2)
:incoming
wait 0
if
0471: actor $PLAYER_ACTOR near_object_in_rectangle 9@ radius 100.0 100.0 flag 0
jf @coming
0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 2.5 0.0 0.0
095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1
0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 5.0 0.0 0.0
095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1
0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 7.5 0.0 0.0
095C: create_smoke_at 14@ 15@ 16@ velocity 0.0 0.0 0.0 RGBA 1.0 1.0 1.0 1.0 size 10.0 last_factor 0.1
:coming
0087: 5@ = 11@ // (float)
0087: 6@ = 12@ // (float)
008F: 13@ = integer $532 to_float
13@ /= 10000.0
006B: 5@ *= 13@ // (float)
006B: 6@ *= 13@ // (float)
005B: 5@ += 0@ // (float)
005B: 6@ += 1@ // (float)
Object.PutAt(9@, 5@, 6@, 7@)
if
not $532 > 0
jf @incoming
03CF: load_wav 14401 as 33@
Marker.Disable(3@)
06D6: disable_racing_checkpoint 4@
0750: set_object 9@ visibility 0
Marker.Disable(10@)
0169: set_fade_color 255 255 255
016A: fade 0 () 500 ms
0001: wait 500 ms
set_weather 0
03D1: play_wav 33@
31@ = 0 // height
016A: fade 1 () 2500 ms
020C: create_explosion_with_radius 0 at 0@ 1@ 2@
020C: create_explosion_with_radius 1 at 0@ 1@ 2@
020C: create_explosion_with_radius 2 at 0@ 1@ 2@
020C: create_explosion_with_radius 3 at 0@ 1@ 2@
020C: create_explosion_with_radius 4 at 0@ 1@ 2@
020C: create_explosion_with_radius 5 at 0@ 1@ 2@
020C: create_explosion_with_radius 6 at 0@ 1@ 2@
020C: create_explosion_with_radius 7 at 0@ 1@ 2@
020C: create_explosion_with_radius 8 at 0@ 1@ 2@
020C: create_explosion_with_radius 9 at 0@ 1@ 2@
08EB: create_sparks_at 0@ 1@ 2@ velocity_direction 0.0 0.0 25.0 density 1000
:firstwave
wait 0
020C: create explosion with radius 100 at 0@ 1@ 31@
09E5: create_flash_light_at 0@ 1@ 25.0 RGB_mask 16383 16383 16383 radius 100.0
09E5: create_flash_light_at 0@ 1@ 7@ RGB_mask 16383 16383 16383 radius 100.0
04D5: create_corona_at 0@ 1@ 7@ radius 25.0 type 1 flare 2 RGB 4095 4095 4095
09E5: create_flash_light_at 0@ 1@ 100.0 RGB_mask 16383 16383 16383 radius 1000.0
04D5: create_corona_at 0@ 1@ 100.0 radius 250.0 type 1 flare 2 RGB 4095 4095 4095
31@ += 1
31@ > 30
jf @firstwave
// 0ABA: end_custom_thread_named 'TRAFFIC'
01EB: set_traffic_density_multiplier_to 0.0
03AD: NOP 1
03C7: set_sensitivity_to_crime 0.0
03DE: set_pedestrians_density_multiplier_to 0.0
06C8: enable_riot 1
06D7: enable_train_traffic 0
31@ = 1
:flashlight
wait 0
0093: 30@ = integer 31@ to_float
30@ *= 2.5
09E5: create_flash_light_at 0@ 1@ 7@ RGB_mask 16383 16383 16383 radius 250.0
30@ *= 8.0
if
30@ > 1000.0
jf @coronalight
30@ = 1000.0
:coronalight
04D5: create_corona_at 0@ 1@ 7@ radius 30@ type 1 flare 2 RGB 4095 4095 4095
0093: 30@ = integer 31@ to_float
30@ *= 2.0
if
31@ > 120
jf @secondwave
29@ = 1
:shockwave
27@ = 720.0
30@ = 240.0
0073: 27@ /= 30@ // (float)
0093: 30@ = integer 31@ to_float
30@ *= 2.0
0093: 28@ = integer 29@ to_float
006B: 27@ *= 28@ // (float)
Object.Angle(9@) = 27@
0400: store_coords_to 5@ 6@ 2@ from_object 9@ with_offset 30@ 0.0 0.0
02CE: 2@ = ground_z_at 5@ 6@ 7@
0565: create_soundless_explosion_at 5@ 6@ 2@ type 7
02CF: 18@ = create_fire_at 5@ 6@ 2@ propagation 10 size 500
0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 20.0 0.0 5.0
0063: 14@ -= 0@ // (float)
0063: 15@ -= 1@ // (float)
0063: 16@ -= 7@ // (float)
2@ += 5.0
14@ *= 25.0
15@ *= 25.0
16@ *= 10.0
073E: get_car_in_sphere 5@ 6@ 2@ radius 100.0 model -1 handle_as 27@
if
056E: car 27@ defined
jf @killer1
0325: 20@ = create_car 27@ fire
020B: explode_car 27@ // versionA
020B: explode_car 27@ //
070C: explode_car 27@ // versionB
070C: explode_car 27@ //
08CB: explode_car 27@ shake 0 effect 8 sound 1
020C: create explosion with radius 100 at 5@ 6@ 2@
0948: create_explosion_at 5@ 6@ 2@ type 11 camera_shake 5.0
Car.RemoveReferences(27@)
:killer1
08E5: get_actor_in_sphere 5@ 6@ 2@ radius 100.0 handle_as 27@
if
056D: actor 27@ defined
jf @smoke1
0321: kill_actor 27@
Actor.RemoveReferences(27@)
:smoke1
14@ *= 0.1
15@ *= 0.1
16@ *= 0.1
095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 50.0 last_factor 0.05
09E5: create_flash_light_at 5@ 6@ 2@ RGB_mask 16383 16383 16383 radius 50.0
Camera.Shake(100)
29@ += 1
29@ > 500
jf @shockwave
jump @nnm1
:secondwave
29@ = 1
03D1: play_wav 33@
0223: set_actor $PLAYER_ACTOR health_to 1
0326: 32@ = create_actor $PLAYER_ACTOR fire
:exploder
27@ = 720.0
0073: 27@ /= 30@ // (float)
0093: 28@ = integer 29@ to_float
006B: 27@ *= 28@ // (float)
Object.Angle(9@) = 27@
0400: store_coords_to 5@ 6@ 2@ from_object 9@ with_offset 30@ 0.0 0.0
02CE: 2@ = ground_z_at 5@ 6@ 7@
02CF: 18@ = create_fire_at 5@ 6@ 2@ propagation 3 size 5
02CF: 19@ = create_fire_at 5@ 6@ 2@ propagation 10 size 5
02CF: 21@ = create_fire_at 5@ 6@ 2@ propagation 50 size 100
0400: store_coords_to 14@ 15@ 16@ from_object 9@ with_offset 20.0 0.0 5.0
0063: 14@ -= 0@ // (float)
0063: 15@ -= 1@ // (float)
0063: 16@ -= 7@ // (float)
2@ += 5.0
14@ *= 25.0
15@ *= 25.0
16@ *= 10.0
073E: get_car_in_sphere 5@ 6@ 2@ radius 50.0 model -1 handle_as 27@
if
056E: car 27@ defined
jf @killer2
0325: 20@ = create_car 27@ fire
08CB: explode_car 27@ shake 0 effect 8 sound 1
020B: explode_car 27@ // versionA
020B: explode_car 27@
070C: explode_car 27@ // versionB
070C: explode_car 27@
Car.RemoveReferences(27@)
:killer2
08E5: get_actor_in_sphere 5@ 6@ 2@ radius 50.0 handle_as 27@
if
056D: actor 27@ defined
jf @smoke2
0321: kill_actor 27@
Actor.RemoveReferences(27@)
:smoke2
14@ *= 0.1
15@ *= 0.1
16@ *= 0.1
095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 25.0 last_factor 0.02
020C: create explosion with radius 10 at 5@ 6@ 2@
0565: create_soundless_explosion_at 5@ 6@ 2@ type 1
2@ += 5.0
095C: create_smoke_at 5@ 6@ 2@ velocity 14@ 15@ 16@ RGBA 1.0 1.0 1.0 1.0 size 50.0 last_factor 0.08
099C: jiggle_camera type 1 timelimit 10000.0 intensity 2.0
29@ += 1
001D: 29@ > 31@ // (int)
jf @exploder
:nnm1
31@ += 1
if and
0039: 31@ == 250
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
jf @nnm2
Actor.StorePos($PLAYER_ACTOR, 22@, 23@, 24@)
0169: set_fade_color 255 255 255
016A: fade 0 () 250 ms
0001: wait 250 ms
03D1: play_wav 33@
016A: fade 1 () 1500 ms
0326: 32@ = create_actor $PLAYER_ACTOR fire
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
wait 1
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
wait 10
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
wait 100
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
0AA5: call 0x00439D80 num_params 0 pop 0
000B: 24@ += 2.0
02CF: 25@ = create_fire_at 22@ 23@ 24@ propagation 3 size 5
09E5: create_flash_light_at 22@ 23@ 24@ RGB_mask 16383 16383 16383 radius 10.0
04D5: create_corona_at 22@ 23@ 24@ radius 15.0 type 10 flare 10 RGB 4095 4095 4095
052C: set_player $PLAYER_CHAR drunk_visuals 100
:nnm2
if
31@ > 500
jf @flashlight
Object.Destroy(9@)
wait 1000
0169: set_fade_color 0 0 0
:zone
wait 0
if
80EC: not actor $PLAYER_ACTOR 0 near_point 0@ 1@ radius 1500.0 1500.0
jf @zone
01EB: set_traffic_density_multiplier_to 1.0
03AD: NOP 0
03C7: set_sensitivity_to_crime 1.0
03DE: set_pedestrians_density_multiplier_to 1.0
01B7: release_weather
06C8: enable_riot 0
06D7: enable_train_traffic 1
052C: set_player $PLAYER_CHAR drunk_visuals 0
040D: unload_wav 33@
jump @check
end_thread
jump @check4. Несколько слов о скрипте:
* Вызываем бомбардировщик по CTRL+N
* Отменяем заказ по CTRL+C
* если есть скрипт траффика, раскоментируйте строку для его остановки
* после взрыва в радиусе 1500 автомобили и люди практически не появляются
* если во время взрыва игрок в самолёте - у него отказывает двигатель (загорается)
5. Совершенствование:
* несколько раз приходится прописывать создание взрывов и взрывы машин, ибо зачастую скрипт какие-то из них пропускает
* почему-то не взрываются самолёты и вертолёты (за редким исключением) - ИСПРАВЛЕНО (почти)
* не удаётся качественно добавить огня и дыма после взрыва - КАК РЕАЛИЗОВАТЬ?
* какие ещё можно здесь добавить эффекты визуальные?
Так. Народ, перелапатил всё, удалось наконец-таки взрывать мотоциклы, однако самолёты продолжают "выживать ядерный взрыв". Подскажите, как же взорвать самолёты в радиусе?
:killer 073E: get_car_in_sphere 5@ 6@ 2@ radius 10.0 model -1 handle_as 27@ if 056E: car 27@ defined jf @killer 020B: explode_car 27@ 070C: explode_car 27@ 08CB: explode_car 27@ shake 0 effect 8 sound 1 Car.RemoveReferences(27@)
Добавив 020B и 070C удалось "зацепить" мотоциклы.
А вот самолёты не взрываются.
Может соберешь это все в один пак и выложишь? Что-то захотелось опробовать
Может быть.
Я вообще изначально планировал глобальный конверт делать, только с gtt поездами не смог договориться - они ни в какую не хотят давать разрешения. Так что свои "переделки" буду распространять в виде текстур и клео скриптов. Когда сделаю достаточно - поделюсь. А пока они тут по одиночке будут (если хочешь, могу на мыло скинуть скрипты свои)
Только чур без глобальных переменных
То, что пишу новое - там без глобальных будет. А те, что уже есть - если будет возможность - прооптимизирую. Кстати, оказываетя таймер нельзя создать с локальной - ибо вылетает игра.
А что это у тебя за мод такой стоит для полетов?
Просто стоит тот самый клео скрипт "от первого лица" который я недавно написал (ещё с глобальными переменными, помнишь?)... ну и модель LearJet 45 вместо стандартного shamal. К сожалению, там приборная панель неподвижная - просто текстура - но всё равно вид из кабины привычнее 
А радар "цветной" - это я намутил (саму карту, текстуру радара и текстуру авиагоризонта)... вот...
Ну и, кстати, есть ещё один клео срипт мой (я его выкладывал уже - там про "почувствуй себя пилотом" - он просто сажает игрока в выбранный самолёт и ставит на ВПП)
Готова новая версия программы - IEV v.1.49.
<...>Теперь можно редактировать все параметры <...> в том числе цвет аэроиндикатора, панели высоты.[/u]
В том то всё и дело, что не хочется использовать дополнительные программы. Нужно сделать всё в пределах клео скриптов.
Написал скрипт для того, чтобы находясь в самолёте видеть состояние шасси. Пригодится для тех, кто любит летать от первого лица.
// gear mode indicator
// by AlphaOmega
{$CLEO .cs}
//-------------MAIN---------------
:start
0000: NOP
wait 100
0390: load_txd_dictionary "GEAR"
038F: load_texture "GEAR_DN" as 101
038F: load_texture "GEAR_OK" as 202
038F: load_texture "GEAR_UP" as 303
:check
wait 0
if
04C8: actor $PLAYER_ACTOR driving_flying_vehicle
jf @check
03C0: 0@ = actor $PLAYER_ACTOR car
091F: get_plane 0@ landing_gear_status_to 1@
03F0: enable_text_draw 0
:changing
if
00E1: key_pressed 0 19
jf @gearUp
03F0: enable_text_draw 1
3@ = 1
038D: draw_texture 202 position 25.0 362.0 size 40.0 40.0 RGBA 255 255 255 255
:gearDo
000A: 3@ += 1
wait 10
038D: draw_texture 202 position 25.0 362.0 size 40.0 40.0 RGBA 255 255 255 255
if
0029: 3@ >= 100
jf @gearDo
jump @check
:gearUp
if
0039: 1@ == 0
jf @gearDn
03F0: enable_text_draw 1
038D: draw_texture 101 position 25.0 362.0 size 40.0 40.0 RGBA 255 255 255 255
jump @check
:gearDn
if
8039: not 1@ == 0
jf @check
03F0: enable_text_draw 1
038D: draw_texture 303 position 25.0 362.0 size 40.0 40.0 RGBA 255 255 255 255
jump @checkTXD файл скачать тут: http://stream.ifolder.ru/6971013 (положить в models/txd)
Индикатор появляется сверху уровня высоты и выглядит как на истребителях...
согласен с Wom только в том, что следует "укрепить защиты" базы. Чтобы действительно там ходили солдаты и были на вышках. Ну и что, при входе на базу снайпера сразу начинали стрелять 
Так. Возникла следующая проблема при изменении интерфейса.
Вообщем так:
1. как поменять цвет угла атаки (на скриншоте зелёная часть радара - грубо говоря, угол наклона самолёта по оси нос-хвост)
2. как сделать, чтобы радар был белым? текстуры я сделал белые (см.ниже), но он всё равно отображается чёрным 
Кто знает как исправить?
Может есть какие опкоды по этим двум параметрам?
@AlphaOmega - надпись слегка уменьшил и сделал ее масштабируемой (т.е. теперь она на всех разрешениях выглядит одинаково). Совсем мелкой ее сделать тоже нельзя, ибо на маленьких игровых разрешениях (640x480, 800x600) надпись становится нечитабельной.
Спасибо. Буду ждать следующей версии чтобы проверить.
Щас ты не прав, поезда не только от них есть это раз...
<...>
мод в комерческих целях использован не бует...
1. А где ещё есть поезда российские?
2. даже если мод НЕ будет в коммерческих целях использоваться - всё равно gtt`шники не дают прав на использование их моделей в глобальных модификациях
а зря....
А есть ли у клео возможность сохранять в файл (текстовый например) параметры, а потом их оттуда читать?
AlphaOmega wrote:Кстати о новой версии - а можно ли убрать снизу надпись версии скрипта и кол-ва загруженных скриптов?
Убрать нельзя. А чем она мешает?
В принципе ни чем, только как-то крупно она. Может просто уменшьить? до размеров системного 6 - 8 пунктов. А то выглядит как 12-14 - крупновато. Бросается в глаза (я просто люблю чтобы было эстетично и красиво).
Нет блин надо чтоб по координатам! Например:
X=2548,018
Y=-1284,358
Z=1060,984
это дом Большого Смоука, там где он прятался
Блин, ну неужели нельзя вместо Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 4@) поставить координаты где нужно?
0ABA: 'TRAFFIC'
Всё. Теперь работает. Прична неработоспособности была (как оказалось) в старой версии клео 
Кстати о новой версии - а можно ли убрать снизу надпись версии скрипта и кол-ва загруженных скриптов?
Видел я подобную модификацию - criminal russia называется. Честно говоря, русский парк там уж очень скуден и слишком разбросан по "времени". Единственное что там хорошее было, это икарус, лиаз и пазик. Ну и прикольно волга для такси. А вообще играть в сан андреас с только русскими тачками как-то "не тянет". Вот если бы ты ещё и мир заменил, на какую-нибудь часть СССР, где и соответствующая музыка и пионЭры ходят - вот это было бы лучше.
Кстати, ты получил разрешение авторов моделей на распространение их в твоей глобальной модификации?
Просто если ты собрался заменять поезда на русские, то хочу тебя огорчить - единственные российские поезда для гта создаются командой gtt, а они ни при каких обстоятельствах не дадут разрешения использовать их модели в глобальной модификации 
Напишите пример скрипта, который при нажатии на 1 телепортирует в определенные координаты. (хочу написать скрипт перемещения по интерьерам)
Вот скрипт, который при нажатии на 1 телепортирует туда, где установлен маркер (на карте)
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
:NONAME_2
wait 0
if and
Player.Defined($PLAYER_CHAR)
$ONMISSION == 0
not Actor.Driving($PLAYER_ACTOR)
else_jump @NONAME_2
077E: get_active_interior_to 29@
if
29@ == 0
else_jump @NONAME_2
if and
0AB0: key_pressed 0x31
0AB6: store_target_marker_coords_to 0@ 1@ 2@ // IF and SET
else_jump @NONAME_174
fade 0 500
wait 750
04E4: unknown_refresh_game_renderer_at 0@ 1@
Camera.SetAtPos(0@, 1@, 2@)
02CE: 4@ = ground_z_at 0@ 1@ 2@
Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 4@)
:NONAME_142
wait 0
if
Player.Controllable($PLAYER_CHAR)
else_jump @NONAME_142
wait 500
fade 1 500
:NONAME_174
jump @NONAME_2
мдя....
странно всё это - на работе тестировал - поезд создавался именно на том, пути, на котором стоял игрок, а сегодня он как-то не так работает. Решил даже скрипт создать по появлению поезда по ALT+T там, где стоит игрок, но, оказалось, он не создаётся там, а только на одном из заранее "известных" путей... вообщем даже и не знаю как же всё-таки заставить поезд появиться ТОЧНО на том, пути, где ему указано......
Кстати, приаттачиваю скриншоты двух поездов которые у меня стоят (из gtt) - на фотке с электропоездом можно увидеть, что после головного вагона стоит реверстный, а уж только потом пассажирские... а в третьем рисунке каким получается поезд если собрать по одному вагону каждого в списке по очереди
Хороший скрипт! Мну нравится!
Это хорошо! хоть кому-то мой труд оказался полезным :-)
Может сделать вариант скрипта со стандартными поездами(и именами в fxt файле. просто не у всех стоят поезда, да и blade на поезд не очень тянет)?
А ты просто вместо тех поездов (у меня они там ниже подписаны) при создании меню поставь 'DUMMY' - пункты будут пустыми и курсор будет проскакивать сквозь них. Ну а в fxt сам пропиши названия как угодно тебе.
Перед созданием поезда надо очищать зону от других поездов. А то я пришел на вокзал, приехал поезд, я нажал ctrl+t, собрал поезд и.. так пять раз пока не понял, что приехавший стандартный поезд закрывает собой тот, что я собрал. Надеюсь понятно объяснил.=)
Да, к сожалению поезд так уничтожить нельзя. Во всяком случае соответствующего опкода не нашёл. А релиз трейн это только чтобы не запоминался твой "набор" вагонов..
Тоесть просто поставить на одну из координат того пути и он сам поедет по тому же пути?
Ну, судя по всему так - ибо в коде создания поезда прописывается лишь координаты, номер поезда и направление (по часовой или против). Так что ставь туда, где есть рельсы и он будет там... правдо в конце пути может вести себя криво... например, проехать сквозь себя 
Yarik, если мне память не изменяет, то вроде бы должен быть опкод ped_hit_by_a_car или что-то типа того.....
кстати, а можно делать так:
сет плеер.хэлс = 0@ + 23
ну типа математическое действие в самом опгоде присвоения? или обязательно сначало посчитать, а потом присваивать?
есть такой вопрос:
как написать такой скрипт, который отвечал бы за следующие:
если CJ`ея сбивает машина на скорости от 40 до 60 - у него вычитается 75% энергии, а если больше 60-ти - то он считается wasted (только чтобы при этом после падения он не вставал)
Маршрут
Для этого нужно поезд создать на той рельсе (пути), которая обычно не используется - с тупиком. Тогда поезд встанет на кривой маршрут и полетит по воздуху над аэропортом
Например пистолет пустынный орел отнимает примерно 30 хп, а будет отнимать 10.
А может лучше больше к реальности? если попали, так под 50-75 отнимается?...
А вообще, мощность оружия выставляется в weapons.dat
исключен «кривой» маршрут harm/docks, летающий в воздухе
так его вообще подключить?
Кого подключить? маршрут или мой скрипт?