You are not logged in.

GTA III - 300 метров. Правда на украинском) -- http://www.ex.ua/view/666042
Я нашел 80E9: not player $PLAYER_CHAR 0 $CRIMINAL_FOR_VIGILANTE radius 100.0 100.0 - это вроде бы он.
Вот я уже 3-ий день мучаюсь со скриптом зомби.
Сделал как бы но после того как убиваешь 5-ого (второй круг создания) то игра виснет.
Я уже все перепробывал: нифига...
0001: wait 0 ms
:AK_4
03A4: name_thread 'AK' 
0001: wait 0 ms 
0004: $ONMISSION = 1 // integer values 
00D6: if 
0256:   player $PLAYER_ACTOR defined 
004D: jump_if_false @AK_4 
0247: request_model #AK47 
0247: request_model #GANG03 
038B: load_requested_models 
:AK_62
00D6: if or
8248:   not model #AK47 available 
8248:   not model #GANG03 available 
004D: jump_if_false @AK_103 
0001: wait 0 ms 
0002: jump @AK_62 
:AK_103
0001: wait 0 ms 
01B6: set_weather 3 
01EB: set_car_density_to 0.0 
03DE: set_pedestrians_density_multiplier_to 0.0 
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 
01B1: give_player $PLAYER_CHAR weapon 5 ammo 7000 
:AK_145
0009: 1@ += 10.5 // floating-point values 
0009: 2@ += 10.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 12@ position_to 1@ 2@ 3@ 
01CC: actor 12@ kill_player $PLAYER_CHAR 
0009: 1@ += 13.5 // floating-point values 
0009: 2@ += 13.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 13@ position_to 1@ 2@ 3@ 
01CC: actor 13@ kill_player $PLAYER_CHAR 
0009: 1@ += -10.5 // floating-point values 
0009: 2@ += -10.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 14@ position_to 1@ 2@ 3@ 
01CC: actor 14@ kill_player $PLAYER_CHAR 
0009: 1@ += -13.5 // floating-point values 
0009: 2@ += -13.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 15@ position_to 1@ 2@ 3@ 
01CC: actor 15@ kill_player $PLAYER_CHAR 
:AK_401
0001: wait 0 ms 
0050: gosub @AK_640 
0001: wait 0 ms 
0050: gosub @AK_738 
0001: wait 0 ms 
0050: gosub @AK_832 
0001: wait 0 ms 
0050: gosub @AK_926 
0001: wait 0 ms 
00D6: if 
0118:   actor 12@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 13@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 14@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 15@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
0001: wait 0 ms 
00D6: if 
0118:   actor 12@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 13@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 14@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor 15@ dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
00D6: if 
0118:   actor $PLAYER_ACTOR dead 
004D: jump_if_false @AK_401 
0001: wait 0 ms 
0002: jump @AK_1024 
:AK_640
00D6: if 
0118:   actor 12@ dead 
004D: jump_if_false @AK_736 
034F: destroy_actor_with_fade 12@ // The actor fades away like a ghost 
0009: 1@ += 10.5 // floating-point values 
0009: 2@ += 10.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 12@ position_to 1@ 2@ 3@ 
01CC: actor 12@ kill_player $PLAYER_CHAR 
0001: wait 0 ms 
0002: jump @AK_401 
:AK_736
0051: return 
:AK_738
00D6: if 
0118:   actor 13@ dead 
004D: jump_if_false @AK_830 
034F: destroy_actor_with_fade 13@ // The actor fades away like a ghost 
0009: 1@ += 13.5 // floating-point values 
0009: 2@ += 13.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 13@ position_to 1@ 2@ 3@ 
01CC: actor 13@ kill_player $PLAYER_CHAR 
0002: jump @AK_401 
:AK_830
0051: return 
:AK_832
00D6: if 
0118:   actor 14@ dead 
004D: jump_if_false @AK_924 
034F: destroy_actor_with_fade 14@ // The actor fades away like a ghost 
0009: 1@ += -10.5 // floating-point values 
0009: 2@ += -10.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 14@ position_to 1@ 2@ 3@ 
01CC: actor 14@ kill_player $PLAYER_CHAR 
0002: jump @AK_401 
:AK_924
0051: return 
:AK_926
0001: wait 0 ms 
00D6: if 
0118:   actor 15@ dead 
004D: jump_if_false @AK_1022 
034F: destroy_actor_with_fade 15@ // The actor fades away like a ghost 
0009: 1@ += -13.5 // floating-point values 
0009: 2@ += -13.5 // floating-point values 
0009: 3@ += 2.5 // floating-point values 
009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ 3@ 
00A0: store_actor 15@ position_to 1@ 2@ 3@ 
01CC: actor 15@ kill_player $PLAYER_CHAR 
0002: jump @AK_401 
:AK_1022
0051: return 
:AK_1024
0001: wait 0 ms 
0002: jump @AK_145
Записан в AK.cm - тоесть это как бы миссия
Нужен бесконечный цикл создания.Актер умер - тут же появился опять.
Offline
{$CLEO .cm}
03A4: name_thread 'AK' 
if
    $ONMISSION == 0
