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

RedBoxWhite

Известный
337
27
Срабатывает после 2 ввода. Как сделать, чтобы сразу срабатывало?
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms

while not SAMP.Available()
    wait 400
end

0BE1: raknet setup_outcoming_rpc_hook @out_rpc
0BE3: raknet setup_incoming_rpc_hook @ClientMessage

alloc 14@ 256

0BDE: pause_thread 0

:out_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_SERVERCOMMAND
then
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
        0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT

        0AC8: 3@ = allocate_memory_size 145
        0AC8: 21@ = allocate_memory_size 14
        0AC8: 22@ = allocate_memory_size 14
        0BE8: raknet bit_stream 1@ read_array 3@ size 2@
        0C1E: array 3@ element 2@ el_size 1 = 0
            if 0C18: 0 = strstr string1 3@ string2 "/id"
            then
            0AA5: call 0x8220AD num_params 4 pop 4 params 22@ 21@ "%s %s" 3@ 
                if 0C18: 0 = strstr string1 14@ string2 "Ошибка"
                then
                    for 4@ = 0 to 999
                        if 0B23: samp is_player_connected 4@
                        then
                            0B36: samp 5@ = get_player_nickname 4@
                            if 0C21: stricmp string1 22@ string2 5@
                            then
                            0AF8: samp add_message_to_chat "%s [%d]" color -1 22@ 4@
                            0AC9: free_allocated_memory 3@
                            end
                        end
                    end
                end
            end
end
0BE0: raknet hook_ret true

:ClientMessage
0BE5: raknet 10@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 11@ = get_hook_param PARAM_PACKETID
if
11@ == RPC_ScrClientMessage
then
    0BE7: raknet 12@ = bit_stream_read 10@ type BS_TYPE_INT
    0BE7: raknet 13@ = bit_stream_read 10@ type BS_TYPE_INT
    0C11: memset destination 14@ value 0 size 256
    0BE8: raknet bit_stream 10@ read_array 14@ size 13@
    0C0F: array 14@ element 13@ = 0x00
end
0BE0: raknet hook_ret true
 

hnnssy

Известный
Друг
2,684
2,752
Срабатывает после 2 ввода. Как сделать, чтобы сразу срабатывало?
CLEO:
{$CLEO}
{$INCLUDE SF}

0001: wait 0 ms

while not SAMP.Available()
    wait 400
end

0BE1: raknet setup_outcoming_rpc_hook @out_rpc
0BE3: raknet setup_incoming_rpc_hook @ClientMessage

alloc 14@ 256

0BDE: pause_thread 0

:out_rpc
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == RPC_SERVERCOMMAND
then
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
        0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT

        0AC8: 3@ = allocate_memory_size 145
        0AC8: 21@ = allocate_memory_size 14
        0AC8: 22@ = allocate_memory_size 14
        0BE8: raknet bit_stream 1@ read_array 3@ size 2@
        0C1E: array 3@ element 2@ el_size 1 = 0
            if 0C18: 0 = strstr string1 3@ string2 "/id"
            then
            0AA5: call 0x8220AD num_params 4 pop 4 params 22@ 21@ "%s %s" 3@
                if 0C18: 0 = strstr string1 14@ string2 "Ошибка"
                then
                    for 4@ = 0 to 999
                        if 0B23: samp is_player_connected 4@
                        then
                            0B36: samp 5@ = get_player_nickname 4@
                            if 0C21: stricmp string1 22@ string2 5@
                            then
                            0AF8: samp add_message_to_chat "%s [%d]" color -1 22@ 4@
                            0AC9: free_allocated_memory 3@
                            end
                        end
                    end
                end
            end
end
0BE0: raknet hook_ret true

:ClientMessage
0BE5: raknet 10@ = get_hook_param PARAM_BITSTREAM
0BE5: raknet 11@ = get_hook_param PARAM_PACKETID
if
11@ == RPC_ScrClientMessage
then
    0BE7: raknet 12@ = bit_stream_read 10@ type BS_TYPE_INT
    0BE7: raknet 13@ = bit_stream_read 10@ type BS_TYPE_INT
    0C11: memset destination 14@ value 0 size 256
    0BE8: raknet bit_stream 10@ read_array 14@ size 13@
    0C0F: array 14@ element 13@ = 0x00
end
0BE0: raknet hook_ret true
ты шаришь вообще, что при первом выполнении условия в хуке исходящих рпц, в котором ты ловишь ввод команды /id, у тебя в 14@ нет ещё ответа сервера на ввод этой команды, чё ты там блять найти пытаешься?
 
  • Нравится
Реакции: RedBoxWhite

Trashmas

Новичок
40
0
Не пойму в чем проблема:

CLEO:
:BINDER
thread "BINDER"

0B34: samp register_client_command "mq" to_label @GOVERNMENT_STRINGS

repeat
wait 0

//-------------LEADER STRINGS---------------
if 10@ == true
then
    if 0AAB:   file_exists "CLEO\nfile.ini"
    then
    0AF4: 2@s = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "LEAD"
        if 0C18: 3@ = strstr string1 2@s string2 "on"
        then
        SAMP.IsCommandTyped(1@)
        0AD4: 2@ = scan_string 1@ format "%d" 3@
            if or
            3@ == 1
            0C21: stricmp string1 1@ string2 "invite"
            then
            alloc 2@ 256
            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_1"
                repeat
                wait 100
                chatmsg "%s" -1 2@
   
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@
   
            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_2"
                repeat
                wait 100
                chatmsg "%s" -1 2@
   
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@
 
            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_3"
                repeat
                wait 100
                chatmsg "%s" -1 2@
   
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@

            free 2@
            jump @LEADER_STRINGS_END
            end
        end
    else
    chatmsg "Îøèáêà. Ôàéë íå íàéäåí. {FFFFFF}(nfile.ini)" 0xed2711
    jump @LEADER_STRINGS_END
    end
