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

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
Блин, не работает. Считывать он считывает, только вот скрипт дальше не идет и ведет себя странно.

Код:
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
0AF8: samp add_message_to_chat 2@ color 0xFFFFFFFF // Чтобы видно было, то ли считал скрипт. Он считывает то.
if
0C18: 0@ = strstr string1 2@ string2 "текст"
then
jump @START // Самое начало.
else
jump @CONTINUE // Метка, чтобы продолжить скрипт
end
Но скрипт почему-то бездействует.
CLEO:
while true
wait 0

// introduction
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
0AF8: samp add_message_to_chat "%s" color -1 2@
if 8C18: not 0 = strstr string1 2@ string2 "text"
then
{code} // continue
end

end
как же затрахали твои метки
 

Kotovasya

Участник
85
13
Может просто лучше начать юзать хуки?
CLEO:
alloc 3@ 64
0BE3: raknet setup_incoming_rpc_hook @stroka 

while true
wait 0
    if 25@ == 1
    then
        code
    end
end
:stroka
0BE5: raknet 0@ = get_hook_param 1 
if 0@ == 93 
then 
    0BE5: raknet 1@ = get_hook_param 0 
    0BEB: raknet bit_stream 1@ ignore_bits 32 
    0BE7: raknet 2@ = bit_stream_read 1@ type 3 
    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 "текст" 
    then
        25@ = 1
    end
end
0BE0: raknet hook_ret 1
 
  • Нравится
Реакции: Skelerll

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
Может просто лучше начать юзать хуки?
CLEO:
alloc 3@ 64
0BE3: raknet setup_incoming_rpc_hook @stroka

while true
wait 0
    if 25@ == 1
    then
        code
    end
end
:stroka
0BE5: raknet 0@ = get_hook_param 1
if 0@ == 93
then
    0BE5: raknet 1@ = get_hook_param 0
    0BEB: raknet bit_stream 1@ ignore_bits 32
    0BE7: raknet 2@ = bit_stream_read 1@ type 3
    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 "текст"
    then
        25@ = 1
    end
end
0BE0: raknet hook_ret 1
рано ему еще хуки, раз он еще элементарных вещей не знает + пишет на метках, как нубяра
 

Kotovasya

Участник
85
13
рано ему еще хуки, раз он еще элементарных вещей не знает + пишет на метках, как нубяра
Я когда таким же нубом был, просто всовывал этот хук в код, не понимал толком для чего он, но хотя бы все работало :D
 
  • Нравится
Реакции: Skelerll

Kotovasya

Участник
85
13
Да не, как так? А я думал все сразу всё знали, кроме меня -_-
Сидел рылся в исходниках, читал справку по опкодам, заходил в игру тестил шо да как работает. Перечитал тут страниц 150, спрашивал исключительно редко. Посмотри видео Таира, как писать не на метках, намного проще станет писать код. В общем все возможно, было бы у тебя желание. Только по этой причине не каждому дано быть программистом
 

Skelerll

Известный
154
8
CLEO:
while true
wait 0

// introduction
0B75: samp get_chat_string 99 text_to 2@ prefix_to 3@ color_to 4@ prefix_color_to 5@
0AF8: samp add_message_to_chat "%s" color -1 2@
if 8C18: not 0 = strstr string1 2@ string2 "text"
then
{code} // continue
end

end
как же затрахали твои метки
Не работает, не знаю, что ты там поменял. Причем ты зря изменил 0AF8: samp add_message_to_chat "%s" color -1 2@, сообщение вообще не выводитсяю

Сидел рылся в исходниках, читал справку по опкодам, заходил в игру тестил шо да как работает. Перечитал тут страниц 150, спрашивал исключительно редко. Посмотри видео Таира, как писать не на метках, намного проще станет писать код. В общем все возможно, было бы у тебя желание. Только по этой причине не каждому дано быть программистом
Это был сарказм.. Видео Таира я смотрю..
 
Последнее редактирование модератором:

Kotovasya

Участник
85
13
Не работает, не знаю, что ты там поменял. Причем ты зря изменил 0AF8: samp add_message_to_chat "%s" color -1 2@, сообщение вообще не выводитсяю
Надоело мне на это смотреть, держи готовый, рабочий пример

CLEO:
{$CLEO}

0000:

repeat
    wait 300
until samp.Available()
0AC8: 31@ = allocate_memory_size 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 0 = strstr string1 31@ string2 "вступил в нашу фракцию"
    then      
        0C2C: 22@ = strrchr 31@ char 91
        0C11: memset destination 22@ value 0 size 1
        000A: 22@ += 1
        0C1A: 1@ = atoi 22@
        wait 300
        say "/pm %d Welcome. Не забудь сделать скриншот вступления [F8] " 1@ 
        wait 300
        say "/pm %d И отписаться на форуме. И помни: ты сделал правильный выбор" 1@ 
        wait 1000
    end
end
 
  • Нравится
Реакции: Skelerll

Skelerll

Известный
154
8
Надоело мне на это смотреть, держи готовый, рабочий пример

CLEO:
{$CLEO}

0000:

repeat
    wait 300
until samp.Available()
0AC8: 31@ = allocate_memory_size 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 0 = strstr string1 31@ string2 "вступил в нашу фракцию"
    then     
        0C2C: 22@ = strrchr 31@ char 91
        0C11: memset destination 22@ value 0 size 1
        000A: 22@ += 1
        0C1A: 1@ = atoi 22@
        wait 300
        say "/pm %d Welcome. Не забудь сделать скриншот вступления [F8] " 1@
        wait 300
        say "/pm %d И отписаться на форуме. И помни: ты сделал правильный выбор" 1@
        wait 1000
    end
end
Спасибо. Все-таки я понял о каких метках вы говорили. Да, я согласен, я нуб. Но теперь я буду писать "Высокоуровневые конструкции"
 

Skelerll

Известный
154
8
Надоело мне на это смотреть, держи готовый, рабочий пример

CLEO:
{$CLEO}

0000:

repeat
    wait 300
until samp.Available()
0AC8: 31@ = allocate_memory_size 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 0 = strstr string1 31@ string2 "вступил в нашу фракцию"
    then     
        0C2C: 22@ = strrchr 31@ char 91
        0C11: memset destination 22@ value 0 size 1
        000A: 22@ += 1
        0C1A: 1@ = atoi 22@
        wait 300
        say "/pm %d Welcome. Не забудь сделать скриншот вступления [F8] " 1@
        wait 300
        say "/pm %d И отписаться на форуме. И помни: ты сделал правильный выбор" 1@
        wait 1000
    end
end
Мда.. Не работает.. Ты проверял у себя? О не компилируется, а чтобы скомпилировался, нужно поставить 0C18: перед условием, и после этого скрипт не работает
 

Skelerll

Известный
154
8
Видимо стерся случайно. Нужно, нужно там поставить... А так работает у меня
А у меня нет, лол... Что не так? Даже для проверки именно этот скрипт, не изменяя, поставил себе, прописал "вступил в нашу фракцию", и ничего не произошло. Мб я что-то не так делаю?
 

Kotovasya

Участник
85
13
А у меня нет, лол... Что не так? Даже для проверки именно этот скрипт, не изменяя, поставил себе, прописал "вступил в нашу фракцию", и ничего не произошло. Мб я что-то не так делаю?
Хук юзай, в конце-то концов. Выше я кидал