then
    $ONMISSION = 1
else
    05DC: end_custom_thread
end
    
0247: request_model #AK47
0247: request_model #GANG03
038B: load_requested_models
while true
    if and
        model.Available(#AK47)
        model.Available(#GANG03)
    then
        break
    end
end
repeat 
    wait 0
until player.Defined($PLAYER_CHAR)
01B6: set_weather 3
01EB: set_car_density_to 0.0
03DE: set_pedestrians_density_multiplier_to 0.0
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
01B1: give_player $PLAYER_CHAR weapon 5 ammo 7000
model.Destroy(#AK47)
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
009A: 12@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
00A0: store_actor 12@ position_to 1@ 2@ 3@
01CC: actor 12@ kill_player $PLAYER_CHAR
0009: 1@ += 13.5 // floating-point values
0009: 2@ += 13.5 // floating-point values
009A: 13@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
00A0: store_actor 13@ position_to 1@ 2@ 3@
01CC: actor 13@ kill_player $PLAYER_CHAR
0009: 1@ += -10.5 // floating-point values
0009: 2@ += -10.5 // floating-point values
009A: 14@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
00A0: store_actor 14@ position_to 1@ 2@ 3@
01CC: actor 14@ kill_player $PLAYER_CHAR
0009: 1@ += -13.5 // floating-point values
0009: 2@ += -13.5 // floating-point values
0009: 3@ += 2.5 // floating-point values
009A: 15@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
01CC: actor 15@ kill_player $PLAYER_CHAR
    
///main loop
while true
    wait 0
    if
        not player.Defined($PLAYER_CHAR)
    then
        continue
    end
    05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 12@ 12@
    05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 13@ 13@
    05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 14@ 14@
    05F5: call_scm_func @CheckActorDeadAndRecreate params_count 1 15@ 15@
    if
        actor.Dead($PLAYER_ACTOR)
    then
        break
    end
end
actor.DestroyWithFade(12@)
actor.DestroyWithFade(13@)
actor.DestroyWithFade(14@)
actor.DestroyWithFade(15@)
$ONMISSION = 0
model.Destroy(#GANG03)
05DC: end_custom_thread
    
:CheckActorDeadAndRecreate
if
    actor.Dead(0@)  
then
    actor.DestroyWithFade(0@)
    0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
    0009: 1@ += 10.5 // floating-point values
    0009: 2@ += 10.5 // floating-point values
    009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
    01CC: actor 0@ kill_player $PLAYER_CHAR
end  
05F6: ret 1 0@
					Offline

Еще раз ОГРОМНОЕ СПАСИБО !
Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 05F5: call_scm_func @AK_504 1 12@ 12@ ) а как именно оно работает в этом скрипте ? (я прочитал описание клео на первой странице - но если честно ничего не понял) Обьясни пожалуйста,и желательно более "простым языком"
И вот еще что интересно:
:AK_504
00D6: if 
0118:   actor 0@ dead 
004D: jump_if_false @AK_581 
034F: destroy_actor_with_fade 0@ // The actor fades away like a ghost 
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 
0009: 1@ += 10.5 // floating-point values 
0009: 2@ += 10.5 // floating-point values 
009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0 
01CC: actor 0@ kill_player $PLAYER_CHAR 
Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?
Скрипт работает отлично. Мне просто интересно что вот это.Помоги разобраться пожалуйста.
Offline

Innocent, спасибо, но на украинском не надо. Ведь если ставить рус, это опять замена ехе и возможные проблемы со вторым диском. Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.
Offline
Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.
Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее).
Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?
Идёт обыкновенная проверка переменной. Если у переменной значение нуль - возвращается false и идёт переход на метку 'AK_581'. Если я не так понял - скажи.
Offline

GTASA,какая замена ехе?! Русификатор задевает файлы - Fonts и American.gxt - всё. Никаких замен ехе что за бред...
Почему не устраивает украинский? Если всеравно для моддинга а не для полноценной игры...ну не нравиться ищи сам.Но гта 3 - за 300 метров это редкость.Вообщем чем смог-помог.
Sw[ee]t, если честно то ты меня еще больше запутал.
Там не проверка переменной - там проверка на смерть актера,который создаеться тлько после проверки...
Нужно ждать Aliena - надеюсь он прольёт свет на этот вопрос.
Offline
Еще раз ОГРОМНОЕ СПАСИБО !
Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 05F5: call_scm_func @AK_504 1 12@ 12@ ) а как именно оно работает в этом скрипте ? (я прочитал описание клео на первой странице - но если честно ничего не понял) Обьясни пожалуйста,и желательно более "простым языком"И вот еще что интересно:
:AK_504
00D6: if
0118: actor 0@ dead
004D: jump_if_false @AK_581
034F: destroy_actor_with_fade 0@ // The actor fades away like a ghost
0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@
0009: 1@ += 10.5 // floating-point values
0009: 2@ += 10.5 // floating-point values
009A: 0@ = create_actor 21 #GANG03 at 1@ 2@ -200.0
01CC: actor 0@ kill_player $PLAYER_CHARКак может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?Скрипт работает отлично. Мне просто интересно что вот это.Помоги разобраться пожалуйста.
call_scm_func - это не мое нововведение. Подробное описание есть в справке по CLEO 3.
По поводу конкретно этой функции. Она проверяет, умер ли актер, если это так, актер пересоздается и возвращается хэндл нового актера. Если актер не умирал, ничего не происходит, возвращается то же самое, что и на входе.
t]Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее)
no-cd для gta 3 - это не варез. Там нет никакой защиты. Просто на диске лежит папка audio, используемая игрой. В CLEO я просто подменяю путь к этой папке.
Offline

