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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
• Мне кажется лучше сделать так, т.к у каждого сервера свой /slap:
По команде /zsave в переменную сохраняется твоя координата Z. Сделать проверку: Если твоя нынешняя координата Z не равна координате из переменной, то ... (твое действие).

Надеюсь понятно объяснил. Код написать не смогу, т.к я фигово знаю CLEO, если напишу код, 100% с ошибками ;)
Можно поставить хук на SetPlayerPos. При слэпе, координата Z возрастает на 5-10(примерно в диапазоне 5-15), если такой диапазон появляется при вызове функции, то значит, что админ сделал слэп.
 

Enjoy

Новичок
Проверенный
164
11
Да, именно он не работает.
Ну он не может не работать. Ты ведь все правильно делаешь?
Получаешь ид пикапа по его хэндлу, а потом его поднимаешь, так?

Код:
0B53: samp 1@ = pickup_id_by_handle 0@
0BD1: samp send_picked_up_pickup 1@
 

Rom_Black

Новичок
44
0
Ну он не может не работать. Ты ведь все правильно делаешь?
Получаешь ид пикапа по его хэндлу, а потом его поднимаешь, так?

Код:
0B53: samp 1@ = pickup_id_by_handle 0@
0BD1: samp send_picked_up_pickup 1@
Да нет, я сам просто ошибся, оказывается id пикапа каждый раз меняются.
Теперь я не знаю как быть. Мне нужно что бы был только один id пикапа.
Иначе как узнавать id его?
 

Enjoy

Новичок
Проверенный
164
11
Да нет, я сам просто ошибся, оказывается id пикапа каждый раз меняются.
Теперь я не знаю как быть. Мне нужно что бы был только один id пикапа.
Иначе как узнавать id его?
Если не наебываю, то в этой статье есть алгоритм для парса пикапов. http://blasthack.net/wiki/tutorials:получение_всех_объектов
На готово делать не буду, ибо налеплю опять из говна что-нибудь, да и впадлу.
 

Dikson777

Новичок
45
0
Можно поставить хук на SetPlayerPos. При слэпе, координата Z возрастает на 5-10(примерно в диапазоне 5-15), если такой диапазон появляется при вызове функции, то значит, что админ сделал слэп.
Что лучше в итоге, где код проще? У тебя или у меня? (интересуюсь для себя)
 

Thomas_Johnson

Известный
Проверенный
183
21
Что лучше в итоге, где код проще? У тебя или у меня? (интересуюсь для себя)
Или еще один вариант, узнать текущую позицию игрока и по 02CE узнать Z по текущим X и Y, если разница превышает высоту прыжка - это слап.
 

Dikson777

Новичок
45
0
Или еще один вариант, узнать текущую позицию игрока и по 02CE узнать Z по текущим X и Y, если разница превышает высоту прыжка - это слап.
У него же бот на месте стоит/ходит, но не прыгает, но твоя версия хорошия.
 

Dikson777

Новичок
45
0
Помощь нужна, мне нужно написать скрипт :
По команде /zsave в переменную сохраняется твоя координата Z. Сделать проверку: Если твоя нынешняя координата Z не равна координате из переменной, то ...
Нынешняя координата должна обновляться постоянно.
Как реализовать?
 

Dikson777

Новичок
45
0
Вот, накидал..
Кодеры, скажите где ошибки, где можно оптимизировать. Заранее спасибо.

Код:
{CLEO. cs}
0000: NOP

wait 2000
0B34: samp register_client_command "zsave" to_label @new_cmd

while true // Начало цикла
    wait 0 // Ожидание 0 секунд
end // Конец цикла

:zsave // Начинаем работу метки
Actor.StorePos($PLAYER_ACTOR, 1@ 2@ 3@)
jump @proverka
:proverka
if
    Actor.StorePos($PLAYER_ACTOR, 4@ 5@ 6@)
    3@ <> 6@
    then
    0AF8: samp add_message_to_chat "Вас проверяют!" color 0xFFFFFF
    else
    jump @proverka
