WarCraft 3: Как Сделать выбор Героя через...?

База примеров на GUI
Самый часто задаваемый вопрос: А как сделать выбор героя через...? и многим хочется сказать что через Упож.
Основа основ это создать юнита которым будем выбирать героев, по одному на игрока, скажем "светлячок", Героев которыми будем играть "Герой1" "Герой2" "Герой3", область в которой будут появляться Герои "область4". И так начнем
В статье описаны следующие примеры:
  1. Выбор Героя через Круг\точку\подход к герою.
  2. Выбор Героя через Таверну.
  3. Выбор Героя через Диалоговое Окно.
  4. Выбор героя через нажатие по нему
  5. Выбор героя через нажатие клавиш
Основные используемые объекты в примерах:
"светлячок1" "светлячок2" "светлячок3" - юнит которым обычно выбирают героев.
"Герой1" "Герой2" "Герой3" - Герои которых обычно выбирают.
"область4" - Область в которой эти самые обычные герои обычно появляются.

Пример №1: Выбор Героя через Круг\точку\подход к герою.

Дополнительно используемые объекты:
"область1" "область2" "область3" - Области при заходе в которые появляются Обычные Герои
В своей основе этот пример правильно называть "Выбор героя через область", а через круг, точку и т.д. это всего лишь декорация т.к. реально юнит выбирает героя при входе в область. Следовательно сначала поставим Героев на карту, сделаем "области" перед каждым из героев и юнита ,в середине этого безобразия, которым будем выбирать.
Следующим делаем Триггер:
Для первого героя:
Для второго героя:
и так далее.
Как видно из данного примера на каждого созданного героя нужно делать дополнительную область и триггер. По этому это самый громоздкий и неудобный начальный пример выбора героев.


Пример №2: Выбор Героя через Таверну.

Дополнительно используемые объекты:
"Таверна" - Здание в котором выбирают Обычных Героев
Следующий распространенный вопрос я думаю стал распространённым после Доты. И тут несколько вариантов.

Вариант А. Через покупку Предмета

Дополнительно используемые объекты:
"Предмет1" "Предмет2" "Предмет3" - предметы при покупки которых появляются Обычные Герои
Создаем Таверну в которой будем покупать предметы для выбора игрока. Создаем юнита даем способность инвентарь(Носильщик) и ставим по одному на каждого игрока, рядом с Таверной. Создаем Предметы "Предмет1" "Предмет2" "Предмет3" и ставим на продажу в таверне. Создаем героев "Герой1" "Герой2" "Герой3". Ставим "область4"
Пишем Триггеры:
Вот так пишется нормальный триггер, 1 триггер в который при добавлении нового героя только добавляется функция If\Then\Else содержащая в условии предмет при покупке которого появляется герой и действие появления этого героя. Самое важное в триггере это условие "-Or - Any (Conditions) are true:" с указанием всех юнитов которыми выбирают(покупают) игроки, так как без него любой купленный предмет героем убирал бы любого героя из игры.


Вариант Б. Через обычную покупку героев.

Дополнительно используемые объекты:
"область5" - область создающаяся на 1-2 квадрата больше чем Таверна
Способ наименьших затрат так сказать Золотой. Потребуется только создать Таверну, поставить рядом с ней юнитов которые будут в зоне покупки таверны, делаем Героев и помещаем их в продажу в таверне, и области. Главная часть это "область5" делаем ее чуть больше чем таверна и помещаем ее под нее, и пишем Триггер:
Как видно мы покупаем героев из таверны но при покупке они не появляются рядом с таверной как обычно, а появляются в "область4". Дело в том что когда мы поместили "область5" под таверну, купленные герои по-прежнему появляются рядом с таверной, но уже в зоне "область5" и при помощи триггера моментально телепортируются в "область4". Как видно из примера нужно создать минимально пальце-мыше-движений.


Пример №3: Выбор Героя через Диалоговое Окно.

Дополнительно используемые объекты:
"переменная Диалог" - Переменная которая будет содержать основное окно диалога
"переменная Кнопка(массив)" - Переменная в которую мы будем записывать героев
Этот пример предназначен для того чтобы не занимать место на карте. Нам для этого примера всего лишь потребуется создать Героев, переменные и триггеры:
Триггер при котором мы создаем Диалоговое окно и кнопки:
Теперь создаем триггер который будет управлять появлением героев при нажатии
В этой конструкции если создавать нового героя то во второй триггер добавляется If\Then\Else с условием нажатия кнопки и создания нового героя.


Пример №4: Выбор героя через нажатие по нему.

*Дополнительно используемые объекты:**
"Игрок 1" "игрок 2" "игрок 3" - игроки то есть я\ты\мы\вы\они и т.д.
Интересный вариант по сравнению с остальными самый молодой. и тут не обошлось без вариантов. Нам для этого примера всего лишь потребуется создать Героев, выставить их на карте и:

Вариант А. Выбор героя при единичном выборе