call_scm_func - это не мое нововведение. Подробное описание есть в справке по CLEO 3
Даже так? Незнал что это есть в мануале.Прочитал, все равно ничего не понятно.Единственное что я понял что он действует как "госуб" в коде выше.
Если я сделаю вот так,то игра виснет.
AK_504
00D6: if or
0118:   actor 0@ dead 
00F2:   actor $PLAYER_ACTOR near_actor 0@ radius 40.0 40.0  100.0
004D: jump_if_false @AK_581
Пытался создать еще один такой "госуб" но только вместо проверки смерти - вставил вот эту проверку на расстояние - игра снова виснет.
Так же пытался вставить их после всех этих "госубов" - результат тот же.
Можете мне ответить куда вставить эту проверку на отдаленность актеров ???
Offline
Суть scm-функции проста - на нужную метку передаётся определённое число параметров, отрабатывается код, расположенный после этой метки, затем осуществляется возврат параметров в то место, откуда был осуществлён вызов (внимательно прочитай описание в справке СБ).
Если при использовании gosub или scm_func зависает игра, то, возможно, следует применить ожидание (wait)
Last edited by Den_spb (02-04-2010 19:02)
Offline
scm-функцию можно сравнить с gosub, но есть отличие. Каждому gosub-у должен соответствовать свой return, т.е. gosub на определённую метку можно использовать в коде один раз.
Почему один? Я использовал несколько раз. Не только в циклах, но и в разных участках ставил госуб на одну и ту же метку. Или я что-то не так понял, что имел в виду?
Offline
Прошу прощения, это я не до конца разобрался с gosub (часто пользоваться им не приходилось). Можно делать gosub на одну и ту же метку из разных мест кода, при этом return следует написать один раз. Предыдущее сообщение исправил.
Offline
I've added the III CLEO and VC CLEO opcodes to the Opcode Database. There is still a little work to be done before you can download vcscm.ini etc.
Unfortunately it isn't too organized at the moment. I never designed the opcode database to expect CLEO for III or VC and due to SA owning most of those opcodes, I couldn't add all the opcode info. Still, you'll soon be able to get updated .ini's for those games, which will be automatically updated all the same. 
Offline

Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.
{$CLEO .cm} // This file was decompiled using scm.ini published by GtaForums.com on 25.11.05 {$VERSION 1.1.0000} {$CLEO .cs} //-------------MAIN--------------- 0001: wait 0 ms 03A4: name_thread 'AK' 0004: $ONMISSION = 1 // integer values 0002: jump @AK_28 :AK_28 0247: request_model #AK47 0247: request_model #SENTINEL 038B: load_requested_models :AK_39 00D6: if and 0248: model #AK47 available 0248: model #SENTINEL available 004D: jump_if_false @AK_66 0002: jump @AK_73 :AK_66 0002: jump @AK_39 :AK_73 0001: wait 0 ms 0256: player $PLAYER_CHAR defined 004D: jump_if_false @AK_73 01B6: set_weather 3 016A: fade 1 0 ms 01EB: set_car_density_to 0.0 01F0: set_max_wanted_level_to 0 03DE: set_pedestrians_density_multiplier_to 0.0 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 01B1: give_player $PLAYER_CHAR weapon 5 ammo 750 00A5: 6@ = create_car #SENTINEL at 815.3125 -326.375 8.0625 0249: release_model #AK47 0009: 1@ += -15.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 9@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 9@ position_to 1@ 2@ 3@ 01CC: actor 9@ kill_player $PLAYER_CHAR 0009: 1@ += -15.5 // floating-point values 0009: 2@ += -15.5 // floating-point values 0376: 10@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 10@ position_to 1@ 2@ 3@ 01CC: actor 10@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += -15.5 // floating-point values 0376: 11@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 11@ position_to 1@ 2@ 3@ 01CC: actor 11@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 12@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 12@ position_to 1@ 2@ 3@ 01CC: actor 12@ kill_player $PLAYER_CHAR 0009: 1@ += -10.5 // floating-point values 0009: 2@ += -10.5 // floating-point values 0376: 13@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 13@ position_to 1@ 2@ 3@ 01CC: actor 13@ kill_player $PLAYER_CHAR 0009: 1@ += -10.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 0376: 14@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 14@ position_to 1@ 2@ 3@ 01CC: actor 14@ kill_player $PLAYER_CHAR 0009: 1@ += 10.5 // floating-point values 0009: 2@ += -10.5 // floating-point values 0376: 15@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 15@ position_to 1@ 2@ 3@ 01CC: actor 15@ kill_player $PLAYER_CHAR 0009: 1@ += 15.5 // floating-point values 0009: 2@ += 10.5 // floating-point values 0376: 16@ = create_random_actor 1@ 2@ -200.0 00A0: store_actor 16@ position_to 1@ 2@ 3@ 01CC: actor 16@ kill_player $PLAYER_CHAR :AK_574 0001: wait 0 ms 00D6: if 8256: not player $PLAYER_CHAR defined 004D: jump_if_false @AK_601 0002: jump @AK_867 :AK_601 0050: gosub @AK_729 0050: gosub @AK_775 0050: gosub @AK_821 05F5: call_scm_func @AK_923 1 9@ 9@ 05F5: call_scm_func @AK_923 1 10@ 10@ 05F5: call_scm_func @AK_923 1 11@ 11@ 05F5: call_scm_func @AK_923 1 12@ 12@ 05F5: call_scm_func @AK_923 1 13@ 13@ 0001: wait 0 ms 00D6: if 0118: actor $PLAYER_ACTOR dead 004D: jump_if_false @AK_867 0002: jump @AK_874 :AK_729 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_773 034F: destroy_actor_with_fade 9@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_773 :AK_773 0051: return :AK_775 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 10@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_819 034F: destroy_actor_with_fade 10@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_819 :AK_819 0051: return :AK_821 00D6: if 00F2: actor $PLAYER_ACTOR near_actor 11@ radius 40.0 40.0 40.0 004D: jump_if_false @AK_865 034F: destroy_actor_with_fade 11@ // The actor fades away like a ghost 0001: wait 0 ms 0002: jump @AK_865 :AK_865 0051: return :AK_867 0002: jump @AK_574 :AK_874 01C2: remove_references_to_actor 9@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 10@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 11@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 12@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 13@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 14@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 15@ // Like turning an actor into a random pedestrian 01C2: remove_references_to_actor 16@ // Like turning an actor into a random pedestrian 0004: $ONMISSION = 0 // integer values 05DC: end_custom_thread :AK_923 0001: wait 0 ms 00D6: if 0118: actor 0@ dead 004D: jump_if_false @AK_1000 01C2: remove_references_to_actor 0@ // Like turning an actor into a random pedestrian 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 0009: 1@ += 10.5 // floating-point values 0009: 2@ += 15.5 // floating-point values 0376: 0@ = create_random_actor 1@ 2@ -200.0 01CC: actor 0@ kill_player $PLAYER_CHAR :AK_1000 05F6: ret 1 0@
Может мне кто нибудь обьяснить как сделать что бы:
Если актер в дали от меня, то он удалялся и создовался заново возле меня,и никуда не исчезал до того времени пока я его не убью или не буду на расстоянии (хотя бы 40 метров)
И что бы эта проверка была постоянной.
И задевала эта проверка не одного а всех ( тоесть 0@ )
Last edited by Innocent (03-04-2010 01:45)
Offline
:AK_39 00D6: if and 0248: model #AK47 available 0248: model #SENTINEL available 004D: jump_if_false @AK_66 0002: jump @AK_73 :AK_66 0002: jump @AK_39 :AK_73 0001: wait 0 ms
К чему такие сложности с метками? И опять же, не забывай про 'wait'.
Offline
Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.
Правильно, ты же сам создаёшь актёра на расстоянии от 10 до 15.5 метров от игрока, а потом делвешь проверку
:AK_729
00D6: if 
00F2:   actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0 
004D: jump_if_false @AK_773 
034F: destroy_actor_with_fade 9@
Надо переделать так
:AK_729
00D6: if 
80F2: not  actor $PLAYER_ACTOR near_actor 9@ radius 40.0 40.0 40.0 
004D: jump_if_false @AK_773 
034F: destroy_actor_with_fade 9@
Offline

