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

ShadowBroker

Известный
110
27
У всех разный FPS и это отражается на скорости работы скрипта, конкретно на задержке wait. Есть какие-то выходы из этой ситуации? Что бы скрипт работал одинаково на любом пк?
 

hnnssy

Известный
Друг
2,684
2,769
У всех разный FPS и это отражается на скорости работы скрипта, конкретно на задержке wait. Есть какие-то выходы из этой ситуации? Что бы скрипт работал одинаково на любом пк?
использовать переменные-счётчики или таймеры
 

ShadowBroker

Известный
110
27
32@ и 33@ переменные можно как-то заюзать в FOR? Что бы их отсчет считался за итерации? И если да то как?
 

samp is meme

Активный
183
63
{$CLEO .cs}
0000:
repeat
wait 228
until samp.Available()

0B34: samp register_client_command "did" to_label @did

while true
wait 0
end

:did
if samp.IsDialogActive(-1)
then
0B4E: samp 0@ = get_current_dialog_id
chatmsg "Диалог открыт {FFFAFA}[%d]" 0x00EE00 0@
else
chatmsg "Диалог не открыт" 0xFF7F00
end
samp.CmdRet()

Кароч копируй код и вставляй в СБ , компелируй , заходи в игру ,вызывай диалог , пиши /did и в чате будет ИД диалога
нахуя тут цикл? pause thread 0 и без цикла
 

ShadowBroker

Известный
110
27
А как остановить переменную-таймер?
Чет меня стремает тот факт что она будет до бесконечности считать
 

hnnssy

Известный
Друг
2,684
2,769
А как остановить переменную-таймер?
Чет меня стремает тот факт что она будет до бесконечности считать
зачем её останавливать?
не переживай, с ней будет всё в порядке, она выдержит
 
  • Нравится
Реакции: ShadowBroker

memir

🇷🇺
Всефорумный модератор
341
613
а чо с ней будет если она в себя запишет значение больше 4-х байт?
Произойдет переполнение переменной, всё. Обычно после такого программа не крашит, но переменной присваивается невалидное значение
 

samp is meme

Активный
183
63

Azller Lollison

ещкере
Друг
1,380
2,422
Привет ебать, я снова тут.
Короче пилю поеботню одну, и нихуя не пашет. Сделал пока-что только для 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()