То есть мы видим полянку с героями и при нажатии на любом герое он тут же появляется в нашем распоряжении:
Это самый простой вариант на один клик.


Вариант Б. Выбор героя при двойном клике

Дополнительно используемые объекты:
"Переменная Логическая(Массив)" - сюда будет записываться ваш выбор
"переменная Боевая единица(массив)"- а тут будет записан юнит который вы выбрали
Самый оптимальный вариант для выбора героя через клик, есть вариант посмотреть что за герой, вывести информацию о нем, проигрывание какой-нибудь анимации и т.п.


Пример №5: Выбор Героя через нажатие на кнопки.

Дополнительно используемые объекты:
"Choce" -Переменная Целочисленная(массив) будет хранить данные выбора. Номер массива это номер игрока.
"камера1" "камера2" "камера3" - камеры показывающие Героев при выборе
Очень экстравагантный выбор героя, не будем голословными и опишем этот пример.
Нам потребуется создать героев, область, камеры, переменную и поставить ей значение 1. Ставим Героя, вокруг него наводим марафет, ставим камеру и направляем на героя. Теперь повторите тоже самое с каждым героем. Вот теперь подошли к триггерам делаем два триггера на нажатие клавиш, в данном случае стрелок:
Для Стрелки вправо:
Для Стрелки влево:
Ну и заключительный триггер это выбор стрелкой вверх:


Космети.

Так же не забываем что сделать выбор героя это не конец данного этапа, ведь его надо как то украсить. Поэтому в конце триггеров на появления героев Добавим для удобства перемещение камеру на героя:
-Камера - Pan camera for (Owner of (Triggering unit) to (Center of "область4") over 0.00 seconds
Теперь не хватает какого-нибудь спец эффекта, и тут все поправимо:
-Спецэффект - Create a special effect attach to the original\head\chest of (Triggering unit) using Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
Ну и последний штрих сделаем чтобы появившийся герой был выбран сразу для этого вписываем:
-Выбор - Select (Last created unit).

Хинты.

Если при выборе героя или когда комп выбирает себе героя у вас на некоторое время зависает игра, то сделайте следующее:

Вариант А.

Поставьте где-нибудь на карте в недоступном для игроков месте всех героев.

Вариант Б.

Сделайте триггер который по истечении определенного времени после создания карты создаст всех героев и убьет их.
и никаких тормозов))

Просмотров: 17 767

Nerevar #1 - 5 лет назад 0
неплохо было бы это в отдельный дочерний проект вк3 публиковать,а не как просто ресурсы для оного
Sergant1000 #2 - 5 лет назад 0
Ну это статьи, поэтому я их в статьи и засунул.
God_of_light #3 - 5 лет назад 0
Sergant1000, можно еще сделать выбор героя стрелочками: тыкаешь влево - след. герой, вверх - выбрать героя. Тоже удобно и красиво
Sergant1000 #4 - 5 лет назад (отредактировано ) 1
Да знаю, скоро добавлю, хотя громоздки гад.
Clamp #5 - 5 лет назад 1
God_of_light:
Sergant1000, можно еще сделать выбор героя стрелочками: тыкаешь влево - след. герой, вверх - выбрать героя. Тоже удобно и красиво
на гуях? шутите шоле?
А чо, я делал.
Щя кину =D

А ну нафиг, у меня русские триггеры, копирует криво. Вот карта, извлекайте ;3
Здесь вроде было
прикреплены файлы
Sergant1000 #6 - 5 лет назад 1
ок, щя посмотрим
Sergant1000 #7 - 5 лет назад 1
Поставил в конце каждого примера Фаил с картой-пример.
Tannenfels #8 - 5 лет назад 1
Автор, учи грамматику русского языка, местами нечитабельно!!!
Sergant1000 #9 - 5 лет назад 0
Tannenfels, примеры мест.
Sergant1000 #10 - 5 лет назад 0
Пример с Выбором героя путем нажатия клавишь улучшен, исправлена статья и карта-пример.
Sergant1000 #11 - 5 лет назад 0
Пример с Выбором героя путем нажатия клавишь улучшен, теперь нету бага ,если долго нажимать то выбирался другой герой, и бага при котором все игроки кроме 1го при нажатии стрелки в лево немогли выбрать героя и камера не переключалась для них.
map_maiker #12 - 5 лет назад 0
все известно кроме черездабл клик,хотя сам понял тока что,сттья хорошая + плюс статье
Daro #13 - 5 лет назад 0
освежил память спс
LEON_DAN #14 - 2 года назад 0
выбор героя через таверну вариант б не выходит(( юнит уничтожается быстрее чем успеваешь взять героя из таверны
SomeFire #15 - 2 года назад (отредактировано ) 0
LEON_DAN, потому что надо поставить условие, что триггеринг юнит = герой, а не тот, кто покупает.
LEON_DAN #16 - 2 года назад 0
SomeFire:
LEON_DAN, потому что надо поставить условие, что триггеринг юнит = герой, а не тот, кто покупает.
спасибо))) новичек я, еще не во всем разбираюсь))