Поступил еще проще.И все работает.Спасибо d88.
Всё ясно больше не буду засорять тему
Last edited by Innocent (03-04-2010 13:33)
Offline

Прошу не засорять тему вопросами, напрямую не относящимися к CLEO. Для решения скриптовых задач есть отдельный форум.
Offline

Извините что немного не в тему.
[You must login to view hidden text.]
Last edited by XotaBi4b (16-04-2010 21:24)
GTA SA CrashKiller by MadniX , Virtual_Key_Codes for opcode 0AB0
Offline

Да-а, наконец, решил заняться Клео:
Для начала решил записать в отдельный скрипт код карспунера, работающего у меня в чистом мейне - с основным мейном игра не пошла.
{$CLEO}
while true
:MAIN_138
    wait 50
    if and
        0256:   player $PLAYER_CHAR defined 
        80E0:   not player $PLAYER_CHAR driving 
    then
        if and
        //0AB0:  key_pressed 0x65  //NumPad 5
          00E1: key_pressed 0 16 
          80E1: not key_pressed 0 6
          80E1: not key_pressed 0 8 
          80E1: not key_pressed 0 9 
          80E1: not key_pressed 0 10 
          80E1: not key_pressed 0 11
        then
          005A: 6@ += 4@
if 
  6@ > 158
