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

Kristyan

Известный
165
16
Eсли считается только последняя строка, 99, скрипт работает.
CLEO:
31@ = 0
0B34: samp register_client_command "fvrr" to_label @fvrespawn_411
WHILE TRUE
WAIT 0
    IF 31@ == 1
    THEN
    0AC8: 2@ = allocate_memory_size 260
    0AC8: 28@ = allocate_memory_size 50
    0AC8: 29@ = allocate_memory_size 35
    0AC8: 30@ = allocate_memory_size 0
    0B75: samp get_chat_string 99 text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
            if
                0C18: 17@ = strstr string1 2@ string2 "test"
            then
            chatmsg "Someone else type it!" -1
              else
                say "test 5sec" 
                wait 5000
                say "test"
         END
    31@ = 0
END
    0AC9: free_allocated_memory 2@
    0AC9: free_allocated_memory 28@
    0AC9: free_allocated_memory 29@
    0AC9: free_allocated_memory 30@
end
SAMP.CmdRet()
                                                                            
:fvrespawn_411
0B12: 31@ = 31@ XOR 1
samp.CmdRet()

НО, если я хочу cделать по больше строк с for, то скрипт после активации спамит "say". Даже если в те строки есть "test".

CLEO:
31@ = 0
0B34: samp register_client_command "fvrr" to_label @fvrespawn_411
WHILE TRUE
WAIT 0
    IF 31@ == 1
    THEN
   for 0@ = 94 to 99
    0AC8: 2@ = allocate_memory_size 260
    0AC8: 28@ = allocate_memory_size 50
    0AC8: 29@ = allocate_memory_size 35
    0AC8: 30@ = allocate_memory_size 0
    0B75: samp get_chat_string 0@ text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
            if
                0C18: 17@ = strstr string1 2@ string2 "FVR in 5 seconds"
            then
            chatmsg "Someone else type it!" -1
              else
                say "LOH 5sec"
                wait 5000
                say "LOH"
         END
    31@ = 0
END
    0AC9: free_allocated_memory 2@
    0AC9: free_allocated_memory 28@
    0AC9: free_allocated_memory 29@
    0AC9: free_allocated_memory 30@
end
end
SAMP.CmdRet()
                                                                            
:fvrespawn_411
0B12: 31@ = 31@ XOR 1
samp.CmdRet()
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Eсли считается только последняя строка, 99, скрипт работает.
CLEO:
31@ = 0
0B34: samp register_client_command "fvrr" to_label @fvrespawn_411
WHILE TRUE
WAIT 0
    IF 31@ == 1
    THEN
    0AC8: 2@ = allocate_memory_size 260
    0AC8: 28@ = allocate_memory_size 50
    0AC8: 29@ = allocate_memory_size 35
    0AC8: 30@ = allocate_memory_size 0
    0B75: samp get_chat_string 99 text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
            if
                0C18: 17@ = strstr string1 2@ string2 "test"
            then
            chatmsg "Someone else type it!" -1
              else
                say "test 5sec"
                wait 5000
                say "test"
         END
    31@ = 0
END
    0AC9: free_allocated_memory 2@
    0AC9: free_allocated_memory 28@
    0AC9: free_allocated_memory 29@
    0AC9: free_allocated_memory 30@
end
SAMP.CmdRet()
                                                                           
:fvrespawn_411
0B12: 31@ = 31@ XOR 1
samp.CmdRet()

НО, если я хочу cделать по больше строк с for, то скрипт после активации спамит "say". Даже если в те строки есть "test".

