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

Azller Lollison

я узбек
Друг
1,342
2,265
Привет ебать, я снова тут.
Короче пилю поеботню одну, и нихуя не пашет. Сделал пока-что только для 1 списка, и чета не появляется диалог. Шо не так хз, помогите добрые сиры.
CLEO:
:dialog
0ac8: alloc 0@ size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу)
0ad3: format_stirng 0@ = "Информация об ответах%cИнформация об мутах%cИнформация об киках%cИнформация об jail%cИнформация об варнах%cИнформация об банах" 0xA 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 1 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
if 0B3C: samp is_dialog_responded id 1 button 1@ list_item 3@ input_text 0 // Логгируем нажатие кнопки диалога и выбранного элемента из списка диалога 47
then
    if 1@ == 1 // Была нажата первая кнопка
    then
          log "Была нажата первая кнопка: {ffff00}Уря" -1
          log "Был выбран элемент номер: {ffff00}%d" -1 3@
          if 3@ == 0
          then
                  alloc 6@ 128
                  0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                  0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                  0AD4: 2@ = scan_string 6@ format "%d %s" 3@ 4@
                  0ac8: alloc 0@ size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу)
                  0ad3: format_stirng 0@ = "Кол-во ответов:%d %c Последний ответ:%s %c Какому ID был ответ:%d" 5@ 0xA 4@ 0xA 3@ 
                  0B3B: samp show_dialog id 2 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
          end

          if 3@ == 1
          then
                  0af8: chat "Был выбран элемент: {ffff00}Второй пункт" -1
          end

          if 3@ == 2
          then
                  0af8: chat "Был выбран элемент: {ffff00}Третий пункт" -1
          end
    else
        // Иначе второй кнопкой или же просто закрыт(esc'ом, например) / 1@ == 0
        0af8: chat "Была нажата вторая кнопка: {ffff00}Закрыть" -1
    end
end
SAMP.CmdRet()
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ты в 4@ строку записываешь, а память не выделил
 

Azller Lollison

я узбек
Друг
1,342
2,265
все равно не появляется второй диалог( За-то перестало крашить при повторном вводе команды)
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не появляется сам диалог? или содержимое
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
alloc 6@ 128 0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint" 0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr" 0AD4: 2@ = scan_string 6@ format "%d %s" 3@ 4@ 0ac8: alloc 0@ size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу) 0ad3: format_stirng 0@ = "Кол-во ответов:%d %c Последний ответ:%s %c Какому ID был ответ:%d" 5@ 0xA 4@ 0xA 3@ 0B3B: samp show_dialog id 2 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
скрипт сюда доходит ?

попробуй выделить больше памяти, сменить ид диалога, воспользоваться структурой hex end
 
Последнее редактирование модератором:

Azller Lollison

я узбек
Друг
1,342
2,265
скрипт сюда доходит ?
Откуда я знаю?) Попробую сейчас сделать запись чего-то в иник если дошло, сек.
Нет, не доходит скрипт до сюда.

попробуй выделить больше памяти, сменить ид диалога, воспользоваться структурой hex end
Выделил 128 на 0@, не помогло.
 
Последнее редактирование модератором:

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Откуда я знаю?) Попробую сейчас сделать запись чего-то в иник если дошло, сек.
Нет, не доходит скрипт до сюда.
В логе посмотри какой элемент выбираешь
 

Azller Lollison

я узбек
Друг
1,342
2,265
is_dialog_responded в главный цикл скрипта
Теперь при вводе кмд сразу вылазит в чат что была нажата клавиша закрыть, и вылазит диалог первый. Но второй все еще не работае.
CLEO:
:dialog
0ac8: alloc 0@ size 64 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу)
0ad3: format_stirng 0@ = "Информация об ответах%cИнформация об мутах%cИнформация об киках%cИнформация об jail%cИнформация об варнах%cИнформация об банах" 0xA 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 1 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
0B3C: samp is_dialog_responded id 1 button 1@ list_item 3@ input_text 0 // Логгируем нажатие кнопки диалога и выбранного элемента из списка диалога 47
    if 1@ == 1 // Была нажата первая кнопка
    then
          log "Была нажата первая кнопка: {ffff00}Уря" -1
          log "Был выбран элемент номер: {ffff00}%d" -1 3@
          if 3@ == 0
          then
                  alloc 6@ 128
                  alloc 4@ 128
                  0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test"
                  0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                  0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                  0AD4: 2@ = scan_string 6@ format "%d %s" 3@ 4@
                  0ac8: alloc 0@ size 128 // Выделяем память под список элементов(кол-во текста должно быть не больше 64 символов(пробелы и переходы на новую строку тоже равны 1 символу)
                  0ad3: format_stirng 0@ = "Кол-во ответов:%d %c Последний ответ:%s %c Какому ID был ответ:%d" 5@ 0xA 4@ 0xA 3@
                  0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
          end

          if 3@ == 1
          then
                  0af8: chat "Был выбран элемент: {ffff00}Второй пункт" -1
          end

          if 3@ == 2
          then
                  0af8: chat "Был выбран элемент: {ffff00}Третий пункт" -1
          end
    else
        // Иначе второй кнопкой или же просто закрыт(esc'ом, например) / 1@ == 0
        0af8: chat "Была нажата вторая кнопка: {ffff00}Закрыть" -1
    end
