Вы находитесь на сайте модмейкеров.
Четверг, 21.11.2024, 21:06
Участники · Правила форума · ПОИСК!
  • Страница 1 из 1
  • 1
[Статья]Упрощение в создании мультибоарда
GlaberДата: Понедельник, 29.08.2011, 21:05 | Сообщение # 1



Сообщений: 1057

Автор:F@lk
В этой статье я расскажу как облегчить и уменьшить затраченное время и силы в создании мультибоарда.
Сначала обьясню на GUI
Для начала создадим переменную у меня это GUIMB(целочисленная)
И переменную MB - тип меню паузы(мультибоард)
После сделаем тригер с событием о прошествии 5 секунд

Действие -
Создать меню паузы с 6 рядами и 6 колонками с названием GUI
Занесем его в переменную MB
После сделаем цикл который повторяется 7 раз
в цикле действие -
В MB показать текст и показать изображение в колонке GUIMB ряду 1
В MB ширина ячейки 1 ряда 1 4%
Установить GUIMB = GUIMB + 1
Тем самым мы получим что вместо 6 строк мы сделали всего 2 и в колонке 1 весь ряд будет показывать и иконку и текст..

Делаем так же со всеми остальными рядами..

Вместо мороки с каждым рядом и строкой мы сделали все гораздо легче и быстрее
Далее(пример) как добавить например иконку в эти столбцы
Делаем все так же
Но в дествии заставляем показывать иконку
у меня это иконка из раздела предметы

Таким образом вы уже и сами сможете добавить текст и прочее в МБ...
JASS
Код создания мультибоарда(с расширением ячеек и с показанием текста и иконки(как на гуе))
Code
function Trig_Created_Actions takes nothing returns nothing
local integer i = 0
local integer q = 1
local integer w = 1
     call CreateMultiboardBJ( 5, 6, "TRIGSTR_066" )
set udg_MB = GetLastCreatedMultiboard()

loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true  )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 9.00 )
set w = w + 1
set i=i+1
endloop

call TriggerSleepAction(0.10)
set i=0
set w=1
set q = q + 1
loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true  )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 8.00 )
set w = w + 1
set i=i+1
endloop
//----------------------------------------------

call TriggerSleepAction(0.10)
set i=0
set w=1
set q = q + 1
loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true  )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 4.00 )
set w = w + 1
set i=i+1
endloop

call TriggerSleepAction(0.10)
set i=0
set w=1
set q = q + 1
loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 4.00 )
set w = w + 1
set i=i+1
endloop
//------------------------------------------------

call TriggerSleepAction(0.10)
set i=0
set w=1
set q = q + 1
loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true  )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 4.00 )
set w = w + 1
set i=i+1
endloop

call TriggerSleepAction(0.10)
set i=0
set w=1
set q = q + 1
loop
exitwhen i > 7
     call MultiboardSetItemStyleBJ( GetLastCreatedMultiboard(), q, w, true, true  )
     call MultiboardSetItemWidthBJ( GetLastCreatedMultiboard(), q, w, 4.00 )
set w = w + 1
set i=i+1
endloop
//=======================================================
endfunction

//===========================================================================
function InitTrig_Created takes nothing returns nothing
     set gg_trg_Created = CreateTrigger(  )
     call TriggerRegisterTimerEventSingle( gg_trg_Created, 1.00 )
     call TriggerAddAction( gg_trg_Created, function Trig_Created_Actions )
endfunction


Это заставит в 1 колонке в 6 рядах показывать имена игроков

Code
function Trig_Txt_Actions takes nothing returns nothing
local integer pr = 0
local integer i = 0
local integer q = 1
local integer w = 1
loop
exitwhen i>7
     call MultiboardSetItemValueBJ( udg_MB, q, w, GetPlayerName(Player(pr)) )
set pr=pr+1
set i=i+1
set w=w+1
endloop
endfunction

//===========================================================================
function InitTrig_Txt takes nothing returns nothing
     set gg_trg_Txt = CreateTrigger(  )
     call TriggerRegisterTimerEventSingle( gg_trg_Txt, 7.00 )
     call TriggerAddAction( gg_trg_Txt, function Trig_Txt_Actions )
endfunction



Показывает кол-во килов совершонных героем и его лвл
Code

function Trig_TTTT_Actions takes nothing returns nothing
local integer pr = 0
local integer i = 0
local integer e = 1
local integer q = 1
local integer w = 1
local integer ee = 0
local integer c1 = 0
local integer c2 = 0
local integer c3 = 0
loop
exitwhen ee > 6
     call MultiboardSetItemValueBJ( udg_MB, 4, e, I2S(udg_Kill[pr]) )
     call MultiboardSetItemValueBJ( udg_MB, 5, e, I2S(udg_De[pr]) )
set pr=pr+1
set ee=ee+1
set e = e + 1
endloop
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 1, GetHeroProperName(udg_A) )
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 2, GetHeroProperName(udg_B) )
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 3, GetHeroProperName(udg_C) )
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 4, GetHeroProperName(udg_D) )
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 5, GetHeroProperName(udg_E) )
  call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 2, 6, GetHeroProperName(udg_K) )

loop
exitwhen i>6
set c1 = 100
set c2 = 50
set c3 = 25
     call MultiboardSetItemColorBJ( udg_MB, q, w, c1, c2, c3, 0 )
set i=i+1
set w = w + 1
endloop
set w = 0
set i = 0
set q = q + 1
loop
exitwhen i>6
set c1 = 100
set c2 = 50
set c3 = 25
     call MultiboardSetItemColorBJ( udg_MB, q, w, c1, c2, c3, 0 )
