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

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
while true
wait 0
0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0
IF 0C18: 0 = strstr string1 31@ string2 "лол" // Текст есть, но почему-то скрипт не доходит до then....
THEN
say "Бла" // Сообщения нет
wait 500
END
cmdret
END[/code]
Попробуй в самп зайти и ввести "лол" в чат, если скрипт отправит "бла", то тогда именно у меня проблемы[/QUOTE]
Хе-хе, ну-ка скажи, где тут метки?
Код:
{$CLEO}
0000:
repeat
wait 0
until 0AFA:
alloc 31@ 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 0C18: 0 = strstr string1 31@ string2 "лол" // Текст есть, но почему-то скрипт не доходит до then....
THEN
say "Бла" // Сообщения нет
wait 500
END
cmdret
END
Попробуй в самп зайти и ввести "лол" в чат, если скрипт отправит "бла", то тогда именно у меня проблемы
возможно в чате должно быть именно "лол" (без ничего)
 

Skelerll

Известный
154
8
while true
wait 0
0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0
IF 0C18: 0 = strstr string1 31@ string2 "лол" // Текст есть, но почему-то скрипт не доходит до then....
THEN
say "Бла" // Сообщения нет
wait 500
END
cmdret
END[/code]
Попробуй в самп зайти и ввести "лол" в чат, если скрипт отправит "бла", то тогда именно у меня проблемы

возможно в чате должно быть именно "лол" (без ничего)[/QUOTE]
Нет. Изначально мне нужно было проверять текст "[Ошибка] Рядом с вами нет транспорта!", там только он. И все равно не работало (и не работает сейчас). Проверь у себя.
 

grandpafromghetto

НАСТАЯЩИЙ ДАГИСТАНИЦ
Проверенный
335
119
возможно в чате должно быть именно "лол" (без ничего)
Нет. Изначально мне нужно было проверять текст "[Ошибка] Рядом с вами нет транспорта!", там только он. И все равно не работало (и не работает сейчас). Проверь у себя.[/QUOTE]
у меня тоже самое
 

Skelerll

Известный
154
8
А есть ли вместо опкода 0B75: samp get_chat_string 99 text_to 31@ prefix_to 0 color_to 0 prefix_color_to 0 другой опкод, который считывает текст с chatlog?
 

Lord

Новичок
236
42
возможно в чате должно быть именно "лол" (без ничего)
Нет. Изначально мне нужно было проверять текст "[Ошибка] Рядом с вами нет транспорта!", там только он. И все равно не работало (и не работает сейчас). Проверь у себя.[/QUOTE]
Видимо у тебя стоит цвет перед этим
"[Ошибка] Рядом с вами нет транспорта!"
чекай чатлог
 

Skelerll

Известный
154
8
Нет. Изначально мне нужно было проверять текст "[Ошибка] Рядом с вами нет транспорта!", там только он. И все равно не работало (и не работает сейчас). Проверь у себя.
Видимо у тебя стоит цвет перед этим

чекай чатлог[/QUOTE]
Да, у меня стоит цвет перед ним, что делать?
 

Skelerll

Известный
154
8
Вот полный код, почему он не работает, ведь я все правильно написал.
Код:
{$CLEO}
0000:
REPEAT
wait 0
UNTIL samp.Available()

WHILE TRUE
wait 0
IF AND
80DF:   actor $PLAYER_ACTOR driving
0ADC:   test_cheat "F"
THEN
    0AF9: samp say_msg "/lock"
    wait 300
    0B56: set_game_key 15 state 255
    0AC8: 1@ = allocate_memory_size 512
    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
                ELSE  
                WHILE TRUE
                wait 0
                IF 00DF:   actor $PLAYER_ACTOR driving
                THEN
                wait 50
                0AF9: samp say_msg "/lock"
                END
            END
        END
        0AC9: free_allocated_memory 1@
    END
    0AC9: free_allocated_memory 1@
