|
|
|
|
Мультитаблица
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:22:58 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Код function mbdisp takes multiboard mb,player p returns nothing if GetLocalPlayer()==p { MultiboardDisplay(mb,true) } endfunction
function Trig_Table_Actions takes nothing returns nothing integer i=0 integer k=1 do{ exitwhen k>2 mb_table[k]=CreateMultiboard() MultiboardSetRowCount(mb_table[k], 15) MultiboardSetColumnCount(mb_table[k], 6) MultiboardSetTitleText(mb_table[k], "|cff3399ffБлаБлаБла") MultiboardDisplay(mb_table[k],false) if k==1{ i=1 do { exitwhen i>6 mbdisp(mb_table[k],Player(i)) i++ } }else{ i=7 do { exitwhen i>12 mbdisp(mb_table[k],Player(i)) i++ } } k++ } MultiboardMinimize(mb_table[1],false) MultiboardMinimize(mb_table[2],false) endfunction
Таблица не хочет отображаться, помогите найти изъян. Заранее спасибо.
p.s. По идее здесь 2 таблицы, первая показывается 1-6 игрокам, Вторая 7-12 игрокам.
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
Сообщение отредактировал Srezi - Понедельник, 14 Января 2013, 18:27:58 |
|
|
|
Ty3uK | Дата: Понедельник, 14 Января 2013, 18:36:57 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| На кой ляд две таблицы? Локальное изменение ячеек - вот это круто. Смешение синтаксиса JASS2 и cJASS - что может быть ужаснее. D:
Не могу не прорекламировать
Добавлено (14 Января 2013, 18:36:57) --------------------------------------------- Запусти таймер на .25 и создавай доску там. Инфа 100%.
Сообщение отредактировал Ty3uK - Понедельник, 14 Января 2013, 18:37:20 |
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:37:50 | Сообщение # 3 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Цитата (Ty3uK) На кой ляд две таблицы? Локальное изменение ячеек - вот это круто. Смешение синтаксиса JASS2 и cJASS - что может быть ужаснее. D:
Спасибо за всякий бред от твоего лица. Но лучше бы ответил на вопрос. А в каком я "жанре" пишу не важно, да хоть смесь Гуи+Питон, моё право.
Найди изъян, буду очень благодарен. Спсасибо.
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
Ty3uK | Дата: Понедельник, 14 Января 2013, 18:39:37 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Бред от моего лица? Отпало всякое желание помогать. Глаза открой и прочитай выше: таймер на .25 и там создавай доску.
|
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:47:10 | Сообщение # 5 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Цитата (Ty3uK) Бред от моего лица? Отпало всякое желание помогать. Глаза открой и прочитай выше: таймер на .25 и там создавай доску.
А подробнее? Я просто плохо понял твою идею, распиши.
"Бред от твоего лица"=критика в мой адрес
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
Ty3uK | Дата: Понедельник, 14 Января 2013, 18:52:23 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Код scope Multiboard { multiboard MB callback onInit() { TimerStart(CreateTimer(), .25, false, lambda nothing() { MB = CreateMultiboard(); MultiboardSetRowCount(MB, 5); MultiboardSetColumnCount(MB, 5); MultiboardDisplay(MB, true); MultiboardMinimize(MB, false); DestroyTimer(GetExpiredTimer()); }); } } Добавлено (14 Января 2013, 18:52:23) --------------------------------------------- В данном случае критика не бредовая. /Summon SirNikolas
|
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:52:25 | Сообщение # 7 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| То есть каждую по отдельности создать? без цикла? И так же отдельно показать её первой группе игроков и второй да?
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
Ty3uK | Дата: Понедельник, 14 Января 2013, 18:53:28 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Srezi, зачем тебе две доски? Но если так надо - в таймере просто обе доски создаешь и делаешь что тебе надо: циклами, не циклами.
|
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:56:12 | Сообщение # 9 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Цитата (Ty3uK) Но если так надо - в таймере просто обе доски создаешь и делаешь что тебе надо: циклами, не циклами.
Я хочу сделать 2 таблицы, чтобы одна была для одной группы игроков, другая для другой.
Эксперементирую с GetLocalPlayer(), но вот чёта запутался =\
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
SirNikolas | Дата: Понедельник, 14 Января 2013, 18:56:42 | Сообщение # 10 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Srezi, мультидоску нельзя создавать при инициализации. Минимум - после того, как прошло .0 секунд. Не могу не согласиться с Ty3uK насчет смешения синтаксиса.
|
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 18:58:59 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Цитата (SirNikolas) Srezi, мультидоску нельзя создавать при инициализации. Минимум - после того, как прошло .0 секунд. Не могу не согласиться с Ty3uK насчет смешения синтаксиса.
Она создается не при инициализации. Ошибка вся в GetLocalPlayer()... Вы, извините, не в ту сторону смотрите)Добавлено (14 Января 2013, 18:58:59) --------------------------------------------- Но вот в чём точно, не могу понять =\. Если убрать GetLocalPlayer(), то всё отлично работает
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
Ty3uK | Дата: Понедельник, 14 Января 2013, 19:01:32 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Код scope Multiboard { multiboard MB callback onInit() { TimerStart(CreateTimer(), .25, false, lambda nothing() { MB = CreateMultiboard(); MultiboardSetRowCount(MB, 5); MultiboardSetColumnCount(MB, 5); if (GetLocalPlayer() == Player(1)) { MultiboardDisplay(MB, true); MultiboardMinimize(MB, false); } DestroyTimer(GetExpiredTimer()); }); } } Имеем - отображающуюся доску для игрока 2 (синий). Меняем Player(1) на Player(0) и все работает у нас, красного игрока.Добавлено (14 Января 2013, 19:01:32) ---------------------------------------------
Цитата (Srezi) MultiboardDisplay(mb_table[k],false) лишнее, она изначально не показывается.
|
|
|
|
Srezi | Дата: Понедельник, 14 Января 2013, 19:10:36 | Сообщение # 13 |
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
| Цитата (Ty3uK) Имеем - отображающуюся доску для игрока 2 (синий). Меняем Player(1) на Player(0) и все работает у нас, красного игрока.
Сейчас потестирую, спс)Добавлено (14 Января 2013, 19:10:36) ---------------------------------------------
Код if (GetLocalPlayer() == Player(1)) { MultiboardDisplay(MB, true); MultiboardMinimize(MB, false); }
Отлично помогло, спсибо биг ТуЗиК
Нет места чести на войне, Враг церемониться не будет, Убей его любым путём, Ведь победителей не судят.
|
|
|
|
|
|
|
|
|
|
|