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

Makaraha

Новичок
18
4
CLEO:
Alloc 3@ 124
If 0B3C: 555 1@ 2@ 3@
Then
If 1@ == 1
Then
If not 3@ == 0
Then
Chatmsg "чё-то адекватное в буфере" -1
Else
Chatmsg "введите че-то адекватное в буфер"
End
End
Free 3@
end
У меня в буфер всегда записывается нечто подобное: ™ѓpяѓ, причём с каждым перезапуском скрипта разные сообщения, при этом они ещё могут и меняться, в зависимости от ранее введённых данных. Если выделить достаточно памяти, то запиештся просто символ "Д", но опять же он в процессе работы скрипта может поменяться

CLEO:
{$CLEO}
0000:
while true
wait 0
if
0ADC:   test_cheat "9"
then
0B3B: samp show_dialog id 555 caption "Тест" text "Тест" button_1 "Ввести" button_2 "Закрыть" style 1
alloc 1@ 256
    while 0B4C:  samp is_dialog_active 555
    wait 0
        if
        0B3C:  samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@
        then
        log "%s %i" 1@ 1@
            if
            8039:   1@ == 0
            then
            chatmsg "Что-то есть" -1
            else
            chatmsg "Пусто" -1
            end
        end
    end
    free 1@
end
end
 

хуесос)

Известный
263
63
У меня в буфер всегда записывается нечто подобное: ™ѓpяѓ, причём с каждым перезапуском скрипта разные сообщения, при этом они ещё могут и меняться, в зависимости от ранее введённых данных. Если выделить достаточно памяти, то запиештся просто символ "Д", но опять же он в процессе работы скрипта может поменяться

CLEO:
{$CLEO}
0000:
while true
wait 0
if
0ADC:   test_cheat "9"
then
0B3B: samp show_dialog id 555 caption "Тест" text "Тест" button_1 "Ввести" button_2 "Закрыть" style 1
alloc 1@ 256
    while 0B4C:  samp is_dialog_active 555
    wait 0
        if
        0B3C:  samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@
        then
        log "%s %i" 1@ 1@
            if
            8039:   1@ == 0
            then
            chatmsg "Что-то есть" -1
            else
            chatmsg "Пусто" -1
            end
        end
    end
    free 1@
end
end
CLEO:
Log "%s %i" 1@ 1@
Как ты хранишь строку и десятичное число в одной переменной?
 

хуесос)

Известный
263
63
Я в курсе, проверка в смысле, чтоб самому в консоли посмотреть, что там творится
CLEO:
{$CLEO}
0000:
while true
wait 0
if
0ADC:   test_cheat "9"
then
0B3B: samp show_dialog id 555 caption "Test" text "Please input some text" button_1 "input" button_2 "cancel" style 1
alloc 1@ 256
    while 0B4C:  samp is_dialog_active 555
    wait 0
        if
        0B3C:  samp is_dialog_responded id 555 button 0 list_item 0 input_text 1@
        then
            if 8C18: not 2@ = strstr string1 1@ string2 " "
            then
            chatmsg "Some text inputed" -1
            log "%s" 1@
            else
            chatmsg "Empty" -1
            end
        end
    end
    free 1@
end
end
только что зашёл, проверил все работает.
 
  • Нравится
Реакции: Makaraha

nuhku

Новичок
4
0
Как мне сделать задержку между хуками 1000 милисек
CLEO:
:HookRPC
0BE5: raknet 2@ = get_hook_param PARAM_PACKETID
if
2@ == RPC_SCRSHOWDIALOG
then
    if
    27@ == 255
    then
        if
        28@ > 4
        then
            27@ = 0
            29@ = 0
        end
    end 
    if
    29@ == 1
    then
        if
        33@ > 10000
        then
            29@ = 0
        end
        alloc 5@ 257
        0C11: memset destination 5@ value 0 size 257
        0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM             
        0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT //id
        0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE  //style
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE //title len       
        0BE8: raknet bit_stream 1@ read_array 5@ size 4@ //title
        if and
        0C14: strcmp string1 5@ string2 "Ñêëàä îðóæèÿ"
        3@ == DIALOG_STYLE_LIST
        then
            if
            28@ == 8
            then
                28@ = 0
                27@ = 255
            end
            1@ = BitStream.New()
            BitStream.Write(1@, 2@, BS_TYPE_SHORT, 2) //id
            BitStream.Write(1@, DIALOG_STYLE_LIST, BS_TYPE_BYTE, 1)   //style
            BitStream.Write(1@, 28@, BS_TYPE_SHORT, 1)  //listbox number
            0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@
            BitStream.Delete(1@)   
            free 5@
            28@ ++
            33@ = 0   
            0BE0: raknet hook_ret 0
        end
    end 
