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

Bogach

Активный
558
27
Ребят, помогите, у меня с проверками туговато, не получается сделать. Возьмем такой пример
C++:
0AC8: 20@ = allocate_memory_size 30 // выделяем память под запись числа кол-ва повторов
if 0B3C:  samp is_dialog_responded id 1007 button 21@ list_item 0 input_text 20@
then
    if 21@ == 1
    then
        if 0AD4: 23@ = scan_string 20@ format "%d" 22@
        then
            FOR 23@ = 1 to 22@ step 1
                0AF9: samp say_msg "/pay %d %d" 7@ 19@ // 7@ - ид игрока | 19@ - сумма передачи
                wait 6000
            END
            0AC9: free_allocated_memory 20@
            0AC9: free_allocated_memory 23@
        end
    else
    end
end
Как сделать проверку на то, ввел ли что - то игрок в диалог? как сделать проверку на то, что число введенное в диалог не превышает указанного числа?
И допустим мне в диалог нужно вводить текст (string), как сделать проверку на то, что кол-во введенных символов в диалог не превышает указанного?
 

Bogach

Активный
558
27
Ребят, прошу помощи, после долгих раздумий, я просто не знаю что делать, делал клео "мп хелпер" давно ещё, три дня назад и ранее все замечательно работало, а вчера или даже ещё позавчера вечером, вдруг перестало кое-какие функции работать, хотя написано было все правильно, перепроверял сотню раз, после этого, я решил переписать клео заново и проверяя, чтобы не было ошибок, дописал, зашел в игру протестить и ничего не изменилось, тоже самое не работает.
Самое странное, что после проверок, я выяснил, что не работает опкод "0af9"
вот часть кода:
Код:
repeat
wait 0
if 0ADC:   test_cheat "MP"
then
0AC6: 0@ = label @MainBuffer2 offset
0AC6: 0@ = label @pred_spisok offset
0B3B: samp show_dialog id 1000 caption "{008cf0}МП Helper" text 0@ button_1 "-ok-" button_2 "-close-" style DIALOG_STYLE_LIST
end
if 0B3C:  samp is_dialog_responded id 1000 button 1@ list_item 2@ input_text 0
then
    if 1@ == 1 // Если была нажата кнопка -ok-
    then
        if 2@ == 0 // Если был выбран первый пункт списка (Оповещение о казаках)
        then
            0AF9: samp say_msg "Сейчас пройдут 'Казаки-разбойники' (/tp)."
            0AF9: samp say_msg "Для участия необходимо иметь: 5 Уровень и 1500$."
        end
        if 2@ == 1 // Если был выбран второй пункт списка (Оповещение о гонках)
        then
            0AF9: samp say_msg "Сейчас пройдёт МП 'Гонки'.(/tp)"
            0AF9: samp say_msg "Для участия необходимо иметь: 4 уровень + 1000$."
        end
        if 2@ == 2 // Если был выбран третий пункт списка (МП остаться в живых)
        then
            // 0050: gosub @mpsponsorgosub
            chatmsg "2-ой пункт работает" -1
            0AF9: samp say_msg "Уважаемые игроки! Сейчас пройдет мероприятие 'Остаться в живых'."
            0AF9: samp say_msg "Желающие, пишите /tp. Кого телепортировали, встаем в строй."
            0AF9: samp say_msg "Спонсор: %s. Приз: %s, скин, авто."
            0AF9: samp say_msg "На МП запрещено DM, сбив и другие нарушения, в том числе и маска."
            // 0AC9: free_allocated_memory 4@
            // 0AC9: free_allocated_memory 6@
        end
   else  
   end
end
Первые 2 пункта меню отлично работают. Начиная с третьего, не отправляется текст написанный в опкоде "0af9", a "0af8" работает
Подскажите в чем проблема пожалуйста, если знаете.:sorry:
 

Perojek)0

Известный
205
3
Как можно взаимодействовать с TextDraw, то есть нажимать, как на кнопку... ну и в этом духе?
Как можно изменить цвет текста в TextDraw?
Как можно изменить TextDraw сервера?
 

Dark_Knight

Me, me and me.
Друг
4,078
2,095
Опкоды для работы с текстдравами есть на вики. Первое врятли на клео получится сделать.
 

BlackKnigga