end
0B43: samp cmd_ret // Заканчиваем команду
 

Dikson777

Новичок
45
0
Код:
{CLEO. cs}
0000: NOP

wait 2000
0B34: samp register_client_command "zsave" to_label @zsave

while true // Начало цикла
    wait 0 // Ожидание 0 секунд
end // Конец цикла

:zsave // Начинаем работу метки
Actor.StorePos($PLAYER_ACTOR, 1@ 2@ 3@)
jump @proverka
:proverka
if
    Actor.StorePos($PLAYER_ACTOR, 4@ 5@ 6@)
    3@ <> 6@
    then
    0AF8: samp add_message_to_chat "Вас проверяют!" color 0xFFFFFF
    else
    jump @proverka
end
0B43: samp cmd_ret // Заканчиваем команду


Ну вот крч...

А что изменилось?
 

Dikson777

Новичок
45
0
Ну во первых, теперь, он работает... А изменилось второе значение опкода 0В34: Ну тип to_label

Вот еще код сделал, на ту же тему, правильно? Просто выдает ошибку: неверное число условий
:
Код:
{CLEO. cs}
0000: NOP

wait 2000
0B34: samp register_client_command "zsave" to_label @zsave

while true
    wait 0
end

var
$z1 : Float
$z2 : Float
end

:zsave // Начинаем работу метки
Actor.StorePos($PLAYER_ACTOR, 1@ 2@ $z1)
    while true // Начало цикла
    wait 0
        if
            Actor.StorePos($PLAYER_ACTOR, 4@ 5@ $z2)
            $z1 <> $z2
            then
            0AF8: samp add_message_to_chat "Вас проверяют!" color 0xFFFFFF
        end
    end
end
0B43: samp cmd_ret // Заканчиваем команду
 

Dikson777

Новичок
45
0
Нахуя глобольную переменную впиздячил? Не правильно...

Код:
var
$z1 : Float
$z2 : Float
end

Эта хрень, никогда не пройдет...

И еще, здесь не if надо а if and
Код:
if
            Actor.StorePos($PLAYER_ACTOR, 4@ 5@ $z2)
            $z1 <> $z2
            then
            0AF8: samp add_message_to_chat "Вас проверяют!" color 0xFFFFFF
        end

Переменные же в разных потоках, нет? Или я не правильно понимаю значение потока?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Уже вторую неделю мучаюсь, не пойму почему бот не бежит в сторону координат X Y.
Да и бежит как-то криво.
Помогите.
Код:
:set_angle
00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
0063: 0@ -= 2@
0063: 1@ -= 3@
0604: get_Z_angle_for_point 0@ 1@ store_to 5@
0173: set_actor $PLAYER_ACTOR Z_angle_to 5@
02EB: restore_camera_with_jumpcut
0AB2: ret 0

Вот, накидал..
Кодеры, скажите где ошибки, где можно оптимизировать. Заранее спасибо.
Код:
{CLEO. cs}
0000: NOP

repeat
    wait 100
until 0AFA:  is_samp_available

0B34: samp register_client_command "zsave" to_label @zsave

0@ = false // статус

while true // Начало цикла
    wait 0 // Ожидание 0 миллисекунд
    if 0@ == true
    then
        00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 6@
        0063: 6@ -= 3@ // Разность последней Z координаты и текущей
        if 6@ >= 5.0 // Если разность больше(равно) 5.0, то
        then
            0AF8: samp add_message_to_chat "Вас проверяют" color -1
        end
    end
end // Конец цикла

:zsave // Начало тела команды
if 0@ == false
then
    0@ = true

    00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
    0AF8: samp add_message_to_chat "Проверка включена" color -1
else
    0@ = false

    0AF8: samp add_message_to_chat "Проверка отключена" color -1
end
0B43: samp cmd_ret // Конец тела команды
 

Xample

Новичок
89
1
Подскажите как закрепить камеру строго за актёром? тоесть бот бегает, и надо чтоб камера всегда за спиной была и и выключение этой функции