XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
Dialog and DialogButtons
Создаю диалог с кнопками:
Код:
dialog Duel
button array Opp


Код:
function Trig_CreateDialog_Actions takes nothing returns nothing
     player p=GetTriggerPlayer()
     int i=0
     Duel=DialogCreate()
     DialogSetMessage(Duel,"Choose opponents!")
     whilenot i>11
     {
     if Player(i)!=p
    {
     Opp[i]=DialogAddButton(Duel,pc[i]+GetPlayerName(Player(i))+" [ "+I2S(lvl[i])+" ] ",0)
    }
     i++
     }
     Opp[i+1]=DialogAddButton(Duel,"Cancel",0)
     DialogDisplay(p,Duel,true)
     p=null
endfunction

//===========================================================================
function InitTrig_CreateDialog takes nothing returns nothing
     set gg_trg_CreateDialog = CreateTrigger(  )
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(0), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(1), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(2), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(3), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(4), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(5), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(6), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(7), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(8), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(9), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(10), EVENT_PLAYER_END_CINEMATIC)
     call TriggerRegisterPlayerEvent(gg_trg_CreateDialog, Player(11), EVENT_PLAYER_END_CINEMATIC)
     call TriggerAddAction( gg_trg_CreateDialog, function Trig_CreateDialog_Actions )
endfunction


и событие на кнопки:

Код:
function Trig_PressButtons_Actions takes nothing returns nothing
     int i=0
     whilenot i>11
     {
     if GetClickedButton()==Opp[i]
    {
     BJDebugMsg("Clicked button number: "+I2S(i))
    }
     i++
     }
endfunction

//===========================================================================
function InitTrig_PressButtons takes nothing returns nothing
     set gg_trg_PressButtons = CreateTrigger(  )
     call TriggerRegisterDialogEvent( gg_trg_PressButtons,Duel)
     call TriggerAddAction( gg_trg_PressButtons, function Trig_PressButtons_Actions )
endfunction


События не работают.
И еще
Код:
DialogDisplay(p,Duel,true)
покажет ТОЛЬКО игроку p или покажет также всем.

Диалоги недавно решил сделать первый раз работают с ними.
Старый 19.01.2012, 17:53
Elf_Stratigo

offline
Опыт: 4,699
Активность:
вместо пересоздания диалога, чисть его (у тебя обработчик диалога подписан к null диалогу или не создан)
если хочешь именно пересоздавать - то и переподписывать нужно
лучше будет создать сразу диалог для каждого игрока
Старый 19.01.2012, 18:10
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
Elf_Stratigo, Тоесть
Код:
dialog array Duel


Код:
int i=0
whilenot i>11{

Duel[i]=CreateDialog()
i++
}


?
Старый 19.01.2012, 19:12
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Dreii, походу
Старый 19.01.2012, 19:33
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 13:39.