then
  6@ = 90
end       
if 
  6@ < 90
then
  6@ = 156
end
        if or
            6@ == 124
            6@ == 125
            6@ == 140
            6@ == 141
            6@ == 147
        then
             0002: jump @MAIN_138  //Continue 
        end
02FD: text_2numbers 'CO_ONE' 6@ 4@ 1500 ms 1  // id ~1~ st ~1~
          0054: store_player $PLAYER_CHAR position_to 0@ 1@ 2@ 
          0172: 3@ = actor $PLAYER_ACTOR z_angle
            02F6: 7@ = cosine 3@ 
            02F7: 8@ = sinus 3@ 
            7@ *= -3.0 // floating-point values 
            8@ *= 3.0 // floating-point values 
            005B: 0@ += 7@ // floating-point values 
            005B: 1@ += 8@ // floating-point values 
            2@ -= 0.8125
          3@ -= 270.0
          0247: request_model 6@
          038B: load_requested_models
while 8248:   not model 6@ available 
wait 10 
end
          wait 100
          00A5: 5@ = create_car 6@ at 0@ 1@ 2@
          0175: set_car 5@ z_angle_to 3@
          020A: set_car 5@ door_status_to 1
          041E: set_radio_station 9 0
          0249: release_model 6@
          01C3: remove_references_to_car 5@
                     end
        
          if and
            00E1: key_pressed 0 16 
            00E1: key_pressed 0 6
          then
            4@ += 1 // integer values
            018C: play_sound 94 at 0.0 0.0 0.0
            wait 10
            if 
                4@ > 1 // integer values
            then
                4@ = -1 // integer values
                018C: play_sound 94 at 0.0 0.0 0.0
            end
            02FD: text_2numbers 'CO_ONE' 6@ 4@ 1500 ms 1
          end
    end    
