Создание длинного списка в диалоге

Статус
В этой теме нельзя размещать новые ответы.

MrAntow

Новичок
Автор темы
59
16
Подскажите, как сделать длинный список в локальном диалоге?
Сейчас использую опкод
0B3B: samp show_dialog id 17 caption 6@ text 0@ button_1 7@ button_2 8@ style 1.
Если я заменяю 0@ на 0@v то игру фризит несколько секунд а сам список вообще пустой.
Заранее спасибо!
 

MrAntow

Новичок
Автор темы
59
16
Так, я про hex end не читал.Спасибо за идею

Как бы засунуть текст в виде переменной в hex end?
Юзаю этот код

:cmd
wait 0
0AC6: 4@ = label @cmdmenu offset
0B3B: samp show_dialog id 33 caption "Caprion" text 4@ button_1 "BTN1" button_2 "BTN2" style 2
0B43: samp cmd_ret

:cmdmenu
hex
"1 пункт" A
"2 пункт" A
"3 пункт" 00
end

Вместо "1 пункт" надо подставить текст из переменной.Как это сделать?
 
Последнее редактирование модератором:

Сэнд

Известный
Проверенный
436
212
Так, я про hex end не читал.Спасибо за идею
CLEO:
//...
0AC8: 11@ = allocate_memory_size 68
0AC6: 13@ = label @labelWithText
0B3B: samp show_dialog id 47 caption "My Dialog" text 13@  button_1 "Exit" button_2 "" style 12@
0AC9: free_allocated_memory 11@
//...

:labelWithText
hex
7B "0FFF00" 7D "цветной текст" 20 7B "FFFFFF" 7D "строка" A
7B "0FFF00" 7D "цветной текст" 20 7B "FFFFFF" 7D "ещё строка" A
7B "0FFF00" 7D "цветной текст" 20 7B "FFFFFF" 7D "последняя строка" 00
end

7B = "Цвет без #"
7D = "Сам текст"
20 = Пробел
A = Новая строка
00 = Конец текста


Как бы засунуть текст в виде переменной в hex end?
Юзаю этот код

:cmd
wait 0
0AC6: 4@ = label @cmdmenu offset
0B3B: samp show_dialog id 33 caption "Caprion" text 4@ button_1 "BTN1" button_2 "BTN2" style 2
0B43: samp cmd_ret

:cmdmenu
hex
"1 пункт" A
"2 пункт" A
"3 пункт" 00
end

Вместо "1 пункт" надо подставить текст из переменной.Как это сделать?
%s или %d подставить попробуй, может сработает
 
Последнее редактирование:

MrAntow

Новичок
Автор темы
59
16
То есть не существует метода переноса значения переменной в лабэл с hex?Спасибо за инфу
 

MrAntow

Новичок
Автор темы
59
16
Чёрт возьми, выдает ошибку "Метка "" не найдена". Буду экспериментировать, спасибо
 

MrAntow

Новичок
Автор темы
59
16
Хорошо, выдаю то что в главном цикле

repeat
wait 0
if test_cheat "kl"
then
0ad3: format_string 4@ = "Пункт н1"
0AC6: 0@ = label @cmdmenu offset
0B3B: samp show_dialog id 17 caption 6@ text 0@ button_1 "Окей" button_2 8@ style DIALOG_STYLE_LIST
// обработчик нажатия, он работает
end
until false

:cmdmenu
hex
"1 пункт" A
"2 пункт" A
"3 пункт" 00
end

Задача - подставить текст переменной 4@ в конструкцию hex end

P.S чтоб не захламлять страницу размашистым кодом
 

Сэнд

Известный
Проверенный
436
212
Хорошо, выдаю то что в главном цикле

repeat
wait 0
if test_cheat "kl"
then
0ad3: format_string 4@ = "Пункт н1"
0AC6: 0@ = label @cmdmenu offset
0B3B: samp show_dialog id 17 caption 6@ text 0@ button_1 "Окей" button_2 8@ style DIALOG_STYLE_LIST
// обработчик нажатия, он работает
end
until false

:cmdmenu
hex
"1 пункт" A
"2 пункт" A
"3 пункт" 00
end

Задача - подставить текст переменной 4@ в конструкцию hex end

P.S чтоб не захламлять страницу размашистым кодом
ты мог бы в
CLEO:
//
кинуть, оно бы сократилось
ты пытаешься вместо "1 пункт" сделать "%s"?

вот я сам не пойму, реально ли вообще засунуть туда динамичный текст
 

MrAntow

Новичок
Автор темы
59
16
ты пытаешься вместо "1 пункт" сделать "%s"?
Да, всё правильно. Сижу, ломаю голову...

Странно: опкод 0B3B: samp show_dialog id 17 caption 6@ text 0@ button_1 "Окей" button_2 8@ style DIALOG_STYLE_LIST, при использовании 0@v не работает, а при 0@ - работает.Длинный список реализовать нельзя или что-то еще тут.
 
Последнее редактирование модератором:

Сэнд

Известный
Проверенный
436
212
Странно: опкод 0B3B: samp show_dialog id 17 caption 6@ text 0@ button_1 "Окей" button_2 8@ style DIALOG_STYLE_LIST, при использовании 0@v не работает, а при 0@ - работает.Длинный список реализовать нельзя или что-то еще тут.
v не нужно, я делал без него и со списком всё нормально
 

MrAntow

Новичок
Автор темы
59
16
А сколько было пунктов?

По идее смысл клео таков - из ini файла берутся названия строк, затем из них создаётся список

Вот что-то описано, может ты разберешь - https://sannybuilder.com/forums/viewtopic.php?id=3980
 
Последнее редактирование модератором:

Сэнд

Известный
Проверенный
436
212
А сколько было пунктов?

По идее смысл клео таков - из ini файла берутся названия строк, затем из них создаётся список
вот сколько пунктов было, делал пол года назад через hex end
Q8QStOdT8xE.jpg
 

MrAntow

Новичок
Автор темы
59
16
Тебе повезло, текст статичный...

У меня каждая строка для списка берется из файла.Как бы это запилить?

Я прочитал тот топик сверху ( https://sannybuilder.com/forums/viewtopic.php?id=3980 ) но ничего не понял.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.