Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
sergroj Wrote:Пара функций работы с диалогами в Эре:
1) Показ диалога, пока зажата клавиша мыши (левая или правая).
x1 = номер диалога
(после показа диалог уничтожается - перед следующим показом надо загружать снова)
2) Уничтожение диалога.
x1 = номер диалога
Полезно при редактировании диалогового темплейта, чтобы при каждом показе диалог загружался заново.
Источник 
Еще вопрос по DL-диалогам: можно ли менять позицию диалога на экране в процессе игры? Нужно чтобы при первом нажатии он вылазил в одном месте, а при втором - в другом.
Т.е. по другому: как изменить следующие свойства диалога:
3: номер x позиции - X позиция от верхнего левого угла (-1=центр экрана)
4: номер y позиции - Y позиция от верхнего левого угла (-1=центр экрана)
ну и
8: xxx номер - установить цвет рамки диалога под цвет номера игрока (-1 означает текущего игрока)
Официально - нет (хотя для себя возможность менять позицию диалога сделал).
Однако, как всегда, есть способы вывернуться.
1. Если хочется менять цвет игрока для фоновой картинки диалога, то накладываешь поверх неё PCX-пункт - копию картинки, а затем обращаешься к этому элементу через его id и 2-ой параметр DL:A = 13. Если фон диалога - стандартная рамка (сконструирован автоматически из кадров DIALGBOX.DEF), то поменять цвет игрока можно, наложив всего один кадр DIALGBOX.DEF в левый-верхний угол диалога и точно так же сменив его цвет через DL:A.
2. Если хочется менять позицию диалога, то делаешь фоновую картинку прозрачной и покрывающей весь экран, а смещаешь вместо диалога все его элементы с помощью параметров DL:A = 52 и 53. Недостаток - диалог не будет иметь тени.
Кстати, давно хотел сказать
Берсеркеру: то, что он воспринял
в исходниках WoG как ограничение на 2 символа номера диалога - на самом деле отступ в 2 строки от начала текстовика DL-шаблона. Никакого такого ограничения на номер диалога не существует.
MOP, спасибо. Жаль конечно, что через какой-нить DL#:A-1 нельзя, но на безрыбье...
(26.06.2013 06:56)MOP Wrote: [ -> ]Недостаток - диалог не будет иметь тени.
Диалог имеет тень. Недостаток в том, что в HD экран побольше и тень этой прозрачной подложки отрисовывается по краям за пределами 800x600 (размер подложки). Отключить тень диалога можно как-то?
Quote:Кстати, давно хотел сказать Берсеркеру: то, что он воспринял в исходниках WoG как ограничение на 2 символа номера диалога - на самом деле отступ в 2 строки от начала текстовика DL-шаблона. Никакого такого ограничения на номер диалога не существует.
Видно давно я это сказал, если говорил. Очень давно. ИД используем большие.
Глянул сейчас Феникс — ИД-ки диалога меньше ста.
В вот в невыпущенном моде — #53672902, уже хэш от строки.
Не помню точно, в чём была проблема (.
Berserker, я брал номер диалога, для ФМ, начиная с 99 (в унисон тогдашнему script99.erm)
а потом все шли в сторону уменьшения... не пробовал, честно говоря, брать номера свыше 2 знаков..
(04.09.2013 11:11)igrik Wrote:возможно ли отловив нажатие кнопки (например ESC) вызвать триггер DL (const int TRIGGER_DL = 30371) 30371 это не номер ли её функции? Или я что-то путаю...
конечно возможно, если не лень, посмотри в Феникс-Моде, к примеру, как это делается
если лень, напиши "мне лень", тогда я свою лень пну и она посмотрит за тебя и сообщит )))
BES,утверждение про "лень" - к чему это? разве было об этом хоть слово ... или не удачный денёк? :D
в Феникс моде смотрел, с "первого раза" в скрипте не нашёл, подумал что в *bin зарыто - вот и спросил. Теперь буду скрипт смотреть под "увеличительным стеклом"...
igrik, вот пример вызова DL-диалога при нажатии F1 на клаве...
думаю тут понятно будет, что вам нужно, чтобы вызвать свой диалог по нажатию любой др.кнопки (таблица кодов кнопок для отлова их триггером 77003 есть в ERA где-то...)
Блин, Bes, мы с тобой про немного разные вещи говорим: я имел ввиду триггер (мне нужно закрыть мой диалог по ESC, ведь почему-то диалоги через эту кнопку не закрываются. (Хотя в Феникс-моде по Esc диалоги закрываются). Может из-за номеров диалога: я использую 352, а Вы в Фениксе - номера меньше 100 ),
Для этого я и хотел вызвать именно триггер !?DL, а потом в нём рессивер !!DL:C1.
... Рессивер по нажатию кнопки вызвать то не проблема...)))
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15