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

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,481
1,169
Код:
{$CLEO}
{$INCLUDE SF}
0000:

0BE3: raknet setup_incoming_rpc_hook @hook
0BDE: pause_thread 0

:hook
0BE5: raknet 1@ = get_hook_param PARAM_PACKETID
IF 1@ == RPC_SCRCLIENTMESSAGE
THEN
    0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM
    0BE7: raknet 2@ = bit_stream_read 1@ type BS_TYPE_INT
    0BE7: raknet 3@ = bit_stream_read 1@ type BS_TYPE_INT
    0AC8: 4@ = allocate_memory_size 260
    0BE8: raknet bit_stream 1@ read_array 4@ size 3@
    0C1E: array 4@ element 3@ el_size 1 = 0
    IF 0C29: 6@ = stristr string1 4@ string2 "Получил зарплату" 
    THEN
        000A: 5@ += 1
        0AF8: samp add_message_to_chat "Ты отыграл за все время {00ff00}%d {ffffff} час(ов)." color -1 5@
        0AF1: write_int 5@ to_ini_file "cleo\ini\config.ini" section "SectionName" key "Ответов"
    END
    0AC9: free_allocated_memory 4@
END
0BE0: raknet hook_ret TRUE

Почему счет после перезахода заново идет? Что не так?
Может потому что, там нет чтение старого и прибавление к старому???
 
  • Нравится
Реакции: Config
1,417
1,035
А как обнулять значение в текстовике через команду?
регаешь команду, потом
CLEO:
:метка, на которую зарегал команду
0AF1: write_int 0 to_ini_file "cleo\ini\config.ini" section "SectionName" key "Ответов"
0AF8: samp add_message_to_chat "Значение в ini файле обнулено." color -1
cmdret
 

Guin

Новичок
23
0
Почему не проходит три секунды между "say"?
CLEO:
{$CLEO}
0000: NOP

:Noname_2
wait 0
   SAMP.Available
jf @Noname_2
0B34: samp register_client_command "comanda" to_label @Noname_30
0BDE: pause_thread 0

:Noname_30
   SAMP.IsCommandTyped(1@)
if
0AD4: 2@ = scan_string 1@ format "%d" 3@
say "123456"
wait 3000
say "qwerty"
wait 3000
say "/comanda %d" 3@
goto @Noname_600

:Noname_600
SAMP.CmdRet
 
Последнее редактирование:

BlackKnigga

Известный
BH Team
922
448
Почему не проходит три секунды между "say"?
CLEO:
{$CLEO}
0000: NOP

:Noname_2
wait 0
   SAMP.Available
jf @Noname_2
0B34: samp register_client_command "comanda" to_label @Noname_30
0BDE: pause_thread 0

:Noname_30
   SAMP.IsCommandTyped(1@)
if
0AD4: 2@ = scan_string 1@ format "%d" 3@
say "123456"
wait 3000
say "qwerty"
wait 3000
say "/comanda %d" 3@
goto @Noname_600

:Noname_600
SAMP.CmdRet
В командах нельзя юзать задержки
 

Kaktyc007

Известный
166
11
Решил сделать автоответчик этот код который ниже работает, но возник вопрос: если в строке 0C18: 2@ = strstr string1 1@ string2 "ПРИВЕТ" изменить слово или то автоответчик не работает??? так же если написать не капосом, то опять не работает.
CLEO:
{$CLEO}
0000:
repeat
wait 0
until samp.Available()


while true
wait 0
    repeat
        wait 0
        alloc 1@ 256
        0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
        if
            0C18: 2@ = strstr string1 1@ string2 "ПРИВЕТ"
            then
            wait 1000
            say "Здарова"
            wait 100
            break
            end   
        free 1@ 
    until false
end
 
1,417
1,035
Почему не проходит три секунды между "say"?
CLEO:
{$CLEO}
0000: NOP

:Noname_2
wait 0
   SAMP.Available
jf @Noname_2
0B34: samp register_client_command "comanda" to_label @Noname_30
0BDE: pause_thread 0

:Noname_30
   SAMP.IsCommandTyped(1@)
if
0AD4: 2@ = scan_string 1@ format "%d" 3@
say "123456"
wait 3000
say "qwerty"
wait 3000
say "/comanda %d" 3@
goto @Noname_600

:Noname_600
SAMP.CmdRet
CLEO:
{$CLEO}
0000:

repeat
wait 0
until 0AFA:  is_samp_available

0B34: samp register_client_command "comanda" to_label @cmd

WHILE TRUE
wait 0
    IF 0@ == 1
    THEN
        say "123456"
        wait 3000
        say "qwerty"
        wait 3000
        say "/comanda %d" 3@
        0@ = 0
    END
END

:cmd
0B35: samp 1@ = get_last_command_params
IF 0AD4: 2@ = scan_string 1@ format "%d" 3@
THEN
    0@ = 1
END
0B43: samp cmd_ret
 

debil :))

Участник
86
19
Существует ли способ для считывания информации с текстдрава.Имено надо текст,который написан в TextDraw
 
1,417
1,035
Решил сделать автоответчик этот код который ниже работает, но возник вопрос: если в строке 0C18: 2@ = strstr string1 1@ string2 "ПРИВЕТ" изменить слово или то автоответчик не работает??? так же если написать не капосом, то опять не работает.
CLEO:
{$CLEO}
0000:
repeat
wait 0
until samp.Available()


while true
wait 0
    repeat
        wait 0
        alloc 1@ 256
        0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
        if
            0C18: 2@ = strstr string1 1@ string2 "ПРИВЕТ"
            then
            wait 1000
            say "Здарова"
            wait 100
            break
            end  
        free 1@
    until false
end
"Ищет подстроку в строке c учетом регистра"
CLEO:
{$CLEO}
0000:
repeat
wait 0
until samp.Available()

0B34: "cmd" @cmd

while true
wait 0
    IF 0@ == 1
    THEN       
        0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
        IF 0C18: 2@ = strstr string1 1@ string2 "привет"
        THEN
            wait 1000
            say "ку"
        END
    END
end      

:cmd
0B12: 0@ = 0@ XOR 1
IF 0@ == 1
THEN
    alloc 1@ 256
ELSE
    free 1@
END
cmdret