CLEO:
31@ = 0
0B34: samp register_client_command "fvrr" to_label @fvrespawn_411
WHILE TRUE
WAIT 0
    IF 31@ == 1
    THEN
   for 0@ = 94 to 99
    0AC8: 2@ = allocate_memory_size 260
    0AC8: 28@ = allocate_memory_size 50
    0AC8: 29@ = allocate_memory_size 35
    0AC8: 30@ = allocate_memory_size 0
    0B75: samp get_chat_string 0@ text_to 2@ prefix_to 28@ color_to 29@ prefix_color_to 30@
            if
                0C18: 17@ = strstr string1 2@ string2 "FVR in 5 seconds"
            then
            chatmsg "Someone else type it!" -1
              else
                say "LOH 5sec"
                wait 5000
                say "LOH"
         END
    31@ = 0
END
    0AC9: free_allocated_memory 2@
    0AC9: free_allocated_memory 28@
    0AC9: free_allocated_memory 29@
    0AC9: free_allocated_memory 30@
end
end
SAMP.CmdRet()
                                                                           
:fvrespawn_411
0B12: 31@ = 31@ XOR 1
samp.CmdRet()
Сделай лучше через хук
CLEO:
while not Samp.Available()
    wait 0
end
0BE3: raknet setup_incoming_rpc_hook @Hook
0BDE: pause_thread 0

:Hook
0BE5: raknet 0@ = get_hook_param 0
0BE5: raknet 1@ = get_hook_param 1
if 1@ == 93
    then
    0BE7: raknet 2@ = bit_stream_read 0@ type 3
    0BE7: raknet 3@ = bit_stream_read 0@ type 3
    alloc 4@ 257
    0C11: memset destination 4@ value 0 size 257
    0BE8: raknet bit_stream 0@ read_array 4@ size 3@
    if or
    0C14: strcmp string1 4@ string2 "Text №1"
    0C14: strcmp string1 4@ string2 "Text №2"
        then
        // Code
    end
    free 4@
end
0BE0: raknet hook_ret 1
 
  • Нравится
Реакции: Kristyan

Lord

Новичок
236
42
Можно ли как-то получить ид/название скина ближайшего игрока?
 

BlackKnigga

Известный
BH Team
922
445

Jack_Savage

Участник
150
17
Ребят, можно ли сделать фейк PIN для АРП ??? Типо я уже ввел все данные и при следующем заходе у меня выдавался фейк ввод пинкода )
Пример: Посмотреть вложение 11379
А для чего ?
Стилеры делать не хорошо... Фу таким быть!
Ну если не стилер... То зачем это вообще нужно то ?
 

Jack_Savage

Участник
150
17
Но можно получать всех кто есть в стриме и переберать их в цикле.
При переборе смотри растояние от себя до них.
И у кого будет самое маленькое тот и стоит рядом.
Потом получаешь его ID скина.
Профит
 

NookieONE

Участник
128
1
Игра вылетает после 10 минут игры. ХЕЛП
CLEO:
{$CLEO}
{$I SF}

0000:

const
TOGGLE      = 10@
TOGGLE_MOVE = 11@
BUF         = 12@
end

const
hFONT    = 13@
TEXT     = 14@
SX       = 15@
SY       = 16@
NickName = 17@
end

SX    = 178
SY    = 756
                                                                                     
const
YELLOW = 0xFFFF5000
end

alloc NickName 20
0AF4: NickName = read_string_from_ini_file "cleo\confing.ini" section "NickName" key ":"

0AC6: BUF = label @buffer offset

if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end

0B6D: render hFONT = create_font "IMPACT" height 10 flags 4
0BE3: raknet setup_incoming_rpc_hook @hook
0B34: samp register_client_command "sreset" to_label @sreset
0B34: samp register_client_command "en" to_label @toggle
0B34: samp register_client_command "move" to_label @move

while true
    wait 0
    if TOGGLE == false
    then
        call @get_values 1 buff BUF returns TEXT
        0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW
    end
    while TOGGLE_MOVE == true
        wait 0
        0B5E: get_cursor_pos SX SY
        call @get_values 1 buff BUF returns TEXT
        0B6F: render font hFONT draw_text TEXT pos SX SY color YELLOW
        if key_down 1
        then
            TOGGLE_MOVE = false
        end
    end