Известный
BH Team
922
446
Ребят, прошу помощи, после долгих раздумий, я просто не знаю что делать, делал клео "мп хелпер" давно ещё, три дня назад и ранее все замечательно работало, а вчера или даже ещё позавчера вечером, вдруг перестало кое-какие функции работать, хотя написано было все правильно, перепроверял сотню раз, после этого, я решил переписать клео заново и проверяя, чтобы не было ошибок, дописал, зашел в игру протестить и ничего не изменилось, тоже самое не работает.
Самое странное, что после проверок, я выяснил, что не работает опкод "0af9"
вот часть кода:
Код:
repeat
wait 0
if 0ADC:   test_cheat "MP"
then
0AC6: 0@ = label @MainBuffer2 offset
0AC6: 0@ = label @pred_spisok offset
0B3B: samp show_dialog id 1000 caption "{008cf0}МП Helper" text 0@ button_1 "-ok-" button_2 "-close-" style DIALOG_STYLE_LIST
end
if 0B3C:  samp is_dialog_responded id 1000 button 1@ list_item 2@ input_text 0
then
    if 1@ == 1 // Если была нажата кнопка -ok-
    then
        if 2@ == 0 // Если был выбран первый пункт списка (Оповещение о казаках)
        then
            0AF9: samp say_msg "Сейчас пройдут 'Казаки-разбойники' (/tp)."
            0AF9: samp say_msg "Для участия необходимо иметь: 5 Уровень и 1500$."
        end
        if 2@ == 1 // Если был выбран второй пункт списка (Оповещение о гонках)
        then
            0AF9: samp say_msg "Сейчас пройдёт МП 'Гонки'.(/tp)"
            0AF9: samp say_msg "Для участия необходимо иметь: 4 уровень + 1000$."
        end
        if 2@ == 2 // Если был выбран третий пункт списка (МП остаться в живых)
        then
            // 0050: gosub @mpsponsorgosub
            chatmsg "2-ой пункт работает" -1
            0AF9: samp say_msg "Уважаемые игроки! Сейчас пройдет мероприятие 'Остаться в живых'."
            0AF9: samp say_msg "Желающие, пишите /tp. Кого телепортировали, встаем в строй."
            0AF9: samp say_msg "Спонсор: %s. Приз: %s, скин, авто."
            0AF9: samp say_msg "На МП запрещено DM, сбив и другие нарушения, в том числе и маска."
            // 0AC9: free_allocated_memory 4@
            // 0AC9: free_allocated_memory 6@
        end
   else 
   end
end
Первые 2 пункта меню отлично работают. Начиная с третьего, не отправляется текст написанный в опкоде "0af9", a "0af8" работает
Подскажите в чем проблема пожалуйста, если знаете.:sorry:
0AF9: samp say_msg "Спонсор: %s. Приз: %s, скин, авто." Параметры не указал.
 

Bogach

Активный
558
27
0AF9: samp say_msg "Спонсор: %s. Приз: %s, скин, авто." Параметры не указал.
Это тут не причем, в таком случае бы отправилось так: Спонсор: (null). Приз: (null), скин, авто."
Я просто всяко разно пытался и не выходит не в какую. Я в растерянности, как такое возможно.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Значит на сервере срабатывает анти-флуд
Всё там нормально
 

RedBoxWhite

Известный
337
27
Как правильно использовать проверку на нахождение человека в этом периметре? Может я неправильно использовал опкод 00A4. Надо чтобы, если актёр находился в этом периметре, то скрипт должен включить таймер и начать отсчёт.
CLEO:
{$CLEO}
0000:
wait 2000
   
0C74: 0@ = create_timer_interval 120000 on_label @mytimer
0C78: set_timer 0@ active false

:1
while true
    wait 0
    if 00A4: actor $PLAYER_ACTOR sphere 0 in_cube_cornerA 2357.69 -1135.57 1050.88 cornerB 2375.81 -1120.80 1050.88
    then
    0C78: set_timer 0@ active true
    0C7C: 3@ = get_timer 0@ time_left
0085: 13@ = 3@
0016: 13@ /= 1000

    0AD1: show_formatted_text_highpriority "Time left: %d" time 0 13@
    end 
    wait 0
    end
       

:mytimer
0AF8: samp add_message_to_chat "Прошло 2 минуты" color -1
0C78: set_timer 0@ active false
0B43: samp cmd_ret
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
Координату Z тоже нужно учитывать. В координатах уменьши на 1-2 пункта