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