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

MelomanCool

Новичок
Проверенный
65
42
Впринцепе сделать не тяжело, но проверки оппкодом нету? А то упаду откуда-то, получу урон и сработает код, а это мне не нужно!
Мне нужна проверка на урон полученный другим игроком.
Полученный или нанесенный?
 

MelomanCool

Новичок
Проверенный
65
42
Не работает к сожалению :(
Да, в самом деле. Я не проверял его, когда писал. Тогда используй ту функцию с задержкой.

EDIT:
Переписал функцию без задержки:
CLEO:
:GetActorCarStatus
int 1@
int 2@

if 0449: is_char_sitting_in_any_car 0@
then 2@ = 1 // в машине
else 2@ = 0 // не в машине
end

if 1@ < 2@ // не сидел, а спустя кадр - сидит
then 0AB2: ret 2 0 2@
end
if 1@ > 2@ // сидел, а спустя кадр - не сидит
then 0AB2: ret 2 1 2@
end
if 1@ == 2@ // состояние не менялось
then 0AB2: ret 2 -1 2@
end
Вызывается тоже иначе:
CLEO:
0AB1: call_scm_func @GetActorCarStatus 2 $PLAYER_ACTOR 0@ ret 1@ 0@
0@ - любая переменная, но одна и та же в обоих случаях. В ней хранится статус с последнего вызова функции: в машине ты или нет.
В 1@ - вход или выход из машины.
 
Последнее редактирование:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
CLEO:
while true
    wait 0
    if 09DE:   actor $PLAYER_ACTOR entering_car
    then
        while 09DE:   actor $PLAYER_ACTOR entering_car
            wait 0
        end

        // if Actor.Driving($PLAYER_ACTOR)
        chat "Actor enter to car" -1
    end
end
 
  • Нравится
Реакции: MelomanCool

Perojek)0

Известный
205
3
Как можно это реализовать?
p0Qayxr.png
 

Dark_Knight

Me, me and me.
Друг
4,078
2,095
И вот тебе еще функция для проверки с плюсов.
Код:
bool CFunctions::OnMouseHover(float x, float y, float w, float h)
{
    POINT *MousePosition = &SF->getGame()->getCursorPos();
    return(MousePosition->x >= x && MousePosition->x <= x + w && MousePosition->y >= y && MousePosition->y <= y + h);
}
 
  • Нравится
Реакции: Perojek)0

Garrus

Известный
159
20
Можно ли в такой конструкции не использовать задержку "wait 0"? Проверил, работает, игра не крашится, но в других случаях происходит краш, к примеру, until false, вот и задумался, можно ли в данном случае ее не использовать?
Код:
repeat
....
until 0AD6:   end_of_file 0@ reached
 
Последнее редактирование:

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
При until false виснет потому, что цикл бесконечный и обрабатываться не успевает, поэтому и ставят задержку.
 
  • Нравится
Реакции: Garrus

Perojek)0

Известный
205
3
При выполнение одной из частей очень большого основного цикла другая его часть не работает, как это можно исправить? Возможно, не правильно сформулировал, но суть проблемы, вроде, передал)