Добавлен Sergant1000,
опубликован
База примеров на GUI
Содержание:
Не знаю были ли вопросы как сделать такой предмет или нет, но такая фича есть.
В статье описаны следующие примеры:
- Предмет апается с героем.
- Предмет апается Сам (замена предмета).
- Предмет апается Сам (количество зарядов).
Основные используемые объекты в примерах:
"предмет1" - сам предмет.
"способность1" - способность предмета
"предмет1" - сам предмет.
"способность1" - способность предмета
Пример №1: Предмет апается с героем.
Вариант А
Самый простой пример из возможных:
> ??Событие:??
> -Боевая единица - A unit Повышает уровень
> ??Условие:??
> -((Triggering unit) has an item of type "предмет1") равно Да
> ??Действие:??
> -Боевая единица - Increase level of "способность предмета1" for (Triggering unit)
Минус же такой "фичи" в том что если вы выбросите предмет, а потом подымите то потеряете все прибавки за уровень. Следовательно:
Вариант Б
Дополнительно используемые объекты:
"предмет2" - следующий по уровню предмет .
"предмет2" - следующий по уровню предмет .
нам нужно заменять предмет низкого уровня на следующий по рангу.
> ??Событие:??
> -Боевая единица - A unit Повышает уровень
> ??Условие:??
> -((Triggering unit) has an item of type "предмет1") равно Да
> ??Действие:??
> -Предмет - Remove (Item carried by (Triggering unit) of type "предмет1")
> -Герой Create "предмет2" and give it to (Triggering unit)
Теперь предмет даже если выпадет то при поднятии оного все бонусы сохранятся.
Пример №2: Предмет апается сам (замена предмета).
Дополнительно используемые объекты:
"предмет2" - следующий по уровню предмет после "предмет1".
"предмет3" - следующий по уровню предмет после "предмет2".
"предмет2" - следующий по уровню предмет после "предмет1".
"предмет3" - следующий по уровню предмет после "предмет2".
"ItemExp" - переменная "Целочисленная" массив. Она будет играть роль опыта у предмета. Номер массива это предмет.
Тут мы уже используем переменную чтобы опыт копился у конкретного предмета. и создаем предметы, так как повышение уровня у нас будет через замену предмета. Получение опыта будет через убийство монстров.
> ??Событие:??
> -Боевая единица - A unit Умирает
> ??Условие:??
> -Multiple ConditionsOr - Any (Conditions) are true
> --Условие:
> ---((Killing unit) has an item of type "предмет1") равно Да
> ---((Killing unit) has an item of type "предмет2") равно Да
> ??Действие:??
> -Set "ItemExp"[1] равно ("ItemExp"[1] + 1)
> -If\Then\Else, multiple function
> --Если - условие:
> ---"ItemExp"[1] Больше или равно 50
> ---((Killing unit) has an item of type "Предмет1") равно Да
> --То - Действие:
> ---Set "ItemExp"[1] равно 0
> ---Предмет - Remove (Item carried by ((Killing unit) of type "предмет1")
> ---Герой Create "предмет2" and give it to ((Killing unit)
> --Иначе - Действие:
> ---If\Then\Else, multiple function
> ----Если - условие:
> -----"ItemExp"[1] Больше или равно 100
> -----((Killing unit) has an item of type "Предмет2") равно Да
> ----То - Действие:
> -----Set "ItemExp"[1] равно 0
> -----Предмет - Remove (Item carried by ((Killing unit) of type "предмет2")
> -----Герой Create "предмет3" and give it to ((Killing unit)
> ----Иначе - Действие:
И так что у нас получилось, при убийстве когда у героя есть предмет "предмет1" у нас набирается опыт в переменную "ItemExp"[1] и при достижении 50 предмет "предмет1" меняется на "предмет2" и обнуляется "ItemExp"[1]. Позже когда "ItemExp"[1] станет 100 предмет "предмет2" меняется на "предмет3".
Пример №3: Предмет апается сам (количество зарядов).
Дополнительно используемые объекты:
"ItemExp" - переменная "Целочисленная" массив. Она будет играть роль опыта у предмета. Номер массива это предмет.
И еще один способ, Предмет будет расти так же как и в Примере №2: но не будет заменятся на другой предмет, а уровень предмета будет измеряться в зарядах. Что избавит нас от создания лишних предметов и способностей. Надо будет всего лишь в способности предмета установить что она в моем случае имеет 10 уровней ну и соответственно проставить характеристики.
> ??Событие:??
> -Боевая единица - A unit Умирает
> ??Условие:??
> -((Killing unit) has an item of type "предмет1") равно Да
> -(Charges remaining in (Item carried by (Killing unit) of type "предмет1")) меньше или равно 10
> ??Действие:??
> -Set "ItemExp"[1] равно ("ItemExp"[1] + 1)
> -If\Then\Else, multiple function
> --Если - условие:
> ---"ItemExp"[1] Больше или равно (10 х (Charges remaining in (Item carried by (Killing unit) of type "предмет1")
> --То - Действие:
> ---Set "ItemExp"[1] равно 0
> ---Предмет - Set Charges remaining in (Item carried by (Killing unit) of type "предмет1") to ((Charges remaining in (Item carried by (Killing unit) of type "предмет1") + 1)
> ---Боевая единица - Set level of "способность1" for (Killing unit) to (Charges remaining in (Item carried by (Killing unit) of type "предмет1")
> --Иначе - Действие:
Расшифровываю выше написанное. При убийстве юнита если у героя, есть предмет "предмет1" и добавляем в условие что зарядов в предмете "предмет1" не более 10 тем самым ограничив рост зарядов предмета. Мы увеличиваем "ItemExp"[1] на 1 и при каждом достижении 10 убитых умноженных на количество зарядов в предмете в предмет добавляется заряд и способность принадлежащая предмету становится уровнем равная количеству зарядов.
но теперь у нас тоже ерунда как и с Примером №1 Вариант А. Мы бросили предмет а при поднятии никаких бонусов по уровню. Для исправления оного нам потребуется триггер на поднятие.
Событие
> -Боевая единица - A unit Получает предмет
Условие
> -(Item-type of (Item being manipulated)) равно "предмет1"
Действие
> -Set "ItemExp"[1] равно ("ItemExp"[1] + 1)
> -Боевая единица - Set level of "способность1" for (Triggering unit) to charges remaining in (Item being manipulated)
> --Иначе - Действие:
Вот так вот. Пример-карте содержит все выше описанные примеры.
Космети.
Теперь не хватает какого-нибудь спец эффекта, и тут все поправимо:
-Спецэффект - Create a special effect attach to the original\head\chest of (Triggering unit) using Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
-Спецэффект - Create a special effect attach to the original\head\chest of (Triggering unit) using Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
Неплохо добавить в тригер когда апается предмет "Плавающий текст" который будет отображать сие действие, для этого добавим:
-Плавающий текст - Create floating text that reads "|c0000FFFFItem Level Up.|r" at (Position of (Triggering unit)) with offset 0.00, using font size 10.00 color (100.00%, 100.00%, 100.00%) and 0.00% transparency
-Плавающий текст - Set the velocity of (Last created floating text) to 42.00 towards 90.00 degrees
-Плавающий текст - Скрыть (Last created floating text) for (All enemies of (Owner of (Triggering unit)))
-Плавающий текст - Change (Last created floating text): Заблокировать permanence
-Плавающий текст - Change the lifespan of (Last created floating text) to 2.00 seconds
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Sergant1000