You are not logged in.
Pages: 1
Здравствуйте. Весь интернет обшарил, для gta 3 нормального примера не нашел, все для SA.
Просто хочу, чтобы в опредленных координатах спаунились тачки.
Вот что смог сделать на основе некоторых постов и строк из MAIN.SCM:
{$CLEO .cs} 014B: 0@ = init_parked_car_generator #CHEETAH -1 -1 0 alarm 100 door_lock 0 0 10000 at -789.106 302.7411 49.0594 angle -30.0 014C: set_parked_car_generator 0@ cars_to_generate_to 101 014B: 1@ = init_parked_car_generator #CHEETAH -1 -1 0 alarm 100 door_lock 0 0 10000 at 1242.8705 -112.5124 14.4031 angle 90.0 014C: set_parked_car_generator 1@ cars_to_generate_to 101 014B: 2@ = init_parked_car_generator #CHEETAH -1 -1 0 alarm 100 door_lock 0 0 10000 at 167.8421 -1254.3971 32.2764 angle 90.0 014C: set_parked_car_generator 2@ cars_to_generate_to 101 05DC: end_custom_thread
Машины спаунятся, все отлично.
Меня напрягает единственная проблема:
если я сохраню игру с этим скриптом, потом удалю скрипт из папки с игрой, потом загружу
сохраненную игру, то машины все равно будут стоят на тех местах.
Т.е. CLEO пишет внутрь сохранения, а я этого не хочу.
Offline
Это не CLEO пишет внутрь сохранения, это особенность работы опкодов 014B. Эти парковки создаются при старте игры и действуют на всем ее протяжении. При сохранении игры парковки в числе прочих объектов - сохраняются.
Если вам нужно создавать машины без сохранения, используйте опкод 00A5
Примеры того, как это сделать, можно найти на форуме, вот сходу пару ссылок
http://sannybuilder.com/forums/viewtopi … 810#p11810
http://sannybuilder.com/forums/viewtopic.php?id=1514
http://sannybuilder.com/forums/viewtopi … 7030#p7030
Offline
Спасибо, 00A5 помогло
Last edited by oleg_berezov (25-07-2013 17:18)
Offline
Теперь другая проблема. Если я покатаюсь на заспауненой скриптом машине, а потом брошу, то она не пропадает, а будет стоят на том же месте, если я сохраню и загружу игру. Т.е. опять пишет в сэйв.
Говорят, надо использовать опкод 01С3 для снятия "уникальности", но с ним машина не появляется:
{$CLEO .cs} wait 0 ms :LOAD 0247: request_model #STINGER 038B: load_requested_models :CREATE wait 0 ms 00D6: if 0248: model #STINGER available 004D: jump_if_false @LOAD 00A5: 0@ = create_car #STINGER at 882.695 -219.8703 3.0283 0175: set_car 0@ z_angle_to 0.0 0249: release_model #STINGER 01C3: remove_references_to_car 0@ // с этой строкой машина не спаунится. Если убрать, то машина будет уникальной 05DC: end_custom_thread
Не уверен, но возможно она просто пропадает до того, как я до нее доехал.
Last edited by oleg_berezov (28-07-2013 08:29)
Offline
@oleg_berezov -
она просто пропадает до того, как я до нее доехал.
да, так и есть.
надо сделать проверку на то, сел ли игрок в машину, если да, то сделать 01С3 и перейти в начало скрипта на создание машины или завершить скрипт.
{$CLEO .cs} :LOAD 0247: request_model #STINGER 038B: load_requested_models :CREATE wait 0 ms 00D6: if 0248: model #STINGER available 004D: jump_if_false @CREATE 00A5: 0@ = create_car #STINGER at 882.695 -219.8703 3.0283 0175: set_car 0@ z_angle_to 0.0 0249: release_model #STINGER while true wait 250 if 0256: player $PLAYER_CHAR defined then if 00DB: actor $PLAYER_ACTOR in_car 0@ then 01C3: remove_references_to_car 0@ break end end end //wait 25000 //jump @LOAD 05DC: end_custom_thread
Last edited by Seemann (28-07-2013 10:07)
Offline
Ваш код не компилировался из-за неправильного синтаксиса, вероятно он для SA.
Player.Defined($PLAYER_CHAR) заменил на 0256: player $PLAYER_CHAR defined
И после двух end-ов добавил еще один.
Проверил, вроде работает. Машины не спаунятся без скрипта и не сохраняются, если бросить их.
Спасибо большое.
Offline
@oleg_berezov - да, писал на ходу, забыл что в GTA3 классов то и нет)) верные замечания. рад, что получилось
Offline
А я в Vice City так делаю, для спавна самолетов MVL:
{$CLEO .cs} 0000: while true wait 0 if 00F5: player $player_char 0 -1525.995 -1343.5867 14.8445 radius 275.0 275.0 275.0 then if or 8248: not model 6091 available 8248: not model 6092 available 8248: not model 6093 available 8248: not model 6094 available then Model.Load(6091) Model.Load(6092) Model.Load(6093) Model.Load(6094) 038B: load_requested_models end 2@ = Car.Create(6091, -1525.995, -1343.5867, 14.8445) //01C3: remove_references_to_car 2@ 3@ = Car.Create(6092, -1550.8831, -1366.282, 14.8445) //01C3: remove_references_to_car 3@ 4@ = Car.Create(6093, -1474.1169, -1332.1602, 14.8687) //01C3: remove_references_to_car 4@ 5@ = Car.Create(6094, -1431.2992, -1323.0088, 14.8456) //01C3: remove_references_to_car 5@ 0249: release_model 6091 0249: release_model 6092 0249: release_model 6093 0249: release_model 6094 while 00F5: player $player_char 0 -1525.995 -1343.5867 14.8445 radius 275.0 275.0 275.0 wait 0 end 01C3: remove_references_to_car 2@ 01C3: remove_references_to_car 3@ 01C3: remove_references_to_car 4@ 01C3: remove_references_to_car 5@ end end
Offline
Seemann, теперь после сохранения и загрузки тачки спаунятся одна на другой слоями
Т.е. нужно удалять уникальность сразу после спауна.
Sergey81, я как раз думал насчет спауна тачек, когда игрок входит в зону определенного радиуса.
Спасибо за пример. Может быть для полной уверенности машины стоит разрушать, когда игрок выходит из радиуса?
Простой спаун авто, а столько головной боли
Last edited by oleg_berezov (28-07-2013 12:48)
Offline
@oleg_berezov - После опкода 01C3: remove_references_to_car, игра сама все сделает, т.к. радиус большой в моём примере.
Last edited by Sergey81 (28-07-2013 12:49)
Offline
Спасибо. Вроде работает, сейчас тестирую.
{$CLEO .cs} 0000: while true wait 0 if 00F5: player $player_char 0 1242.8705 -112.5124 14.4031 radius 175.0 175.0 175.0 then 0002: jump @LOAD :LOAD 0247: request_model #STINGER 038B: load_requested_models :CREATE 00D6: if 0248: model #STINGER available 004D: jump_if_false @CREATE 00A5: 0@ = create_car #STINGER at 1242.8705 -112.5124 14.4031 0175: set_car 0@ z_angle_to 90.0 0249: release_model #STINGER while 00F5: player $player_char 0 1242.8705 -112.5124 14.4031 radius 175.0 175.0 175.0 wait 0 end 01C3: remove_references_to_car 0@ end end
Last edited by oleg_berezov (28-07-2013 14:05)
Offline
Pages: 1