SAMP.CmdRet()
 

hnnssy

Известный
Друг
2,684
2,753
ой пиздос
всю конструкцию со вторым диалогом в цикл
 

Azller Lollison

я узбек
Друг
1,342
2,265
ой пиздос
всю конструкцию со вторым диалогом в цикл
Как именно то?
Я ещё не проходил многоуровневые конструкции, по шаблону решил работать и узнать как это все работает, но чота не получилось по шаблону
 
1,417
1,030
Как именно то?
Я ещё не проходил многоуровневые конструкции, по шаблону решил работать и узнать как это все работает, но чота не получилось по шаблону
CLEO:
WHILE TRUE
wait 0
    IF 0B3C: samp is_dialog_responded id 1 button 1@ list_item 3@ input_text 0 // Ëîããèðóåì íàæàòèå êíîïêè äèàëîãà è âûáðàííîãî ýëåìåíòà èç ñïèñêà äèàëîãà 47
    THEN
        if 1@ == 1 // Áûëà íàæàòà ïåðâàÿ êíîïêà
        then
              log "Áûëà íàæàòà ïåðâàÿ êíîïêà: {ffff00}Óðÿ" -1
              log "Áûë âûáðàí ýëåìåíò íîìåð: {ffff00}%d" -1 3@
              if 3@ == 0
              then
                      alloc 6@ 128
                      alloc 4@ 128
                      0AF1: write_int 1 to_ini_file "cleo\at.ini" section "Ans" key "Test"
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                      0AD4: 2@ = scan_string 6@ format "%d %s" 3@ 4@
                      0ac8: alloc 0@ size 128 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó)
                      0ad3: format_stirng 0@ = "Êîë-âî îòâåòîâ:%d %c Ïîñëåäíèé îòâåò:%s %c Êàêîìó ID áûë îòâåò:%d" 5@ 0xA 4@ 0xA 3@
                      0B3B: samp show_dialog id 314 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
              end
  
              if 3@ == 1
              then
                      0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Âòîðîé ïóíêò" -1
              end
  
              if 3@ == 2
              then
                      0af8: chat "Áûë âûáðàí ýëåìåíò: {ffff00}Òðåòèé ïóíêò" -1
              end
        else
            // Èíà÷å âòîðîé êíîïêîé èëè æå ïðîñòî çàêðûò(esc'îì, íàïðèìåð) / 1@ == 0
            0af8: chat "Áûëà íàæàòà âòîðàÿ êíîïêà: {ffff00}Çàêðûòü" -1
        end
    END
END

:dialog
0ac8: alloc 0@ size 64 // Âûäåëÿåì ïàìÿòü ïîä ñïèñîê ýëåìåíòîâ(êîë-âî òåêñòà äîëæíî áûòü íå áîëüøå 64 ñèìâîëîâ(ïðîáåëû è ïåðåõîäû íà íîâóþ ñòðîêó òîæå ðàâíû 1 ñèìâîëó)
0ad3: format_stirng 0@ = "Èíôîðìàöèÿ îá îòâåòàõ%cÈíôîðìàöèÿ îá ìóòàõ%cÈíôîðìàöèÿ îá êèêàõ%cÈíôîðìàöèÿ îá jail%cÈíôîðìàöèÿ îá âàðíàõ%cÈíôîðìàöèÿ îá áàíàõ" 0xA 0xA 0xA 0xA 0xA
0B3B: samp show_dialog id 1 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 0@ button_1 "Âûáðàòü" button_2 "Çàêðûòü" style DIALOG_STYLE_LIST
SAMP.CmdRet()
и в случае с диалогами, лучше вместо форматирования использовать hex конструкции