Существует специальная тема Способности и алгоритмы на заказ, где любой желающий может помочь с вашими фантазиями и где я тоже иногда зависаю. Кроме того, есть платные заказы, например, можете обратиться к Hate - Заклинания на заказ для Warcraft 3 (Платные) или поискать ещё темы на сайте
Я хочу развивать своё резюме, поэтому можете оставлять заявки и там, и тут. Имейте ввиду, заказы я выполняю бесплатно, на чистом энтузиазме, трачу на это своё свободное время, поскольку воспринимаю это как хобби, всё выполняю при возможности и желании
раскрыть
Я не буду вливаться в ваши проекты и не принимаю деньги, для этого есть платные темы. Авторство или упоминания меня в карте делать не нужно, ибо я буду менять ник. Если появится желание отблагодарить - лайка достаточно
Могу сделать анонимно заклинание, для этого можно обратиться ко мне в личку, но меня расстроит невозможность поделиться им, если оно интересное
Отдаю приоритет именно способностям, алгоритмы/системы, вроде 3д камеры/физики, меня особо не интересуют, да и не всё умею, и не за все заказы возьмусь, не стоит ожидать от меня движущихся птиц и чайники на молниях, матрицу не изучал и с математикой не дру
Работаю на 1.26, могу воспользоваться UjAPI, при создании спелла для рефа
Для меня предпочтительнее пользоваться вджассом, но могу сделать заклинание на чистом джассе и даже гуи, однако имейте ввиду, гуи может многократно усложнить работу, ибо на нём может не хватать функционала для создания вашего спелла. Есть вариант скрестить джасс с гуи, пользуясь TriggerEvaluate
Форма составления заявки
При создании заявки не забудьте указать тип комментария Заказ на работу
# Заказ
**Название:** Название способности (опционально, если заказ один)
**Метод:** GUI/Jass/cJass/vJass/Zinc
**Версия Warcraft III:** Версия варкрафта для этого заказа
**Техническое описание:** Распишите механику способности в деталях
Заявки оставлять в комментариях под этим ресурсом
раскрыть
Название - можно любое указать, вплоть до символа, это поможет в навигации по мере сдачи работ. Не нужно указывать, если в заказе только одна способность, работа сдаётся в ответах под заказом
Метод - выберите для себя комфортный метод, на котором будет выполнена способность. При методе кодом, я укажу комментариями где нужно будет что-то отредактировать. Комфортные для меня методы в порядке убывания: vJass > Jass > cJass > Zinc > GUI
Версия Warcraft III - на определённых версиях не доступен мемхак и сджасс. Чтобы взять ориентир на рефорджед, могу воспользоваться UjAPI. Это необходимо для специфических заказов, к примеру, повышение бонусной силы атаки, где на старых версиях требуется мемхак/южапи/костыли/база данных, а на более новых для этого присутствуют нативки
Техническое описание - укажите что должна делать ваша способность, например:
1 уровень: выпускается волна в точку каста
2 уровень: 2 волны в точку каста с разницей в 20 градусов по бокам
3 уровень: 5 волн, одна посередине и по 2 по бокам с разницей в 10 градусовКаждая волна движется со скоростью 2000 и дальностью 1000. Радиус поражения 200 и с каждым уровнем увеличивается на 50 вместе с размером волны. Я хочу наносить урон юнитам самостоятельно, на гуи, с помощью TriggerEvaluate, мне нужны будут переменные применяющего юнита и уровень его способности на момент каста абилки, оставь пример нанесения урона с использованием этих переменных
Красивое форматирование приветствуется
Примеры работ
Всё у меня в ресурсах: xgm.guru/u/rsfghd
Заказ
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание: Надо сделать чтобы логово орков принимало не только рабов но и бугаёв и троллей. И скорость атака чтобы росла у логова при большем кол-ве юнитов.
Заклинание готово!
выдать всем юнитам, которых можно погрузить в бункер, абилку пустышку и указать её в триггерах
в остальном просто скопировать нестандартное в редакторе объектов и закинуть в свою карту
Ред. Shermanator00
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание: Способность можно активировать и деактивировать по желанию, но чтобы была перезарядка после деактивации.
Активирующий "поёт" находится анимации channel и неподвижен, пока не перестанет петь.
При активации, все кто слышит получают следующие эффекты и затем каждые 3 секунды :
-Противники получают штраф промахов 10/15/25%, затем каждые 3 секунды они оглушены на 0.5/1/1.5 секунд. (герои оглушены на 0.5 всегда)
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание: Способность активируется и деактивируется без перезарядки, как огненный плащ иллидана.
При активации постоянно тратит ману, но взамен, все находящиеся рядом лежащие трупы юнитов поглощаются героем и восполняют ему здоровье и ману, на 5%. Это те вида трупы, которые можно было каннибализировать. При этом можно сделать какой нибудь снаряд летящий из трупа в героя типа его частица поглощается в него, а после взорвать труп, чтобы нельзя было повторно его поглотить.
Заклинание готово!
Песня доблести
делал на гуи с использованием кастомскриптов для выбора юнитов и удаления точек, в целях оптимизации можешь изменить периодичность таймера TimerMove и его связывающих с 0.01 до 0.03. Таймер Timer и его связывающие с 0.01 до 0.10
Спелл муи
Ред. Shermanator00
Заклинание готово!
Воронка смерти
делал на гуи с использованием кастомскриптов для выбора юнитов и удаления точек, в целях оптимизации можешь изменить периодичность таймера TempTimer с 0.01 до 0.10. Таймер TempTimerMove с 0.01 до 0.03, и полностью убрать дополнительного даммика (тёмный хвостик фиолетовой птицы Dummy1)
Спелл муи
я уверен немало кому пригодится такой спелл, снаряд птички наконец - то где то прикольно смотрится
Ред. Shermanator00
Название: Dodge
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание: есть еще идея, www.hiveworkshop.com/threads/knightess-in-plate-armor.352884
я сделал эту модель, и там есть анимация, которая как в дарк соулсе перекат Spell Throw Alternate и уворот spell throw gold. Надо три варианта спеллов:
Первый вариант: расстояние до 400, проиграв анимацию герой быстро переместился перекатом на точку, которую указал игрок и получает сопротивление урону заклинаниям 100% и защиту 1000 на 2 секунд, а затем на 5 секунд получает скорость бега от свитка скорости 25%\50%\75% (необязательно для визуальности можешь в редакторе в разделе "графика" скорости бега поставить 350, а ходьбы 300 так как там walk fast есть).
Ред. ShadowNinja
У меня есть идея: герой стреляет лучом лазера в определенную цель, длится 6/7/8 сек. В это время герой ничего не может делать, а только поворачивается ко врагу передом (из живота или типа того лазер постоянно стреляет). И все вражеские юниты, на которых попал лазер - им постоянно наносится урон и они замедляются (как и цель, если её достаёт лазер). Также если цель будет убегать, то герой разворачивается к ней постоянно и атакует лазером (и наносит урон всем, кого лазер докоснулся). Дальность 900. Если цель убежит или героя потревожат - спелл закончится!
С лвлом повышается урон, замедление передвижения и длительность.
Заклинание готово!
перекопировать редактор объектов и вставить в свою карту
настроить равкоды (кроме BTLF) в триггере Spell в соответствии с редактором
всё остальное, что нужно/можно отредактировать помечено комментариями, на остальное нужны базовые знания джасса
Код
Однако... В мультиплеере из-за этого спела у половины игроков карта вылетает
Ред. ShadowNinja
Можно даже сделать так: что бы этот луч влево и вправо поворачивался, вернее сам герой сам автоматически его поворачивал во время использования этой способности (в лево, потом в право и так далее до конца способности)
Так можно больше вражеских юнитов задеть
"Название: Dodge
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание: есть еще идея, www.hiveworkshop.com/threads/knightess-in-plate-armor.352884
я сделал эту модель, и там есть анимация, которая как в дарк соулсе перекат Spell Throw Alternate и уворот spell throw gold. Надо три варианта спеллов:
Первый вариант: расстояние до 400, проиграв анимацию герой быстро переместился перекатом на точку, которую указал игрок и получает сопротивление урону заклинаниям 100% и защиту 1000 на 2 секунд, а затем на 5 секунд получает скорость бега от свитка скорости 25%\50%\75% (необязательно для визуальности можешь в редакторе в разделе "графика" скорости бега поставить 350, а ходьбы 300 так как там walk fast есть).
Второй вариант: шанс 15\20\25% будучи атакованным, герой рандомно переместился вправо ЛИБО (рандомно) влево (влево пока не анимировал еще) и следующий удар будет критическим 150%\200%\250%. Анимация уворота длится 1.2 секунд. Надо чтобы после уклона герой авто-атаку сделал обычную, может быть такое что после уклона анимация атаки не сыграет вроде.
Третий вариант: это для другого персонажа, пусть временным тестером будет Мэв, при нажатии герой высоко отскакивает в противоположную сторону куда она смотрит (назад т.е.) анимацией Spell Slam (вроде), а зона, где она изначально была взрывается через 0.5 сек и наносит 100\200\300 урона в радиусе взрыва, скажем 600
Я думаю что уклон влево\вправо анимация очень медленная, я б хотел посмотреть как оно работает против группы противников) Поэтому добавлю измененный файл снизу. Там Spell throw Gold 0.6 секунд длится вместо 1.2
И еще чтобы эти абилки работали на всех, кто ее может изучить 😀"
Заклинание готово!
Dodge (первый вариант)
ускоренная: xgm.guru/files/100/341434/comments/543747/Spell[speed].w3x
всё остальное гуишное, думаю разберёшься, (указать в триггерах абилки из ро, ну и можешь с параметрами побаловаться, вроде скорости переката и времени для баффов)
Ред. rsfghd
Заклинание готово!
Dodge (второй вариант)
всё остальное гуишное, думаю разберёшься, (указать в триггерах абилки из ро, ну и можешь с параметрами побаловаться, вроде скорости уворота, дальности, угла)
кроме этого, длительность уворота поставил не 1.20, а 0.50, потому что ну это капес перебор дружище, впрочем, всё в твоих руках, угол настроил не под 90 градусов, а 50, чтобы кружился вокруг атакующего противника и делал нырки при беге к дальнику ближе к его стороне, но опять же, всё настраиваемо
кроме того, пока юнит не нанесёт критический удар, он добавлен в группу для проверки, планировал это делать только на время самого уворота, но понял, что слишком большая потеря контроля происходит, если тебя устраивает шанс того, что игрок может всё время в уворотах находиться на поле боя и не иметь возможности убежать/ударить - убери всё, что связано с TempGroup
Ред. Shermanator00
Ред. rsfghd
Ред. Shermanator00
Юнит получает урон эта функция добавлена в новом патче варкрафта. В старом ее нет(
Заклинание готово!
Dodge (третий вариант )
все настройки на гуи, думаю разберёшься
Код
Ред. ShadowNinja
Пассивная способность! Чем меньше у вражеского юнита HP в %, тем больше урона ему наносится! За каждые 10% недостающего HP у врага ему наносится больше урона! К примеру за каждые 10% отсутствующих HP прибавляется 15 ед урона, на 2 лвл 30 ед урона, на 3 лвл 45 ед урона и тд! А если у врага 100% HP, то пассивка ничего не наносит (начинает наносить при 90% HP и менее). Ну или как-то так.
Ред. SebastianCarrey
Метод: любой
MUI: нет
Версия: 2.0.1
Цель: Точка на карте
Количество уровней: 4
Описание: Герой бьет перед собой эфирным молотом древних два раза. Сначала он разбивает землю в небольшом радиусе и наносит урон от своей атаки в виде магического урона, перемещаясь чуть вперед. Потом после паузы в 0,5 сек. бьет еще раз и так же перемещается чуть вперед. но уже с большем радиусом поражения.
Радиус первого удара об землю 250 АоЕ (Малый эффект).
Радиус второго удара об землю 375 АоЕ (Большой эффект).
Урон от каждого удара молота древних: 100% урона от атаки + 60/110/160/210 ед. в виде магического урона.
Перезарядка: 8 сек.
.
Предмет 1: "Сотрясатель земли"
Улучшает способность "Молот древних":
! Усиливает дополнительный магический урон до 120/220/360/420.
Если герой убивает противника способностью "Молотом древних", то c 15%-й вероятностью на его месте появляется Землетрясение (Даммик), которое наносит 100 ед. магического урона в сек и замедляет цели в радиусе 300 АоЕ на 35%.
Время существования Землетрясения: 6 сек.
Предмет 2: "Корона титана"
По окончанию действия способности "Молот древних", есть 30% шанс мгновенно ее перезарядить и улучшить ____урон от атаки следующей способности "Молот древних" до 250% (Анимация горения оружия на кончике клинка, с возможностью изменения эффекта) на 5 сек. Шанс на перезарядку не срабатывает от улучшенной версии способности!
1 удар по земле: Attack 1
2 удар по земле: Attack Slam 1
Можно сразу подогнать спел под его анимации.
Ред. rsfghd
Заклинание готово!
Молот древних (Rolling Slam)
Ред. rsfghd
Попробую сам поменять))
Можно сделать от мин до макс значения что бы урон выглядел не статично.
И там же получается суммарный урон выводится? Урон от атаки + фиксированный магический же?
BlzGetAbilityCooldown takes integer abilId, integer level returns real
Первым аргументом принимает равкод, а вторым уровень абилки, так что замени все эти строки на
BlzGetAbilityCooldown( 'A000', GetUnitAbilityLevel( A.caster, 'A000' ) )
Где А000 - равкод основной абилки
Ред. ShadowNinja
Герой отталкивает вражеского юнита или героя (1 лвл - на 700 дистанцию, 2 лвл - на 800 дистанцию и тд. 5 лвлов всего у способности и враг получает стан на 2-3-5-6-7 сек в конце отталкивания, в зависимости от лвл способности). Knockback
И далее - всех кого этот враг задел, пока он летел назад - они тоже отталкиваются на 300 дистанцию и получают урон (в зависимости от лвл способности) и стан 1 сек!
Также сам враг получает урон каждый раз, когда он отталкивает юнитов собой (какой именно урон - зависит от лвл способности). Т.е. чем больше он оттолкнул, тем больше урона ему наносится! Ну и тем более урона он наносит сам своим юнитам.
Думаю в игре будет круто смотреться.
Ред. ShadowNinja
Кстати - если он умрёт (враг, который летит) тогда абилка прекращается, и он больше никого раскинуть не сможет! Т.е. лучше выбрать цель на фулл хп
А у этой аббилки самим своим героем жертвуем - в толпу врагов врываемся (а таких абилок на самом деле много)
В геймплейном плане это 2 разные абилки и их в разных ситуациях используют
Заклинание готово!
Код
Ред. nazarpunk
Заказ
Метод: UjAPI
Версия Warcraft III: На свой вкус
Техническое описание:
Заказ
Метод: UjAPI
Версия Warcraft III: На свой вкус
Техническое описание:
Заказ
Метод: UjAPI
Версия Warcraft III: На свой вкус
Техническое описание:
Заказ
Метод: UjAPI
Версия Warcraft III: На свой вкус
Техническое описание:
Ред. ME_RiDi
Метод: GUI
Версия Warcraft III: 1.26
Техническое описание:
Герой садится на лошадь, овцу, свинью, при условии что у героя в инвентаре есть седло ( можно любой другой предмет). У животного появляется шкала усталости.
По седлам: 1 ур седла 200м, 2 ур. 400м.
После того как герой слез, усталость животного восполняется 1 ед в пол секунды. Максимально 100
Или у него больше нет времени. А спамить способностями не хочется
Ред. rsfghd
Ред. ShadowNinja
Нашёл я на просторах Хайва такую модель, и у неё есть анимация Spell Slam.
Он стреляет перед собой лазерами вот так
Ну или это будет вместо атаки, если так не получится норм сделать!
Ну или примерно сделать как получится для этой анимации Spell Slam, но спелл должен быть пассивный, а не активный т.к. таких кораблей может быть много
Ред. rsfghd
Заклинание готово!
78 строка - указать абилку и шанс такой атаки (абилку выдать юнитам, что должны проводить эту атаку)
85 строка - начальный оффсет угла от взгляда атакующего
86 строка - скорость вращения лазеров
93 строка - через сколько секунд появляются лазеры после начала проигрывания анимки Spell Slam
21-24 строки - оффсеты для лазеров
30 строка - радиус вокруг атакующего
38 строка - ширина лазера (32.00)
47, 49-52 строки - шаг лазера (чем больше тем менее точно, но более оптимизировано, лучше не ставить больше радиуса лазера)
48 строка - дальность лазера
54-55 - эффекты, использовал по сути как дебаг для ориентации скорости, оффсета и угла лазеров, можно удалить строки
58 - максимальный угол лазеров
71 - периодичность таймера (чем больше, тем оптимизированнее и менее точно, при изменении этой строки на 86 строке (0.05) тоже изменить периодичность)
Код
Только теперь такая ошибка! Можешь плз пофиксить для рефа?
А то получается что любая карта с этим спелом на рефе не пойдёт. Хотя большинство старых карт идут хорошо
Заказ
Метод: JASS/vJASS
Версия Warcraft III: Любая версия
Заклинание готово!
скопировать папку Initialization и вставить в свою карту
указать равкод абилки на 367 строке триггера Spell
изменить строки 340-344 на свой вкус
всё остальное требует минимальных знаний джасса
сделано на южапи
Код
Метод: Jass
Версия Warcraft III: 1.26
Техническое описание: При атаке у атакованного юнита отнимается защита в зависимости от уровня атакера, например если атакер 10 уровня, то с каждой атаки минусуется по 1 единице защиты за стак, если 20 уровень, то минусуется 2 единицы за стак и так до 100 уровня.
Максимум стаков - 7, когда достигает максимального стака, накидывается сайленс на 2 секунды, и через 5 секунд защита добавляется обратно.
Заклинание готово!
Понижение защиты
на 70 строке можно изменить время спадения дебаффа на броню
на 61 строке можешь настроить формулу уменьшения брони
на 54 строке аура торнадо для отображения дебаффа на юните + статус бар (на 24-25 то же самое)
Код
Ред. rsfghd
Ред. Desgul
Заказ
Метод: Jass
Версия Warcraft III: 1.26а
Техническое описание: Если цель – противник, он получает 400 ед. урона от светлой магии и отражает энергию, которая восполняет 300 ед. здоровья 5 вашим союзникам в радиусе 30 м.
Если цель – союзник, он восстанавливает 600 ед. здоровья и отражает энергию, которая наносит 190 ед. урона от светлой магии 5 противникам в радиусе 30 м.
Ред. rsfghd
Заклинание готово!
Божественная призма
скопировать даммика и абилку из ро и вставить в свою карту
в триггере Spell:
153 строка - указать равкод абилки
30-32 строки - указать скорость полёта снаряда
60 строка - количество целей для урона/хила после основной
54 строка - хил основной цели
57 строка - урон основной цели
62 строка - радиус с максимальной коллизией у юнита (+200)
71 строка - радиус
103 строка - хил второстепенных целей
105 строка - урон второстепенных целей
Код
Ред. nazarpunk
Заказ
Версия Warcraft III: Версия варкрафта для этого заказа
Техническое описание: Две способности в синергии
Водный элементаль
Цепная молния
Заказ
Версия Warcraft III: Любая версия
Техническое описание:
Попробую на стандарте что-то придумать с этим
Ред. Gosick3000
У меня есть модели пыли, но, к сожалению, другие модели я предоставить не могу.
Заклинание готово!
на 177 строке указать урон от первого удара
на 87 строке урон от второго удара
на 65 урон от серии ударов
на 142 урон при окончании серии ударов
Код
Ред. Desgul
Заказ
Метод: Jass
Версия Warcraft III: 1.26a
Техническое описание: как на видео только что бы начинала лететь за спиной катера
Призывает Синдрагосу, которая дышит холодом на противников перед вами на расстоянии до 40 м, нанося 400 урона и (снижая скорость передвижения на 50%) на 10 сек.
Заклинание готово!
Ярость Синдрагосы
перекопировать редактор объектов и вставить в свою карту
в триггере Spell на строках:
272 - указать равкод даммика который кастует замедление
261 - указать абилку призыва дракона
235-236 - смещение проявления дракона за спину кастера
238 - равкод дракона
244 - стартовая высота дракона (400)
245 - высота дракона во время полёта (300 - какую высоту установить, 100 - с какой скоростью установить эту высоту, т.е. с учётом стартовой высоты, дракон достигнет этой высоты за одну секунду)
246 - раскрас дракона (последний аргумент должен быть на 0)
251 - максимальное расстояние всего полёта с учётом проявления и исчезновения
140 - скорость полёта дракона
154 - при какой оставшейся дистанции начать выпускать ледяные волны
156 - индекс анимки полёта дракона
160 - при какой оставшейся дистанции начать исчезновение дракона
161 - формула исчезновения дракона ( 255.00 / ( указать параметр на 160 строке / speed ) )
162 - раскрас дракона, последний параметр не нужно трогать
164 - формула взлёта дракона ( скорость взлёта * ( 1.00 - d / указать параметр на 160 строке ) )
167 - другой индекс анимки полёта дракона (взмах крыльями)
170 - указать параметр на 160 строке + параметр на 173 строке
173 - периодичность спавна ледяных волн в зависимости от пройденной дистанции (т.е. каждые 35 единиц)
177-178 - смещение начала волны поближе к морде дракона
180 - равкод ледяной волны
186 - стартовая высота волны (на 75 единиц ниже высоты дракона)
192 - указать параметр на 170 строке
204 - дистанция до которой дракон должен проявиться
205 - формула проявления дракона ( 255.00 / ( ( максимальная дистанция - параметр на 204 строке ) / speed ) )
206 - то же самое, что и 162
32-33 - скорость полёта волны
37 - скорость полёта волны по Z
43 - радиус урона (300 + макс коллизия)
53 - радиус урона
57 - приказ замедления
58 - урон
64-110 - визуальные кPаКаЗяБрЫ
Код
if x > udg_MapRectXY[0] then
return udg_MapRectXY[0]
elseif x < udg_MapRectXY[1] then
return udg_MapRectXY[1]
endif
return x
endfunction
if y > udg_MapRectXY[2] then
return udg_MapRectXY[2]
elseif y < udg_MapRectXY[3] then
return udg_MapRectXY[3]
endif
return y
endfunction
local timer t = GetExpiredTimer( )
local integer i = GetHandleId( t )
local unit u
local unit caster
local unit dummy = LoadUnitHandle( udg_H, i, 0 )
local real x = GetUnitX( dummy )
local real y = GetUnitY( dummy )
local real a = GetUnitFacing( dummy ) * bj_DEGTORAD
local group g
set x = GetCorX( x + 10.00 * Cos( a ) )
set y = GetCorY( y + 10.00 * Sin( a ) )
call SetUnitX( dummy, x )
call SetUnitY( dummy, y )
call SetUnitFlyHeight( dummy, GetUnitFlyHeight( dummy ) - 5.00, 0.00 )
if GetUnitFlyHeight( dummy ) <= 0.11 then
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 1.00 )
call GroupEnumUnitsInRange( udg_TempGroup, x, y, 500.00, null )
set caster = LoadUnitHandle( udg_H, i, 1 )
set g = LoadGroupHandle( udg_H, i, 2 )
set bj_groupEnumOwningPlayer = GetOwningPlayer( caster )
loop
set u = FirstOfGroup( udg_TempGroup )
exitwhen u == null
call GroupRemoveUnit( udg_TempGroup, u )
if IsUnitInRangeXY( u, x, y, 300.00 ) then
if not IsUnitInGroup( u, g ) then
if IsUnitEnemy( u, bj_groupEnumOwningPlayer ) and not IsUnitType( u, UNIT_TYPE_DEAD ) then
call GroupAddUnit( g, u )
call IssueTargetOrder( udg_TempUnit, "frostnova", u )
call UnitDamageTarget( caster, u, 100.00, false, false, null, null, null )
endif
endif
endif
endloop
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u003', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u004', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u005', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u006', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u007', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
set dummy = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u008', x, y, GetRandomReal( 0.00, 360.00 ) )
call SetUnitAnimation( dummy, "death" )
call UnitApplyTimedLife( dummy, 'BTLF', 2.00 )
call UnitAddAbility( dummy, 'Arav' )
call SetUnitX( dummy, x + GetRandomReal( -200.00, 200.00 ) )
call SetUnitY( dummy, y + GetRandomReal( -200.00, 200.00 ) )
call SetUnitFlyHeight( dummy, GetRandomReal( 32.00, 150.00 ), 0.00 )
if LoadInteger( udg_H, i, 3 ) == 1 then
call DestroyGroup( g )
endif
call PauseTimer( t )
call FlushChildHashtable( udg_H, i )
call DestroyTimer( t )
set g = null
set caster = null
endif
set t = null
set dummy = null
endfunction
local timer t = GetExpiredTimer( )
local timer n
local integer i = GetHandleId( t )
local integer j
local unit caster = LoadUnitHandle( udg_H, i, 0 )
local unit dummy = LoadUnitHandle( udg_H, i, 1 )
local real x = GetUnitX( dummy )
local real y = GetUnitY( dummy )
local real a = GetUnitFacing( dummy ) * bj_DEGTORAD
local real d = LoadReal( udg_H, i, 3 )
local real r
local real speed = 5.00
if speed > d then
set speed = d
endif
set x = GetCorX( x + speed * Cos( a ) )
set y = GetCorY( y + speed * Sin( a ) )
call SetUnitX( dummy, x )
call SetUnitY( dummy, y )
set d = d - speed
if d <= 2300 then
if LoadInteger( udg_H, i, 4 ) == 0 then
call SetUnitAnimationByIndex( dummy, 4 )
call SaveInteger( udg_H, i, 4, 1 )
endif
if d <= 400.00 then
set r = LoadReal( udg_H, i, 5 ) - 255.00 / ( 400.00 / speed )
call SetUnitVertexColor( dummy, 175, 175, 175, R2I( r ) )
call SaveReal( udg_H, i, 5, r )
call SetUnitFlyHeight( dummy, GetUnitFlyHeight( dummy ) + 5.00 * ( 1.00 - d / 400.00 ), 0.00 )
if LoadInteger( udg_H, i, 4 ) == 1 then
call SetUnitAnimationByIndex( dummy, 3 )
call SaveInteger( udg_H, i, 4, 2 )
endif
elseif d > 435.00 then
set r = LoadReal( udg_H, i, 6 ) + speed
if r >= 35.00 then
set r = 0.00
set n = CreateTimer( )
set j = GetHandleId( n )
set x = GetCorX( x + 275.00 * Cos( a ) )
set y = GetCorY( y + 275.00 * Sin( a ) )
set bj_lastCreatedUnit = CreateUnit( GetOwningPlayer( caster ), 'u002', x, y, a * bj_RADTODEG )
call SetUnitAnimation( bj_lastCreatedUnit, "birth" )
call QueueUnitAnimation( bj_lastCreatedUnit, "stand" )
call UnitAddAbility( bj_lastCreatedUnit, 'Arav' )
call SetUnitX( bj_lastCreatedUnit, x )
call SetUnitY( bj_lastCreatedUnit, y )
call SetUnitFlyHeight( bj_lastCreatedUnit, GetUnitFlyHeight( dummy ) - 75.00, 0.00 )
call SaveUnitHandle( udg_H, j, 0, bj_lastCreatedUnit )
call SaveUnitHandle( udg_H, j, 1, caster )
call SaveGroupHandle( udg_H, j, 2, LoadGroupHandle( udg_H, i, 2 ) )
if d - speed <= 435.00 then
call SaveInteger( udg_H, j, 3, 1 )
endif
call TimerStart( n, 0.01, true, function MoveEffect )
set n = null
endif
call SaveReal( udg_H, i, 6, r )
endif
endif
if d > 2000.00 then
set r = LoadReal( udg_H, i, 5 ) + 255.00 / ( ( 2500.00 - 2000.00 ) / speed )
call SetUnitVertexColor( dummy, 175, 175, 175, R2I( r ) )
call SaveReal( udg_H, i, 5, r )
endif
if d <= 0.00 then
call PauseTimer( t )
call FlushChildHashtable( udg_H, i )
call DestroyTimer( t )
call SetUnitVertexColor( dummy, 0, 0, 0, 0 )
call KillUnit( dummy )
else
call SaveReal( udg_H, i, 3, d )
endif
set t = null
set dummy = null
set caster = null
endfunction
local timer t = CreateTimer( )
local integer i = GetHandleId( t )
local unit caster = GetTriggerUnit( )
local real x = GetUnitX( caster )
local real y = GetUnitY( caster )
local real a = Atan2( GetSpellTargetY( ) - y, GetSpellTargetX( ) - x )
set x = GetCorX( x - 800.00 * Cos( a ) )
set y = GetCorY( y - 800.00 * Sin( a ) )
set bj_lastCreatedUnit = CreateUnit( GetOwningPlayer( caster ), 'u001', x, y, a * bj_RADTODEG )
call SetUnitAnimation( bj_lastCreatedUnit, "birth" )
call QueueUnitAnimation( bj_lastCreatedUnit, "stand" )
call UnitAddAbility( bj_lastCreatedUnit, 'Arav' )
call SetUnitX( bj_lastCreatedUnit, x )
call SetUnitY( bj_lastCreatedUnit, y )
call SetUnitFlyHeight( bj_lastCreatedUnit, 400.00, 0.00 )
call SetUnitFlyHeight( bj_lastCreatedUnit, 300.00, 100.00 )
call SetUnitVertexColor( bj_lastCreatedUnit, 175, 175, 175, 0 )
call SaveUnitHandle( udg_H, i, 0, caster )
call SaveUnitHandle( udg_H, i, 1, bj_lastCreatedUnit )
call SaveGroupHandle( udg_H, i, 2, CreateGroup( ) )
call SaveReal( udg_H, i, 3, 2500.00 )
call TimerStart( t, 0.01, true, function Move )
set t = null
set caster = null
endfunction
function Trig_Spell_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction
local rect r = GetWorldBounds( )
set gg_trg_Spell = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Spell, Condition( function Trig_Spell_Conditions ) )
call TriggerAddAction( gg_trg_Spell, function Trig_Spell_Actions )
set udg_TempUnit = CreateUnit( Player( PLAYER_NEUTRAL_PASSIVE ), 'u009', 0.00, 0.00, 0.00 )
set udg_MapRectXY[0] = GetRectMaxX( r )
set udg_MapRectXY[1] = GetRectMinX( r )
set udg_MapRectXY[2] = GetRectMaxY( r )
set udg_MapRectXY[3] = GetRectMinY( r )
call RemoveRect( r )
set r = null
endfunction
Ред. ShadowNinja
Герой бросает дымовую гранату, которая взрывается в указанной точке и окутывает область дымом на несколько сек (размер области и время действия зависит от лвл способности)!
В выбранной области у всех врагов: понижается броня, они получают % шанс на промах от каждой атаки, а также они не могут кастовать способности (безмолвие) всё это пока они стоят в этой области дыма!
А все союзники и юниты игрока в этой области получают: + к броне, а сам герой, который скастовал, получает невидимость стоя в это облаке (при атаке невидимость не спадает, или спадает, но на 1 сек)
P.S. Желательно что бы на рефоржете работало тоже, для всех версий
Ред. SebastianCarrey
Метод: Jass
Версия Warcraft III: Главное что бы на рефе работала :)
Описание: Пассивно повышает силу героя на 3/6/9/12 ед. Каждая обычная атака героя восстанавливает ему 2/3/4/5 ед. маны за удар.
Когда здоровье героя падает до нуля, он не умирает а получает полную невосприимчивость к любому виду урона в течении следующих 3 сек., и получает бонусный вампиризм в размере 25%/50%/75%/100% от нанесенного урона (как от атак так и от способностей героя).
Перезарядка способности: 65/55/45/35 сек.
"Не героическая способность" Будет с самого начала уже у варвара.
Метод: Jass
Версия Warcraft III: Главное что бы на рефе работала :)
Описание: Герой издает боевой крик (волна от героя во все стороны) радиусом 1000 АоЕ, который вгоняет противников с 1 по 24 уровень в состояние "Страха", от чего они теряют возможность атаковать, замедляются в скорости передвижения на 25% и бегут прочь в течении 6 сек.
Перезарядка: 50 сек.
Снижает перезарядку способности "Угрожающий клич" до 35 сек. и когда герой использует её, он повышает свою силу на 5 ед. + 1 ед. за каждый уровень персонажа на 6 сек. Противники погибшие под действием эффекта способности взрываются, нанося по 25 ед. + 300% от силы магического урона всем врагам в радиусе 250 АоЕ.