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

MAHEKEH

Известный
1,989
494
как пофиксить чтобы 31@ был при команде /хилка включенный и можно было выключать?


CLEO:
{$CLEO}
{$USE bitwise}
0000:
repeat
wait 0
until Samp.Available()
0b34: register "хилка" label @cmd

31@ = 1 // < если нужно чтоб скрипт изначально был включен, если нет то 31@ = 0



while true
wait 0
    if and
    31@ == 1
    8256: not player $PLAYER_CHAR defined
    then
    0AF9: samp say_msg "/healme"
    wait 25
    0AF9: samp say_msg "/healme"
    end
end

:cmd
0B12: 31@ = 31@ XOR 1 // включает и выключает
IF AND
31@ == 1
0256:   player $PLAYER_CHAR defined
THEN 31@ = 0
END
Samp.CmdRet()

не совсем понимаю зачем нужна проверка defined..
 

gonzalez.

Известный
42
3
CLEO:
{$CLEO}
{$USE bitwise}
0000:
repeat
wait 0
until Samp.Available()
0b34: register "хилка" label @cmd

31@ = 1 // < если нужно чтоб скрипт изначально был включен, если нет то 31@ = 0



while true
wait 0
    if and
    31@ == 1
    8256: not player $PLAYER_CHAR defined
    then
    0AF9: samp say_msg "/healme"
    wait 25
    0AF9: samp say_msg "/healme"
    end
end

:cmd
0B12: 31@ = 31@ XOR 1 // включает и выключает
IF AND
31@ == 1
0256:   player $PLAYER_CHAR defined
THEN 31@ = 0
END
Samp.CmdRet()

не совсем понимаю зачем нужна проверка defined..
ну чтобы после смерти выключался
 

MAHEKEH

Известный
1,989
494
ну чтобы после смерти выключался

Если я правильно понимаю у тебя в цикле стоит проверка на то что игрока НЕ существует и скрипт включен, только в этом случае он будет флудить командой
это как то странно, скорее всего это ошибка

ну чтобы после смерти выключался
CLEO:
{$CLEO .cs}
//{$USE bitwise}
0000: NOP
0001: 500

REPEAT
0001: 0
UNTIL 0AFA:  is_samp_available

0B34: samp register_client_command "хилка" to_label @CMD // 0b34: register "хилка" label @cmd
0@ = 0 // изначально выключен

WHILE TRUE
0001: 0
IF AND                 
0@ == 1
0118: actor $PLAYER_ACTOR dead // если игрок умер
THEN
0001: 5000 // ждет 5 секунд. Время до того момента пока ты не заспавнишься, время спавна я не засекал поэтому сам подбирай.
SAY "/healme"
0001: 600 // задержка на повторный ввод смд... твоя 25, я даже не знаю на каком проекте такая низкая задержка
SAY "/healme"
END
END

:CMD
0B12: 0@ = 0@ XOR 1
0B43: samp cmd_ret

короче примерно так должно быть.
 
Последнее редактирование:

enotikk

Новичок
15
2
Есть такой скрипт на отправку сообщения при появлении нужного текста в чате. Нужно сделать, чтобы он работал только когда персонаж в определенных координатах карты. В квадрате так скажем. Допустим x > 1641 and x < 2926 and y < -862 and y > -2169. Может кто сделать? Только добавить эту проверку в код. Спасибо
CLEO:
{$CLEO}
0000:
repeat
wait 0
until 0AFA:
alloc 31@ 256

while true
wait 0
0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0
IF 0C18: 0 = strstr string1 31@ string2 "сосиска"
THEN
say "банан"
wait 500
END
cmdret
END
 

D3.Pheonix

🎹
Модератор
2,814
1,597
@enotikk
CLEO:
{$CLEO}
0000:
repeat
wait 0
until 0AFA:
alloc 31@ 256

while true
wait 0
0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 0 // X Y Z
    IF
        0C18: 0 = strstr string1 31@ string2 "сосиска"
    THEN
        IF AND
            0@ > 1641.0 // X
            0@ < 2926.0 // X
            1@ < -862.0 // Y
            1@ > -2169.0 // Y
        THEN
            say "банан"
            wait 500
        END
    END
END
 

enotikk

Новичок
15
2
@enotikk
CLEO:
{$CLEO}
0000:
repeat
wait 0
until 0AFA:
alloc 31@ 256

while true
wait 0
0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 0 // X Y Z
    IF
        0C18: 0 = strstr string1 31@ string2 "сосиска"
    THEN
        IF AND
            0@ > 1641.0 // X
            0@ < 2926.0 // X
            1@ < -862.0 // Y
            1@ > -2169.0 // Y
        THEN
            say "банан"
            wait 500
        END
    END
END
крашит при входе в игру
 

D3.Pheonix

🎹
Модератор
2,814
1,597
@enotikk

CLEO:
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 0 // X Y Z
Я объебался. Вместо нуля в конце, вставь любую переменную, например 2@
 

SerVamBan

Новичок
20
3
Нужно чтобы при после проверки скрипт нажал две клавиши, двойку и enter, какой это опкод?
 

yooze

Новичок
11
0
Как сделать чтобы при вводе в чат /ctime 19.00.01.111(время) /capture_biz(команда) и когда это время будет в чат написало 4 строки /capture_biz
 

Bili Djin

Активный
137
67
Как сделать чтобы при вводе в чат /ctime 19.00.01.111(время) /capture_biz(команда) и когда это время будет в чат написало 4 строки /capture_biz
Когда логируешь команду можно получать несколько параметров.
Сделай цикл, в нём сделай выход - время, которое ты указал в команде. Это можно сделать с помощью переменной, в которой будет настоящее время и другой переменной с временем из команды, а потом просто через "SAY" сделай 4 команду, ну то есть 4 раза say напиши.
В итоге ты получишь цикл, который будет каждый проход чекать время и сопоставлять его со временим из команду
 

Mishuta2013

Новичок
8
1
Помогите пожалуйста не могу понять как сделать так чтобы не крашило при нажатии alt+enter на cleo луа не надо.