END
Вот это: Вопрос - Вопросы по CLEO-скриптингу(https://blast.hk/threads/13410/page-405#post-179362) работает, а мое нет. Помогите.
 
Последнее редактирование:

Lord

Новичок
236
42
Вот полный код, почему он не работает, ведь я все правильно написал.
Код:
{$CLEO}
0000:
REPEAT
wait 0
UNTIL samp.Available()

WHILE TRUE
wait 0
IF AND
80DF:   actor $PLAYER_ACTOR driving
0ADC:   test_cheat "F"
THEN
    0AF9: samp say_msg "/lock"
    wait 300
    0B56: set_game_key 15 state 255
    0AC8: 1@ = allocate_memory_size 512
    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
                ELSE 
                WHILE TRUE
                wait 0
                IF 00DF:   actor $PLAYER_ACTOR driving
                THEN
                wait 50
                0AF9: samp say_msg "/lock"
                END
            END
        END
        0AC9: free_allocated_memory 1@
    END
    0AC9: free_allocated_memory 1@
END
Вот это: Вопрос - Вопросы по CLEO-скриптингу(https://blast.hk/threads/13410/page-405#post-179362) работает, а мое нет. Помогите.
кинь скрин текста и всю строку из чатлога
 

Kotovasya

Участник
85
13
Код:
IF AND
80DF:   actor $PLAYER_ACTOR driving
0ADC:   test_cheat "F"
THEN
    0AF9: samp say_msg "/lock"
    wait 300
    0B56: set_game_key 15 state 255
Убери эту часть кода и пробуй. У тебя до условия проверки на чат доходит только в том случае, если у тебя нажата клавиша F (test_cheat). Насколько я помню, он не зажимной. И если ты нажал эту клавишу, но в этот же момент у тебя не было в 99 строчке чата сообщения с текстом "лол", то он естестенно не сработает. Замени на опкод 0AB0: key_pressed 70, может получится. Потому что явно ошибка не в том что у тебя текст не находит, а в том что до этого условия код просто не доходит...
 

Lord

Новичок
236
42
@Skelerll
всё разжевано, если это не поможет, то я хз что с тобой не так

CLEO:
{$CLEO}
{$INCLUDE SF}
0000:
repeat
wait 0
until 0AFA:  is_samp_available

0AC8: 1@ = allocate_memory_size 512
WHILE TRUE
wait 0
0B75: samp get_chat_string 99 text_to 1@ prefix_to 0 color_to 0 prefix_color_to 0
IF AND
80DF:   actor $PLAYER_ACTOR driving
0ADC:   test_cheat "F"
THEN
    chatmsg "Условие активации выполнено." -1
    0AF9: samp say_msg "/lock" // Команда /lock введена."
    wait 300
        IF 0C18: 2@ = strstr string1 1@ string2 "с вами нет транспорта!" // тут лучше не трогать.
        THEN
        chatmsg "Условие 0C18 выполнено положительно. Тогда... ничего." -1
        ELSE // Условие 0C18 выполнено отрицательно. Тогда...
            IF 00DF:   actor $PLAYER_ACTOR driving // Если актёр за рулем
            THEN //
            wait 50
            0AF9: samp say_msg "/lock" // Команда /lock введена.
            END
        END
    END
END

Код:
IF AND
80DF:   actor $PLAYER_ACTOR driving
0ADC:   test_cheat "F"
THEN
    0AF9: samp say_msg "/lock"
    wait 300
    0B56: set_game_key 15 state 255
Убери эту часть кода и пробуй. У тебя до условия проверки на чат доходит только в том случае, если у тебя нажата клавиша F (test_cheat). Насколько я помню, он не зажимной. И если ты нажал эту клавишу, но в этот же момент у тебя не было в 99 строчке чата сообщения с текстом "лол", то он естестенно не сработает. Замени на опкод 0AB0: key_pressed 70, может получится. Потому что явно ошибка не в том что у тебя текст не находит, а в том что до этого условия код просто не доходит...
доходит
 
Последнее редактирование модератором:
  • Нравится
Реакции: Skelerll

Musaigen

shitposter
Проверенный
1,659
1,476
под 0b75 не нужно выделять память, он возвращает указатель на строку