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

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

Ответ
 
agentex

offline
Опыт: 34,834
Активность:
Мультиборд для конкретного игрока
Как сделать чтобы МБ отображался тока для 1 какого то игрока?
Поиск юзал ничего вразумительного не нашел
Статью джона читал, НО мне не нужно чтобы при инициализации создавалось 12 мультибордов и т.д., мне нужны конкретные функции которые я могу заюзать в скрипте.
Старый 29.09.2008, 22:57
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Код:
local integer i = 1
call TriggerSleepAction( 0.01 )
loop
  exitwhen i > 12  //12 - это количество всех игроков, но как уже говорилось выше (во 2-ом пункте), лучше здесь указать не 12, а переменную udg_player.
  set udg_MB = CreateMultiboardBJ( ROWS, COLUMNS, "TITLE" )
  call MultiboardDisplayBJ( false, udg_MB )
  set i = i + 1
endloop
//верхний цикл, создавал 12 совершено разных MultiBoard’ов, и записал их в переменную массив MB по порядку
set i = 1
loop
  exitwhen i > 12
  if ConvertedPlayer(i) == GetLocalPlayer() then //ConvertedPlayer(i), это то о чем говорилось во 2-ом пункте, но если вы хотите делать также как и там, то тут вместо этого следует указать переменную udg_MBplayer[i].
    call MultiboardDisplayBJ( true, udg_MB )
  endif
  set i = i + 1
endloop
[I]//этот массив показал для первого игрока MultiBoard который находится в переменой MB[1], для второго - MB[2], и т.д.


Цитата:
Сообщение от Jon
Данный код создаст 12 MultiBoard’ов, каждый из которых будет помещен в переменную MB, от 1 до 12 ячеек. Мультиборд из первой ячейки будет показан 1-ому игроку, MultiBoard из 2-ой ячейки будет показан 2-ому и т.д.
Если же мы хотим изменить multiboard у 4-ого игрока, надо изменять MB[4], если же хотим изменить multiboard у всех игроков, то надо будет изменить каждую ячейку переменой MB. Лучше конечно использовать цикл...



Непойму я! Что тут непонятного то?
Старый 30.09.2008, 06:18
J
expert
offline
Опыт: 48,447
Активность:
код устарел, так получше будет...
Код:
local integer i = 0
call TriggerSleepAction(0.01)
loop
    exitwhen i > 11
    set udg_MB[ i] = CreateMultiboardBJ(ROWS, COLUMNS, "TITLE")
    call MultiboardDisplay(udg_MB[ i], GetLocalPlayer() == Player(i))
    set i = i + 1
endloop

имей виду что сдесь заполняются не 1-12 ячейки, а 0-11

Отредактировано dk, 30.09.2008 в 14:20.
Старый 30.09.2008, 07:45
Gres
Кораэлестраз
offline
Опыт: 18,575
Активность:
Хммм.. ну да! Для нейтрала то зачем МБ делать... %)
Я не посмотрел....
Старый 30.09.2008, 08:07
agentex

offline
Опыт: 34,834
Активность:
непонятно как удается скрыть созданный мб для всех игроков кроме нужного. ладно тогда подругому... Какого игрока возвращает getlocalplayer()?
Старый 30.09.2008, 10:55
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Цитата:
Какого игрока возвращает getlocalplayer()?

Недавно уже спрашивалось пару раз.
Читай тут: http://xgm.guru/forum/showthread.php?t=15595
Старый 30.09.2008, 11:00
agentex

offline
Опыт: 34,834
Активность:
просто у меня такая система что постоянно во время игры создаются и удаляются мб. Ну и следовательно они будут видны всем игрокам, что мне надо устранить. А принцип действия скрипта джона я вообще не понимаю.
Старый 30.09.2008, 11:04
Лось

offline
Опыт: 7,223
Активность:
Ну ты когда создаёшь мультиборд он скрытый, потом показывай его какому нибудь игроку.
Вот так call MultiboardDisplay(udg_MB[индекс массива мультибордов], GetLocalPlayer() == Player(Номер игрока которому надо показать)).
Старый 30.09.2008, 11:17
agentex

offline
Опыт: 34,834
Активность:
Цитата:
Сообщение от Лось
потом показывай его какому нибудь игроку.

Вот именно, у MultiboardDisplay нету аргумента игрок =(
и я не понимаю почему при юзаньи локал плеер он будет отобразится тока локал плееру. То есть если есть триггер с событием каток выделяет юнит, то if GetLocalPlayer() == GetTriggerPlayer() then
call MultiboardDisplay(mb[GetConvertedPlayeqId(GetTriggerPlayer())], true) это будет пахать ?

agentex добавил:
словарь т9 творит чудеса... Сори за ошибки я с мобилы пишу.
Старый 30.09.2008, 11:49
Ответ

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

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

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

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



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