#26 31-03-2010 05:12

d88
Registered: 15-12-2009
Posts: 254
Website

Re: CLEO для GTA III

Alien wrote:

00F2. В поиске опкодов его нет. Смотри в SCM.ini.

00F2=5,  actor %1d% near_actor %2d% radius %3d% %4d% %5h%

Как же это в поиске нет всех опкодов? :wow: Это можно исправить?

Last edited by d88 (31-03-2010 05:13)

Offline

#27 31-03-2010 15:38

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

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

#28 31-03-2010 17:44

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO для GTA III

{$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

#29 31-03-2010 22:24

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

Еще раз ОГРОМНОЕ СПАСИБО !

Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 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

#30 01-04-2010 01:51

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO для GTA III

Innocent, спасибо, но на украинском не надо. Ведь если ставить рус, это опять замена ехе и возможные проблемы со вторым диском. Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.

Offline

#31 01-04-2010 12:20

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: CLEO для GTA III

GTASA wrote:

Лучше дайте, пожалуйста, ссылки на gta3 рус или англ, главное, чтобы второй диск не просило. Извините за флуд.

Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее).

Innocent wrote:

Как может работать эта проверка на смерть - если актер даже не создан (он создаеться ниже проверки)
и что это за актер? Я так понял это и есть те последующие актеры.
А актеры 12 - 13 - 14 - 15 --- создаються только в первом ?

Идёт обыкновенная проверка переменной. Если у переменной значение нуль - возвращается false и идёт переход на метку 'AK_581'. Если я не так понял - скажи.

Offline

#32 01-04-2010 12:54

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

GTASA,какая замена ехе?! Русификатор задевает файлы - Fonts и American.gxt - всё. Никаких замен ехе что за бред...
Почему не устраивает украинский? Если всеравно для моддинга а не для полноценной игры...ну не нравиться ищи сам.Но гта 3 - за 300 метров это редкость.Вообщем чем смог-помог.

Sw[ee]t, если честно то ты меня еще больше запутал.
Там не проверка переменной - там проверка на смерть актера,который создаеться тлько после проверки...
Нужно ждать Aliena - надеюсь он прольёт свет на этот вопрос.

Offline

#33 01-04-2010 17:52

Alien
Registered: 12-10-2008
Posts: 564

Re: CLEO для GTA III

Innocent wrote:

Еще раз ОГРОМНОЕ СПАСИБО !

Все работает.
А теперь если не сложно можешь обьяснить, ты применил своё нововведение ( 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.

По поводу конкретно этой функции. Она проверяет, умер ли актер, если это так, актер пересоздается и возвращается хэндл нового актера. Если актер не умирал, ничего не происходит, возвращается то же самое, что и на входе.

Sw[ee wrote:

t]Ну вряд-ли кто-то будет постить ссылки на варез (об этом уже упоминалось ранее)

no-cd для gta 3  - это не варез. Там нет никакой защиты. Просто на диске лежит папка audio, используемая игрой. В CLEO я просто подменяю путь к этой папке.

Offline

#34 01-04-2010 18:44

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

Alien wrote:

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

#35 01-04-2010 19:02

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: CLEO для GTA III

Суть scm-функции проста - на нужную метку передаётся определённое число параметров, отрабатывается код, расположенный после этой метки, затем осуществляется возврат параметров в то место, откуда был осуществлён вызов (внимательно прочитай описание в справке СБ).
Если при использовании gosub или scm_func зависает игра, то, возможно, следует применить ожидание (wait)

Last edited by Den_spb (02-04-2010 19:02)

Offline

#36 01-04-2010 19:15

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: CLEO для GTA III

это как функции в сях/дельфи и проч.))))


GIMS developer

Offline

#37 02-04-2010 09:30

d88
Registered: 15-12-2009
Posts: 254
Website

Re: CLEO для GTA III

Den_spb wrote:

scm-функцию можно сравнить с gosub, но есть отличие. Каждому gosub-у должен соответствовать свой return, т.е. gosub на определённую метку можно использовать в коде один раз.

Почему один? Я использовал несколько раз. Не только в циклах, но и в разных участках ставил госуб на одну и ту же метку. Или я что-то не так понял, что имел в виду?

Offline

#38 02-04-2010 19:04

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: CLEO для GTA III

Прошу прощения, это я не до конца разобрался с gosub (часто пользоваться им не приходилось). Можно делать gosub на одну и ту же метку из разных мест кода, при этом return следует написать один раз. Предыдущее сообщение исправил.

Offline

#39 02-04-2010 21:03

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: CLEO для GTA III

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. smile

Offline

#40 03-04-2010 01:44

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.

Innocent wrote:
{$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

#41 03-04-2010 09:19

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: CLEO для GTA III

Innocent wrote:
: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

#42 03-04-2010 10:37

d88
Registered: 15-12-2009
Posts: 254
Website

Re: CLEO для GTA III

Innocent wrote:

Вот я добился того что бы актеры появлялись по всюду за мной.Но как только они появляються то сразу исчезают. Сразу же.

Правильно, ты же сам создаёшь актёра на расстоянии от 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

#43 03-04-2010 11:38

Innocent
From: Main SCM
Registered: 22-03-2010
Posts: 20

Re: CLEO для GTA III

Поступил еще проще.И все работает.Спасибо d88.

Всё ясно больше не буду засорять тему

Last edited by Innocent (03-04-2010 13:33)

Offline

#44 03-04-2010 12:58

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: CLEO для GTA III

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

Offline

#45 06-04-2010 17:40

XotaBi4b
From: Харьков
Registered: 13-09-2008
Posts: 87

Re: CLEO для GTA III

Извините что немного не в тему.

[You must login to view hidden text.]

Last edited by XotaBi4b (16-04-2010 21:24)

Offline

#46 14-04-2010 08:03

reute70
From: Средняя Волга
Registered: 22-08-2009
Posts: 182

Re: CLEO для GTA III

Да-а, наконец, решил заняться Клео:
Для начала решил записать в отдельный скрипт код карспунера, работающего у меня в чистом мейне - с основным мейном игра не пошла.

{$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

#47 14-04-2010 08:41

d88
Registered: 15-12-2009
Posts: 254
Website

Re: CLEO для GTA III

но ... с двумя Томми!

Его зовут Клод, а не Томми.
У меня подобный глюк и в СА был, но можно это и специально сделать.

Offline

#48 14-04-2010 08:44

reute70
From: Средняя Волга
Registered: 22-08-2009
Posts: 182

Re: CLEO для GTA III

Да, забыл, Томми в Вайсе, но от этого суть не меняется, что не так в скрипте, мож, какие NOPы нужны?

Offline

#49 14-04-2010 09:11

Sanchez
Registered: 18-08-2006
Posts: 280

Re: CLEO для GTA III

@reute70 - а если так:

{$CLEO}
0000:
while true

Offline

#50 14-04-2010 10:06

GTASA
Registered: 13-09-2008
Posts: 476

Re: CLEO для GTA III

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

Offline

Board footer

Powered by FluxBB