end

:hook
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
IF 0@ == RPC_SCRCLIENTMESSAGE
THEN
    0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 1@ = bit_stream_read 0@ type BS_TYPE_INT
    0BE7: raknet 2@ = bit_stream_read 0@ type BS_TYPE_INT
    alloc 3@ 125
    0BE8: raknet bit_stream 0@ read_array 3@ size 2@
    0C1E: struct 3@ offset 2@ size 1 = 0
    IF 0c18: 33@ = 3@ NickName  // ТУТ ВОТ ОН ПРОВЕРЯЕТ, ЕСЛИ ЕСТЬ В СТРОКЕ НИК, ТО ОН ИДЕТ ДАЛЬШЕ
    THEN
        IF OR
        0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ NICK"  // ПОИСК ТЕКСТА
        0C18: 33@ = strstr string1 3@ string2 "ТЕКСТ1 NICK" // ПОИСК ТЕКСТА1
        THEN
            0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
            000A: 4@ += 1
            0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
        END
 
        IF 0C18: 33@ = strstr string1 3@ string2 "ДРУГОЙ NICK ТЕКСТ" // ПОИСК ТЕКСТА
        THEN
            0AF0: 4@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
            000A: 4@ += 1
            0AF1: write_int 4@ to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
        END
    END
    free 3@
END
0BE0: raknet hook_ret TRUE

:sreset
chatmsg "Счётчик обнулен!" -1
0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
0AF1: write_int 0 to_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
SAMP.CmdRet()

:toggle
0B12: TOGGLE = TOGGLE XOR 1
SAMP.CmdRet()

:move
0B12: TOGGLE_MOVE = TOGGLE_MOVE XOR 1
SAMP.CmdRet()

:get_values
0AF0: 1@ = get_int_from_ini_file "cleo\confing.ini" section "ПЕРВОЕ" key "Количество"
0AF0: 2@ = get_int_from_ini_file "cleo\confing.ini" section "ВТОРОЕ" key "Количество"
0AD3: 0@ = format "{ec0000}ПЕРВОЕ: {FFFFFF}%d  {ec0000}ВТОРОЕ: {FFFFFF}%d" 1@ 2@
ret 1 0@

:buffer
hex
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0
end
 

kizn

О КУ)))
Всефорумный модератор
2,405
2,058
Сделайте пожалуйста код:
если в руках дигл - то:
ни(половой орган) я
если нет - то:
мой код
 

Kotovasya

Участник
85
13
Не могу отсканить id игрока в тексте. Берется строка из диалога, после в ней нужно найти id игрока. Вроде бы все звиздец как просто, но 0AD4 выдает ноль. Через sscanf напрямую так же. Не понимаю почему...

CLEO:
alloc 0@ 64
alloc 1@ 24
0B5B: samp get_listbox_item 1 text_to 0@
0AA5: call 0x8220AD num_params 4 pop 4 params 2@v 1@ "%s[%d]" 0@
0AF8: samp add_message_to_chat "%s" color -1 1@
0AF8: samp add_message_to_chat "%d" color -1 2@
free 0@
free 1@

Ник, между прочим, выводит правильно...
 

BlackKnigga

Известный
BH Team
922
445
Не могу отсканить id игрока в тексте. Берется строка из диалога, после в ней нужно найти id игрока. Вроде бы все звиздец как просто, но 0AD4 выдает ноль. Через sscanf напрямую так же. Не понимаю почему...

CLEO:
alloc 0@ 64
alloc 1@ 24
0B5B: samp get_listbox_item 1 text_to 0@
0AA5: call 0x8220AD num_params 4 pop 4 params 2@v 1@ "%s[%d]" 0@
0AF8: samp add_message_to_chat "%s" color -1 1@
0AF8: samp add_message_to_chat "%d" color -1 2@
free 0@
free 1@

Ник, между прочим, выводит правильно...
А строка где?