set i=i+1
set w = w + 1
endloop
set w = 0
set i = 0
set q = q + 1
loop
exitwhen i>6
set c1 = 100
set c2 = 50
set c3 = 25
     call MultiboardSetItemColorBJ( udg_MB, q, w, c1, c2, c3, 0 )
set i=i+1
set w = w + 1
endloop
call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 1, I2S(GetUnitLevel(udg_A)) )
     call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 2, I2S(GetUnitLevel(udg_B)) )
     call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 3, I2S(GetUnitLevel(udg_C)) )
     call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 4, I2S(GetUnitLevel(udg_D)) )
     call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 5, I2S(GetUnitLevel(udg_E)) )
     call MultiboardSetItemValueBJ( GetLastCreatedMultiboard(), 3, 6, I2S(GetUnitLevel(udg_K)) )
endfunction

//===========================================================================
function InitTrig_TTTT takes nothing returns nothing
     set gg_trg_TTTT = CreateTrigger(  )
     call TriggerRegisterTimerEventPeriodic( gg_trg_TTTT, 1.00 )
     call TriggerAddAction( gg_trg_TTTT, function Trig_TTTT_Actions )
endfunction

Иконки в 1-й из ряда дополнительно мечь
2-я иконка хз))
3-я это иконка плюсика(желтого)
и т.д

Code
function Trig_Ic_Actions takes nothing returns nothing
local integer i = 0
local integer w = 0
loop
exitwhen i > 6
     call MultiboardSetItemIconBJ( udg_MB, 1, w, "ReplaceableTextures\\WorldEditUI\\Editor-Force.blp" )
     call MultiboardSetItemIconBJ( udg_MB, 2, w, "ReplaceableTextures\\WorldEditUI\\Editor-Ally-NoPriority.blp" )
     call MultiboardSetItemIconBJ( udg_MB, 3, w, "ReplaceableTextures\\CommandButtons\\BTNStatUp.blp" )
     call MultiboardSetItemIconBJ( udg_MB, 4, w, "ReplaceableTextures\\CommandButtons\\BTNShamanMaster.blp" )
     call MultiboardSetItemIconBJ( udg_MB, 5, w, "ReplaceableTextures\\CommandButtons\\BTNImprovedUnholyStrength.blp" )
set w =w + 1
set i=i+1
endloop
endfunction

//===========================================================================
function InitTrig_Ic takes nothing returns nothing
     set gg_trg_Ic = CreateTrigger(  )
     call TriggerRegisterTimerEventSingle( gg_trg_Ic, 7.00 )
     call TriggerAddAction( gg_trg_Ic, function Trig_Ic_Actions )
endfunction


Карта пример внизу
П.С мой следуший проэкт


--
UZzipДата: Понедельник, 29.08.2011, 21:24 | Сообщение # 2
Noize mc



Сообщений: 6078

Quote (F@lk)
УПРОЩЕНИЕ В СОЗДАНИИ МУЛЬТИБОАРДА

Работа с циклом и всё. Цикл не только в мультиборде упрощает работу =)


--
GlaberДата: Понедельник, 29.08.2011, 21:26 | Сообщение # 3



Сообщений: 1057

забыл

Добавлено (29.08.2011, 21:26)
---------------------------------------------
UZzip, я знаю biggrin это пример...))
я уверен что многие незнали как упростить эту муторную работу..
Да цикл всегда помогает главное уметь им пользоватся

Прикрепления: Island_War-s.w3x (36.7 Kb)


--
UZzipДата: Понедельник, 29.08.2011, 21:27 | Сообщение # 4
Noize mc



Сообщений: 6078

Quote (F@lk)
я уверен что многие незнали как упростить эту муторную работу..

Кто работал с циклом тот знал =) А кто нет тот прочитает и узнает!


--
GlaberДата: Понедельник, 29.08.2011, 21:28 | Сообщение # 5



Сообщений: 1057

Quote (UZzip)
Кто работал с циклом тот знал

Ахах , все (ну почьти) работали с циклами , но не все додумывались как его использовать еще можно....


--
UZzipДата: Понедельник, 29.08.2011, 21:30 | Сообщение # 6
Noize mc



Сообщений: 6078

F@lk, Да большинстве мультибордов он используется. Особенно помогает когда группа игроков и для каждого создать ряд. Чтобы неиграющие игроки не занимали мультиборд =) Вот тут он необходим =P

--
GlaberДата: Понедельник, 29.08.2011, 21:33 | Сообщение # 7



Сообщений: 1057

UZzip, happy в мультибоардах которые выложены на всеобшее обозрение(точнее эти мультибоарды) делали люди которые
добились в ВЕ (ну как сказать) очень многово ...
Хотя даже Дуос когда выкладывал в некоторых мультибоардах(его) было по 100 строчек перееменных (мультибоард показывал здоровье и ману в виде полоски)
хотя мог обойтись циклом)
я имел ввиду что не все даже работавшие с циклами сразу поймут как еще их использовать)




Сообщение отредактировал F@lk - Понедельник, 29.08.2011, 21:33
--
UZzipДата: Понедельник, 29.08.2011, 21:52 | Сообщение # 8
Noize mc



Сообщений: 6078

F@lk, У дуоса вроде использовались цыклы =)

--
GlaberДата: Понедельник, 29.08.2011, 21:55 | Сообщение # 9



Сообщений: 1057

UZzip, >_< найду скину епт...)))

--
qwertyuiopДата: Среда, 25.01.2012, 21:57 | Сообщение # 10



Сообщений: 51

Да он использовал ) но там менее понятно чем тут ) спс Фалк

Есть два вида шпор мой друг, одни входят через дверь , другие через окно...
--
  • Страница 1 из 1
  • 1
Поиск:

W3 - Всё для картостроения. 2024-2010 |