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 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
spellwerk
offline
Опыт:
4,869Активность: |
Код:
думаю все дело тут. ты вызываешь напрямую метод Create из структуры мультиборд. нужно создать объект Multiboard, и только потом запустить эту функцию |
05.12.2010, 20:52 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dutub
offline
Опыт:
518Активность: |
Spy_, метод статический... C помощью BJDebugMsg выявил, что Выполняется метод Create, GetPlayersInGame. А дальше триггер не идет... |
05.12.2010, 20:57 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
i++ забыл. А вышеотписавшиеся слепые.
Doc добавил: и насчет сжасса несете чуш, вот. |
05.12.2010, 22:26 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
неоптимально - в каждой итерации будет вызываться лишняя мат. функция |
05.12.2010, 23:46 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dutub
offline
Опыт:
518Активность: |
((код
private integer PlayersInGame
)) нужно было присвоить ноль... Все проблема решена, всем спасибо |
06.12.2010, 06:09 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|