Вопросы по CLEO-скриптингу

hnnssy

Известный
Друг
2,684
2,769
В справке показан пример с двумя переменными, а мне нужно только 15@ увеличивать.

вот:
CLEO:
:plcol
for 15@ = 1 to 15@ step 1000
    if Samp.IsPlayerConnected(15@)
    then
    16@ = Samp.GetActorHandleByPlayerID(15@)
        if 056D: actor 16@ defined
        then
        0619: enable_actor 16@ collision_detection 0
        end
    end
end
0AB2: ret 0
for 15@ = 0 to 999
//
end
 
  • Нравится
Реакции: RusFatal

RusFatal

Новичок
114
10
Столкнулся с еще одной проблемой, GTA очень сильно начинает фризить при старте, причина в этом куске кода:
CLEO:
while true
wait 0
0B50: samp 1@ = object_handle_by_id 321
if
04E5: object 1@ near_point -1024.74 -1245.90 radius 5.0 5.0 5.0 sphere 0
then
say "Hello"
end
end
 

ishi

Известный
493
110
Столкнулся с еще одной проблемой, GTA очень сильно начинает фризить при старте, причина в этом куске кода:
CLEO:
while true
wait 0
0B50: samp 1@ = object_handle_by_id 321
if
04E5: object 1@ near_point -1024.74 -1245.90 radius 5.0 5.0 5.0 sphere 0
then
say "Hello"
end
end
непрерывный перебор же. Можно конечно задержку влепить, но я посоветовал бы юзать 04e5 только если дистанция между тобой и объектом меньше 1000 (обычно радиус стрима это 1к, и дальше объекты не грузит)
upd опкод 0509 если шо
 
Последнее редактирование:
  • Нравится
Реакции: RusFatal

RusFatal

Новичок
114
10
непрерывный перебор же. Можно конечно задержку влепить, но я посоветовал бы юзать 04e5 только если дистанция между тобой и объектом меньше 1000 (обычно радиус стрима это 1к, и дальше объекты не грузит)
upd опкод 0509 если шо
Можешь пример написать, никогда этим опкодом не пользовался.
 

ishi

Известный
493
110
Можешь пример написать, никогда этим опкодом не пользовался.
вставляешь переменную для результата первой, дальше x и y координаты объектов между которыми надо считать дистанцию
В твоём случае:
actor.storepos($PLAYER_ACTOR,30@,29@,28@)
......0509: 31@ -1024.74 -1245.90 30@ 29@
 

Boyenerji

Известный
97
1
Помогите пожалуйста.
Хочу сделать такую вещь: если какой-либо игрок сампа находится в заданным координатах и я его вижу - вывести текст.

У меня постоянно горит надпись "Robit", даже если игрока нет в заданных координатах.

Мой код:
CLEO:
:plcol
for 15@ = 0 to 999
    if Samp.IsPlayerConnected(15@)
    then
    16@ = Samp.GetActorHandleByPlayerID(15@)
        if 056D: actor 16@ defined
        then
         if 02CB:   actor 16@ bounding_sphere_visible
         then
         if 80FE: actor 16@ sphere 0 in_sphere 2171.7832 -2255.4019 13.3039 radius 0.5 0.5 1.0
         then
         0ACD: show_text_highpriority "Robit" time 1000
         end
         end     
        end
    end
end
0AB2: ret 0
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,262
1,754
Помогите пожалуйста.
Хочу сделать такую вещь: если какой-либо игрок сампа находится в заданным координатах и я его вижу - вывести текст.

У меня постоянно горит надпись "Robit", даже если игрока нет в заданных координатах.

Мой код:
CLEO:
:plcol
for 15@ = 0 to 999
    if Samp.IsPlayerConnected(15@)
    then
    16@ = Samp.GetActorHandleByPlayerID(15@)
        if 056D: actor 16@ defined
        then
         if 02CB:   actor 16@ bounding_sphere_visible
         then
         if 80FE: actor 16@ sphere 0 in_sphere 2171.7832 -2255.4019 13.3039 radius 0.5 0.5 1.0
         then
         0ACD: show_text_highpriority "Robit" time 1000
         end
         end   
        end
    end
end
0AB2: ret 0
для начала измени
CLEO:
80FE: ...
на
CLEO:
00FE: ...
 

RusFatal

Новичок
114
10
Есть ли опкод, который берет Id модели по координатам xyz и заносит в переменную?
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Помогите пожалуйста.
Подскажите опкод что бы он различал диалоговые окна
 

RusFatal

Новичок
114
10
Хм....плохо, а можно сделать чтобы хэндл обьекта брался от всех обьектов со значением допустим от 500 до 600?
Что-то вроде:
C++:
0B50: samp 1@ = object_handle_by_id (тут подбор id обьектов от 500 до 600 в зоне стрима с занесением в переменную 1@)