[СТАТЬЯ] Создания MUI способностей - Wc3-Maps Форум













[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Strateg, Melissa 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » [СТАТЬЯ] Создания MUI способностей (для GUI)
[СТАТЬЯ] Создания MUI способностей
-
wetalqДата: Среда, 30-11-2011, 20:33:18 | Сообщение # 1
Король Мёртвых

загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
Вот решил написать статью по созданию MUI способностей на GUI
Для начала что же такое MUI способности ?

MUI это способности или системы которые действуют одновременно для нескольких игроков.
Например взять обычную способность написанную на GUI, если её использовать несколько рас подряд (использовать способность пока работает триггер с её исполнения) то способность первая зависнет, а вторая сработает.

Вот щас я научу вас делать способности на подобии "Волны силы" в которой можно настроить урон в зависимости от параметров героя и любых других объектов.

Пожалуй начнем.
Первое что нужно создать это триггер с основой (события,условия)



В действии нужно создать две переменные типа целочисленная ( Integer ) и сделать её массивом. Я создал переменную LoopIndex
И при каждом произношении способности устанавливать значения этих переменных + 1
Но перед етим нужно проверить значения переменной LoopIndex[1]. Если значения ровно 0 то включить триггер 2.

Переменные LoopIndex[1] и LoopIndex[2] ровны количеству способностей которые применяются.

Далее создаем переменные:
Caster типа Unit (боевая единица)
LeakPoint типа Point (точка)
Angle типа Real (реальная)
Speed типа Real (реальная)
MAXDistance типа Real (реальная)
CurDistance типа Real (реальная)
Active типа Boolean (логическая)
Damage типа Real (реальная)
Dummy типа Unit (боевая единица)
TempGroup типа Group (группа)
DamagGroup типа Group (группа)

ВСЕ ЭТИ ПЕРЕМЕННЫЕ ДОЛЖНЫ БЫТЬ МАССИВАМИ



Далее всем переменным нужно присвоить значения, только переменным типа Speed,MAXDistance,Damage нужно присвоить значения такое какое нужно вам.
Не забывайте что индекс каждой переменной должен быть равен LoopIndex[2].
Например Set Caster[LoopIndex[2]] = Юнит применяющий способность.

После всех объявлений переменных нужно объявить группу через Личный Сценарий
Code
set udg_DamagedUnits[udg_TB_LoopIndex[2]] = CreateGroup()


и удалить утечки (все созданные точки) ибо это создает лаги

Далее приступим к триггеру 2



В нем периодическое события каждые 0.03 секунды делать действия
В Действии нужно сделать цикл
Для каждого числа LoopIndex[3] от 1 до LoopIndex[2] делать действия

Далее идет условия Active = true (да,правда)

Далее еще одну условия что CurDistance <= MAXDistance

Если условия истинно то идут манипуляции с Dummy[LoopIndex[3]] вычисления его позиции и смещения с его предыдущий позиции на позицию с полярным смещениям LeakPoint[1] она в примере и на скрине.
Далее надо установить значения переменной:
CurDistance[LoopIndex[3]] = CurDistance[LoopIndex[3]] + Speed[LoopIndex[3]]
Дальше идет нанесения урона.
Начнем с объявления TempGroup это группа в которую заносятся все юниты в радиусе от Dummy и подходят под условия (совпадающий юнит принадлежит врагу игрока (владелец Caster[LoopIndex[3]] ) и не состоит в группе DamagGroup
После этого нужно выбрать юнитов группе TempGroup нанести им урон в виде Damage и занести в группу DamagGroup


Если условия CurDistance >= MAXDistance то нам нужно будет:
Убить юнита Dummy, установить значения переменной Active[LoopIndex[3]] = False (нет, лож), а также не менее важно через личный сценарий объявить уничтожения переменной так как она нам больше не нужна и не перезаписывалась.

Еще нужно 1 блок If then else
Если LoopIndex[1] = 0
то установить LoopInex[2] = 0
и выключить этот триггер.

Вот и статья подошла к концу.
Что бы это действительно понять возьмите посмотрите пример и просто перепишите такой же спел сами, так все лучше запомниться.

Статью написал wetalq специально для сайта.

ВАЖНО
не забывайте в первом триггере во всех переменных индекс LoopIndex[2]
а во втором триггере во всех переменных индекс LoopIndex[3]


Карта пример в комплекте.

P.S. будут вопросы пишите в тему я отвечу.
P.S.P.S. я пошел играть в Diablo 3 Beta


Покупка предметов через способность
Прикрепления: MUI_on_GUI.rar(11Kb)
 
-
CaturnДата: Среда, 30-11-2011, 22:03:27 | Сообщение # 2
Темный рыцарь

загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
по сути дела можно юзать и одну переменную типа интегер, и в действии триггера писать от 0 до integer01, иначе баги имеют место быть.
Мои статьи:
1. http://wc3-maps.ru/forum/78-1507-1
Школа тригеростроения, ГУИ.
http://wc3-maps.ru/forum/99-1471-1
 
-
NevermoreДата: Четверг, 01-12-2011, 06:34:53 | Сообщение # 3
GUI IMBA

загрузка наград ...
Группа: Проверенные
Сообщений: 210
Репутация: 338
Статус: Не на сайте
Хорошая статья много нового узнал,MUI это не токо хещ-таблица...
Мне кажется если так делать то много утечек будет не так ли?

wetalq, замени 3 скирн шже идет переодическое событие, он расплылся и не видно.
 
-
$eni0rДата: Четверг, 01-12-2011, 16:25:50 | Сообщение # 4
Ополченец

загрузка наград ...
Группа: Пользователи
Сообщений: 61
Репутация: 98
Статус: Не на сайте
ДА Я ПОЙМУ ТОЛЬКО ЧЕРЕЗ 4 МЕСЯЦА!!!!!!!!! А в общем все понятно dry
 
-
wetalqДата: Четверг, 01-12-2011, 17:29:47 | Сообщение # 5
Король Мёртвых

загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
Quote (Caturn)
по сути дела можно юзать и одну переменную типа интегер, и в действии триггера писать от 0 до integer01, иначе баги имеют место быть.


я багов не замечал лично

Quote (Nevermore)
Мне кажется если так делать то много утечек будет не так ли?


нету утечек, все обнуляеться.
Но все же через ХЕШ на джасе лучше)

Quote (Nevermore)
wetalq, замени 3 скирн шже идет переодическое событие, он расплылся и не видно.


заменил


Покупка предметов через способность
 
-
ExtrematorДата: Четверг, 01-12-2011, 17:31:40 | Сообщение # 6
Темный рыцарь

загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 219
Статус: Не на сайте
Quote (wetalq)
один рас

рас дфа фри фыфыри пьАдь ...
 
-
wetalqДата: Четверг, 01-12-2011, 17:52:14 | Сообщение # 7
Король Мёртвых

загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
Quote (Extremator)
рас дфа фри фыфыри пьАдь ...


???


Покупка предметов через способность
 
-
ExtrematorДата: Четверг, 01-12-2011, 18:03:25 | Сообщение # 8
Темный рыцарь

загрузка наград ...
Группа: Проверенные
Сообщений: 238
Репутация: 219
Статус: Не на сайте
Quote (wetalq)
???

я про это
Quote (wetalq)
если её использовать несколько рас подряд

раС ?
 
Wc3-Maps Форум » Раздел для картостроителей » GUI / Jass » [СТАТЬЯ] Создания MUI способностей (для GUI)
Страница 1 из 11
Поиск:
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта
chat