endЛадно решил сделать простейший скрипт: нажимаешь на клавишу - машина перекрашивается в случайные цвета, звучит сигнал
{$CLEO}
while true
    wait 50
    if
        0256:   player $PLAYER_CHAR defined 
    then
        if and
            05EE:  key_pressed 0x65  //NumPad 5
            00E0:   player $PLAYER_CHAR driving
        then
            0099: 1@ = random_integer_0-to-130 
            0099: 2@ = random_integer_0-to-130
             //0229: set_car $EIGHT_CAR color_to 1@ 2@
             //0185:   car $EIGHT_CAR health = 1000 
                018C: play_sound 94 at 0.0 0.0 0.0
        end
    end
end- с основным мейном игра не пошла, но с чистым мейном(и строчки с car $EIGHT_CAR закоментил), содержащий карспаунер, запустилась, но ... с двумя Томми! Томми, которым я управляю (он первый появился и получил М16!), не может прицелиться через правую кнопку, стреляет в двойника и не попадает, двойник тоже начинает двигаться как и мой ГГ, но в другом направлении, когда сажусь в машину, двойник некоторе время двигается (особенно когда я вперед трогаюсь), но когда я теряю его из вида, а потом возвращаюсь - недалеко уходит. Когда своими движениями я заставляю двойника упасть/прыгнуть в воду - он гибнет, с моим ГГ всё нормально - вот такой мультиплеер-кооператив!
Last edited by reute70 (14-04-2010 08:11)
Offline

Да, забыл, Томми в Вайсе, но от этого суть не меняется, что не так в скрипте, мож, какие NOPы нужны?
Offline
@reute70 - а если так:
{$CLEO}
0000:
while true
					Offline

XotaBi4b, что-то ссылка не работает.
Offline