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

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

Закрытая тема
 
dutub

offline
Опыт: 518
Активность:
CJass. Не создается Multiboard.
((код
library Multiboard initializer MBInit
{
private trigger MBTrigger = CreateTrigger()
private integer PlayersInGame
private integer array PlayerInGame

================================================================

private nothing MBInit ()
{
TriggerRegisterTimerEvent(MBTrigger, 0.1, false)
TriggerAddAction(MBTrigger, function Multiboard.Create)
}

================================================================
struct Multiboard
{
private static multiboard mb

public static nothing Create ()
{
Multiboard.mb = CreateMultiboard()
Multiboard.GetPlayersInGame()
Multiboard.SetStyle()
Multiboard.SetDefaultValues()
MultiboardDisplay(Multiboard.mb, true)
}

public static nothing GetPlayersInGame ()
{
integer i = 0
integer j = 0
loop
{
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING
{
PlayersInGame ++
PlayerInGame[j] = i
j ++
}
i ++
exitwhen i == 7
}
}

private static nothing SetStyle ()
{
MultiboardSetColumnCount(Multiboard.mb, 3)
MultiboardSetRowCount(Multiboard.mb, PlayersInGame+1)
MultiboardSetItemsStyle(Multiboard.mb, true, false)
integer i = 0
loop
{
Multiboard.SetWidth(0, i, 60)
Multiboard.SetWidth(1, i, 30)
Multiboard.SetWidth(2, i, 30)
exitwhen i > PlayersInGame + 1
}
}

private static nothing SetDefaultValues ()
{
Multiboard.SetValue(0, 0, "Игрок")
Multiboard.SetValue(1, 0, "Убийств")
Multiboard.SetValue(2, 0, "Смертей")
}

private static nothing SetValue (integer col, integer row, string value)
{
multiboarditem mi = MultiboardGetItem(Multiboard.mb, row, col)
MultiboardSetItemValue(mi, value)
}

private static nothing SetWidth (integer col, integer row, real width)
{
multiboarditem mi = MultiboardGetItem(Multiboard.mb, row, col)
MultiboardSetItemWidth(mi, width/100)
}
}
}
))
Не могу понять почему не появляется окно Multiboard'а

Отредактировано dutub, 05.12.2010 в 20:17.
Старый 05.12.2010, 19:56
spellwerk

offline
Опыт: 4,869
Активность:
Код:
TriggerAddAction(MBTrigger, function Multiboard.Create)

думаю все дело тут. ты вызываешь напрямую метод Create из структуры мультиборд.
нужно создать объект Multiboard, и только потом запустить эту функцию
Старый 05.12.2010, 20:52
dutub

offline
Опыт: 518
Активность:
Spy_, метод статический...
C помощью BJDebugMsg выявил, что Выполняется метод Create, GetPlayersInGame. А дальше триггер не идет...
Старый 05.12.2010, 20:57
Doc

offline
Опыт: 63,163
Активность:
loop
            {
                Multiboard.SetWidth(0, i, 60)
                Multiboard.SetWidth(1, i, 30)
                Multiboard.SetWidth(2, i, 30)
                exitwhen i > PlayersInGame + 1
            }
i++ забыл. А вышеотписавшиеся слепые.
Doc добавил:
и насчет сжасса несете чуш, вот.
Старый 05.12.2010, 22:26
ScorpioT1000
Работаем
offline
Опыт: отключен
exitwhen i > PlayersInGame + 1
неоптимально - в каждой итерации будет вызываться лишняя мат. функция
Старый 05.12.2010, 23:46
dutub

offline
Опыт: 518
Активность:
((код
private integer PlayersInGame
))
нужно было присвоить ноль...
Все проблема решена, всем спасибо
Старый 06.12.2010, 06:09
Закрытая тема

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

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

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

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



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