Добрый день. Кидаю сразу скрин:
Мне нужно сделать разные мультибоарды для разных игроков(ох, как много в поиске было ответов), как я понял с помощью локального игрока я смогу их скрыть кроме основной. Но вот как это конкретно написать, я так и не понял(плохо с jass'ом, максимум - локальные переменные). Если кому не сложно, скажите что нужно написать в кастом тексте для моей цели. Заранее спасибо.

вот рабочий вариант
1 строчка - if GetLocalPlayer() == GetEnumPlayer() then
2 строчка - call MultiboardDisplay(bj_lastCreatedMultiboard, true)
3 строчка - endif
наверн блок If не закрыл endif.

Если делать через гуи, то получиться разве разные таблицы показывать?
Да, но тогда всем ты будешь показывать. А не конкретному игроку опред таблицу. Это не выгодно, поэтому корректируем условие. Там нельзя че-то указать игрока, ток вкл/выкл. Я думал там все есть, короче подзабыл.

Есть еще один недостаток: MultiboardDisplay при инициализации не работает. Так, что надо будет показать попозже. Так что помни это. Просто ты мультиборды при старте создаешь.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
if GetLocalPlayer() == Player(GetConvertedPlayerId(GetEnumPlayer())) then
	call MultiboardDisplay(bj_lastCreatedMultiboard, GetLocalPlayer())
endif
типа вот так. в гуи вообще-то должна быть такая функция
короче не обязательно использовать GetLocalPlayer, это ошибки мои. можно сразу, итак функц локально работает
call MultiboardDisplay(bj_lastCreatedMultiboard, Player(GetConvertedPlayerId(GetEnumPlayer())))

upd, добавил native MultiboardDisplay takes multiboard lb, boolean show returns nothing в код карты, не помню где но надо было что-то похожее сделать.
это не обязательно делать. это ты делал для определения кол-во золота данного типа юнита? если да. то понятно, там функции взяты из AI-файлика, короче они не были объявлены.
native GetUnitWoodCost takes integer unitid returns integer
native GetUnitGoldCost takes integer unitid returns integer
И поэтому их суют наверх для объявления. для MultiboardDisplay такое делать не нужно
14
Такая вот ошибка:
А тут может быть дело в рефордже?
Загруженные файлы
27
VinerX, короче жестко я тут попутал. тут рефордж не причем. вместо boolean я игрока пихать начал. А так оказывается указать в нативку конкретному игроку нельзя.

вот рабочий вариант
if GetLocalPlayer() == Player(GetConvertedPlayerId(GetEnumPlayer())) then
call MultiboardDisplay(bj_lastCreatedMultiboard, true)
endif
14
МрачныйВорон:
VinerX, короче жестко я тут попутал. тут рефордж не причем. почему ругается не ясно
ну я брал и писал в кастом тексте этот код
call MultiboardDisplay(bj_lastCreatedMultiboard, Player(GetConvertedPlayerId(GetEnumPlayer())))
, но выскакивает указанная ранее ошибка. Если делать через гуи, то получиться разве разные таблицы показывать?

upd, текст тот удалил увидав сообщение, но он опять появился. Так вот, ошибка missing:endblock (проверил на новой чистой карте), предположу что кастом текст мешает - можно ли в нем делать по несколько строк, или нужно в одну большую весь код уместить?
27
вот рабочий вариант
1 строчка - if GetLocalPlayer() == GetEnumPlayer() then
2 строчка - call MultiboardDisplay(bj_lastCreatedMultiboard, true)
3 строчка - endif
наверн блок If не закрыл endif.

Если делать через гуи, то получиться разве разные таблицы показывать?
Да, но тогда всем ты будешь показывать. А не конкретному игроку опред таблицу. Это не выгодно, поэтому корректируем условие. Там нельзя че-то указать игрока, ток вкл/выкл. Я думал там все есть, короче подзабыл.

Есть еще один недостаток: MultiboardDisplay при инициализации не работает. Так, что надо будет показать попозже. Так что помни это. Просто ты мультиборды при старте создаешь.
Принятый ответ
14
Ошибка пропала (ура! Чертовы пробелы, вот почему python так приглянулся), но таблица не появляется. На пожарный случай дам скрин
То есть я создаю борды по кол-ву игроков, все закрываю, а потом пытаюсь открыть уже только определенные для конкретных игроков.
Загруженные файлы
27
VinerX, работает?

Есть еще один недостаток: MultiboardDisplay при инициализации не работает. Так, что надо будет показать попозже. Так что помни это. Просто ты мультиборды при старте создаешь. Измени событие - "инициализация" на "спустя 5 сек"
Загруженные файлы
14
Заменил событие как вы сказали, не появилась.
27
посмотрел. а попробуй
я всегда показ делал в конце,
Загруженные файлы
14
Ура, работает (на скрине - все вырубленное, чтоб не мешало на всякий случай). Спасибо огромное, что там помог!) Осталось все это еще и проверить...
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.