else
jump @LEADER_STRINGS_SKIP
end

:GOVERNMENT_STRINGS
10@ = true
SAMP.CmdRet()

:LEADER_STRINGS_END
10@ = false

:LEADER_STRINGS_SKIP


until false

После первой строки зависает, хотя задержки в циклах есть.[/code]
 
Последнее редактирование:

01EG

Известный
Проверенный
630
344
PHP:
@2

Что не правильно?
Код неправильно вообще построен, ты перед тем, как обращаться за помощью в Коде пиши пожалуйста, что ты хочешь сделать, а то здесь не Вангиславы сидят, напиши, что ты пытаешься сделать.
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Не пойму в чем проблема:

CLEO:
:BINDER
thread "BINDER"

0B34: samp register_client_command "mq" to_label @GOVERNMENT_STRINGS

repeat
wait 0

//-------------LEADER STRINGS---------------
if 10@ == true
then
    if 0AAB:   file_exists "CLEO\nfile.ini"
    then
    0AF4: 2@s = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "LEAD"
        if 0C18: 3@ = strstr string1 2@s string2 "on"
        then
        SAMP.IsCommandTyped(1@)
        0AD4: 2@ = scan_string 1@ format "%d" 3@
            if or
            3@ == 1
            0C21: stricmp string1 1@ string2 "invite"
            then
            alloc 2@ 256
            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_1"
                repeat
                wait 100
                chatmsg "%s" -1 2@
 
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@
 
            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_2"
                repeat
                wait 100
                chatmsg "%s" -1 2@
 
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@

            0AF4: 2@ = read_string_from_ini_file "CLEO\nfile.ini" section "BINDER" key "GSTR_3"
                repeat
                wait 100
                chatmsg "%s" -1 2@
 
                0B75: samp get_chat_string 99 text_to 4@ prefix_to 5@ color_to 6@ prefix_color_to 7@
                until 0C18: 5@ = strstr string1 4@ string2 2@

            free 2@
            jump @LEADER_STRINGS_END
            end
        end
    else
    chatmsg "Îøèáêà. Ôàéë íå íàéäåí. {FFFFFF}(nfile.ini)" 0xed2711
    jump @LEADER_STRINGS_END
    end
else
jump @LEADER_STRINGS_SKIP
end

:GOVERNMENT_STRINGS
10@ = true
SAMP.CmdRet()

:LEADER_STRINGS_END
10@ = false

:LEADER_STRINGS_SKIP


until false

После первой строки зависает, хотя задержки в циклах есть.[/code]
Код неправильно вообще построен, ты перед тем, как обращаться за помощью в Коде пиши пожалуйста, что ты хочешь сделать, а то здесь не Вангиславы сидят, напиши, что ты пытаешься сделать.

По всей видимости пытается сделать биндер, правда хрен пойми зачем, их и так навалом
 

Trashmas

Новичок
40
0
Код неправильно вообще построен, ты перед тем, как обращаться за помощью в Коде пиши пожалуйста, что ты хочешь сделать, а то здесь не Вангиславы сидят, напиши, что ты пытаешься сделать.
Что бы при вводе команды читало 3 строки из ini и выводило в чат.
Сначала проверка переменной 10@, т.е. флаг скрипта, включается от команды. Потом проверка есть ли файл nfile.ini, потом читает строку LEAD=, если там on, идет дальше, проверка что введено после команды, если 1 или invite то начинается основная часть скрипта, где и проблемы. Первую строку читает и выводит правильно, а вторую не хочет, зависает. После отправки каждой строки идет цикл с проверкой есть ли эта строка в чате, если есть - цикл прерывается и скритп идет дальше.

По всей видимости пытается сделать биндер, правда хрен пойми зачем, их и так навалом
Если бы я качал все что мне нужно, то перед запуском сампа надо было бы еще 5 AHKшек запускать, а на одну клавишу сразу 3 действия выполнялось бы.
Я стараюсь сделать все как удобно мне, и что бы не мешало игре.
 

wavermaa

Новичок
5
0
Создал диалог, но в чат выводит сообщение только после 2-го раза ввода чит кода. Почему не выводит с 1-го раза, в чем проблема?
CLEO:
while true
wait 0
    if  0ADC:   test_cheat "d"
    then
    0AC8: 0@ = allocate_memory_size 64
    0ad3: format_stirng 0@ = "1) Пункт"
    0B3B: samp show_dialog id 10 caption "Название" text 0@ button_1 "Выбрать" button_2 "Назад" style 2        
    0AC9: free_allocated_memory 0@
        if
        0B3C: samp is_dialog_responded id 10 button 1@ list_item 2@ input_text 0
        then
            if
            0039:   1@ == 1
            then
                if
                0039:   2@ == 0
                then
                0AF8: samp add_message_to_chat "Первый пункт" color 0xFFFFFF 
                end
            end
        end  
    end
end