end
0BE0: raknet hook_ret 1
 

hnnssy

Известный
Друг
2,684
2,744
Как мне сделать задержку между хуками 1000 милисек
CLEO:
:HookRPC
0BE5: raknet 2@ = get_hook_param PARAM_PACKETID
if
2@ == RPC_SCRSHOWDIALOG
then
    if
    27@ == 255
    then
        if
        28@ > 4
        then
            27@ = 0
            29@ = 0
        end
    end
    if
    29@ == 1
    then
        if
        33@ > 10000
        then
            29@ = 0
        end
        alloc 5@ 257
        0C11: memset destination 5@ value 0 size 257
        0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM            
        0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_SHORT //id
        0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_BYTE  //style
        0BE7: raknet 4@ = bit_stream_read 1@ type BS_TYPE_BYTE //title len      
        0BE8: raknet bit_stream 1@ read_array 5@ size 4@ //title
        if and
        0C14: strcmp string1 5@ string2 "Ñêëàä îðóæèÿ"
        3@ == DIALOG_STYLE_LIST
        then
            if
            28@ == 8
            then
                28@ = 0
                27@ = 255
            end
            1@ = BitStream.New()
            BitStream.Write(1@, 2@, BS_TYPE_SHORT, 2) //id
            BitStream.Write(1@, DIALOG_STYLE_LIST, BS_TYPE_BYTE, 1)   //style
            BitStream.Write(1@, 28@, BS_TYPE_SHORT, 1)  //listbox number
            0B8A: raknet send_rpc RPC_DIALOGRESPONSE bit_stream 1@
            BitStream.Delete(1@)  
            free 5@
            28@ ++
            33@ = 0  
            0BE0: raknet hook_ret 0
        end
    end
end
0BE0: raknet hook_ret 1
между хукАМИ, но хук один, ок
если ты про хук и отправку своего пакета, то переноси отправку в мейн с нужной задержкой, а в хуке запускай
Почему при создании текстдрава игра начинает мерцать? (код из видео даркпикселя)Посмотреть вложение 37305
Почему игра начинает мерцать?
CLEO:
{$CLEO}
0000:

:main
wait 5000
0AF8: samp add_message_to_chat "TEST" color 0xffffff
потому что нет паузы потока, это явно не код даркпикселя (у него там метки)
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,747
11,157
Как сделать так, чтобы при прописывании команды раз в 10 секунд отправлялось сообщение до тех пор, пока команда не будет прописана заново?
 

хуесос)

Известный
263
63
Как сделать так, чтобы при прописывании команды раз в 10 секунд отправлялось сообщение до тех пор, пока команда не будет прописана заново?
CLEO:
{$cleo}
0000:

Repeat 
Wait 0
Until 0afa:
0b34: "flood" @my_cmd 
While true 
Wait 0
If 0@ == 1 
Then 
Say "okey"
Wait 10000
End
End

:my_CMD
If 0@ == 1
Then 
0@ == 0
Chatmsg "deactivated flood" -1
Else
0@ == 1
Chatmsg "activated flood" -1
End
Cmdret
 

Domino

Участник
326
15
CLEO:
jf @NONAME_581
alloc 3@ 512
0BE5: raknet 1@ = get_hook_param 0
2@ = BitStream.Read(1@, 3)
BitStream.ReadArray(1@, 3@, 2@)
0C1E: array 3@ element 2@ el_size 1 = 0
if
0C29: 4@ = stristr string1 3@ string2 "/ans"
Как после /ans ещё добавить две команды
 

hnnssy

Известный
Друг
2,684
2,744
и будет одинаково реагировать на разные команды, спс, удались
CLEO:
jf @NONAME_581
alloc 3@ 512
0BE5: raknet 1@ = get_hook_param 0
2@ = BitStream.Read(1@, 3)
BitStream.ReadArray(1@, 3@, 2@)
0C1E: array 3@ element 2@ el_size 1 = 0
if
0C29: 4@ = stristr string1 3@ string2 "/ans"
Как после /ans ещё добавить две команды
if .. "/ans"
then code
end
if .. "/cmd2"
then code
end
if .. "/cmd3"
then code
end