Сейчас 14:21:03 Суббота, 11 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Мультиборд (Для определённого/определённых игрока/ов)
Мультиборд
FatalBladeДата: Воскресенье, 15 Января 2012, 08:14:27 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Как сделать что бы мультиборд отображался только для выбранных мною игроков, а не для всех? Я пытался с GetLocalPlayer(), но видимо тут это не помогает.

 

SirNikolasДата: Воскресенье, 15 Января 2012, 08:30:26 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Библиотека. Но лучше не создавать для каждого игрока доску, а локально изменять ячейки.

 

FatalBladeДата: Воскресенье, 15 Января 2012, 08:45:52 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ничего не понимаю.
Скопипастил я библиотеку дуоса к себе в код, а в действиях написал вот это:
Code

function Trig_Begin_3_Actions takes nothing returns nothing
     local integer i = 0
     local integer j = 0
     local integer k = 0
     local multiboarditem mbit
     local player p
     local multiboard mb = LoadMultiboardHandle(udg_Hash,GetHandleId(gg_unit_h02F_0082),1000)

     set i = 0
     loop
       exitwhen i > 9
         set p = Player(i)
         call CreateMultiboardForPlayer( 12, 26, "Achievements", p )
         call MultiboardSetItemStyleForPlayer( p, mb, 0, 0, false, false )
         call MultiboardSetItemStyleForPlayer( p, mb, 1, 1, false, false )
         set j = 3
         loop
           exitwhen j > 26
             set k = 3
             loop  
               exitwhen k > 12
                 call MultiboardSetItemStyleForPlayer( p, mb, j, k, false, false )
                 set k = k + 2
               endloop
             set j = j + 2
           endloop
         set i = i + 1
       endloop

     set mbit = null
     set p = null
     set mb = null
endfunction


Почему не отображаются мультиборды в игре?




Сообщение отредактировал FatalBlade - Воскресенье, 15 Января 2012, 09:43:17
 

Ty3uKДата: Воскресенье, 15 Января 2012, 10:22:06 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ты их несколько делал? О.о зачем?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Воскресенье, 15 Января 2012, 11:45:36 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Code
int x=0  
  whilenot x > 11 {  
  if GetLocalPlayer()==Player(x)  
  {  
  mbitem = MultiboardGetItem(mbg,row[x],5)  
  MultiboardSetItemValue(mbitem,pc[4]+ I2S(GetPlayerState(Player(x),PLAYER_STATE_RESOURCE_GOLD))+"|r" )  
  MultiboardReleaseItem(mbitem)  
  }  
  x++  
  }


 

Ty3uKДата: Воскресенье, 15 Января 2012, 12:47:39 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Code
whilenot x++ > 11
почему бы не так? Проще и меньше же buba


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Воскресенье, 15 Января 2012, 15:06:03 | Сообщение # 7
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Ty3uK)
whilenot x++

Сразу же в начале цикла х будет равен не нулю, а единице.

Добавлено (15 Январь 2012, 14:57:31)
---------------------------------------------
Quote (SirNikolas)
Но лучше не создавать для каждого игрока доску

А Почему? Это как-то скажится на игре?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Воскресенье, 15 Января 2012, 15:06:27
 

DiabfallДата: Воскресенье, 15 Января 2012, 15:20:44 | Сообщение # 8
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Quote (lawson)
А Почему? Это как-то скажится на игре?

Думаю, тут речь идёт о нагрузке на проц. и тратте памяти... Никак не скажется, ибо знаю, что Фрог так делал и на ХГМ многие так делали. Даже статья у них на сайте именно с таким способом.


Сообщение отредактировал Diabfall - Воскресенье, 15 Января 2012, 15:21:51
 

DreiiДата: Воскресенье, 15 Января 2012, 15:22:41 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Да ну бред создавать 11 досок. Лучше ячейки локально показывать

 

SirNikolasДата: Воскресенье, 15 Января 2012, 15:47:53 | Сообщение # 10
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
whilenot x++ > 11
Будет транслировано в следующее:
Code
local integer x = 0
local boolean cj_w666_b
loop
     set cj_w666_b = x > 11
     set x = x + 1
     exitwhen cj_w666_b
     //Тело цикла
endloop
Так что и не проще, и не меньше.


 

Ty3uKДата: Воскресенье, 15 Января 2012, 18:12:56 | Сообщение # 11
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ого, не знал. Привык из яваскрипта, там таких трабл нет. Спасибо ^_^

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Мультиборд (Для определённого/определённых игрока/ов)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz