Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание или наработку, но у вас не хватает знаний для реализации, то эта тема специально для вас. В данной теме вы можете, в определённом правилами формате, оставить заявку на создание необходимого вам заклинания или системы.
Если вы считаете, что у вас есть возможность выполнить какую-либо из имеющихся заявок, то вы можете оставить сообщение в определённом правилами формате, в котором указать какую из заявок собираетесь исполнить.

Правила темы

  • Запрещается дублирование заявок.
  • Любая заявка, написанная непонятным языком (обилие орфографических ошибок, орфоарт, отсутствие знаков препинания, использование рядов восклицательных и вопросительных знаков) будет удалена.
  • Обсуждение технических нюансов исполнения спелла или багов просьба вести через систему личных сообщений.
  • Для составления заявок используйте формы.
Заявки, не удовлетворяющие правилам, будут удалены !

Как составить заявку

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Желаемое название заказа
  • Желаемый метод исполнения (GUI/Jass/cJass/vJass)
  • Требуется ли возможность использовать спелл несколькими юнитами одновременно (MUI)
  • Цель применения способности
  • Количество уровней
  • Описание (Смысловое, а не художественное)
  • Технические характеристики (кол-во маны, параметры урона, перезарядки, время действия и т.п.) для каждого из уровней
Форма для составления заявки
# Заказ
**Название:** Название способности (или системы)
**Метод:** GUI/Jass/cJass/vJass/lua/angelscript
**MUI:** Обязательно/Не обязательно
**Цели:** Другой юнит / Сам юнит / Точка/ Область/Нет цели/Прочее (указать что именно)
**Количество уровней:** Целое число
**Описание:** Ваше описание. Можно слить со следующим.
**Технические характеристики:** Ваше описание. Можно слить с предыдущим.

Как принимать заказ

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Никнейм заказчика
  • Название выбранного вами заказа
  • Примерные сроки исполнения (конечно, их соблюдение не критично, но желательно)
Форма для принятия заявки
# Заказ принят
**Заказчик:** Никнейм заказчика
**Заказ:** Название способности/алгоритма
((центр
**Спелл будет завершен к [дата в формате дд.мм.гггг. без скобок]**
))
[ дата принятия заявки в формате дд.мм.гггг / дата, к которой спелл предположительно будет готов в формате дд.мм.гггг ]

Как сообщить о не/выполнении заказа

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Никнейм заказчика
  • Название выбранного вами заказа
  • Выполнен ли заказ
  • В случае, если заказ невыполним/не выполнен полностью, рекомендуется описать, что именно вам удалось/не удалось сделать.

  • Предоставить карту
Форма для не/выполненного заказа
Заклинание готово! [Если заказ выполнен успешно] / Не удалось выполнить заклинание [Если по каким-либо причинам вы не способны его выполнить] (1 из 2)
=
Заказчик: Никнейм заказчика
Заказ: Название способности
Выполнено: Да/Нет
-
[Сюда добавить инструкцию по импорту, или описать что у вас не/получилось, если не удалось выполнить заказ]
За качественно выполненный заказ вы получите дополнительно 200 единиц опыта.

Дополнительно: как приобрести спелл, не прибегая к этой теме

0. Пройдитесь по базе способностей xgm.guru/p/wc3/tag/ability или алгоритмов xgm.guru/p/wc3/tag/algorithm
A. Для начала загляните в Архив готовых спеллов. Возможно, спелл, аналогичный вашему, уже был сделан.
B. Проверьте, нет-ли нужного спелла в Библиотеке заклинаний. Проверенные спелл-мейкеры изготавливали заклинания специально для общественного использования.
C. Поищите общедоступные для открытия карты - там тоже бывают полезные вещи.
D. Если ничего не помогает, пройдитесь поиском по Академии - вероятно, что такие спеллы уже пытались делать и спрашивали как.
E. Если поиски не помогли, попробуй сделать его сам:
  • Осваиваем триггеры в Базе статей, F.A.Q., если не имеем понятия о них.
  • Существуют специальные статьи по созданию спеллов и баффов: 1, 2, 3, 4, 5
  • Поскольку ваши спеллы будут неоптимизированы, и более того, с кучей утечек - настоятельно рекомендуется читать статьи\темы про JASS. Тяжело читать? Легко делать!
  • Если ну никак не выходит сделать то что требуется, заходим в Академию и используем ее по основному назначению - задаем вопросы.

Разумные поиски и тщательное изучение помогут вам добиться результата.
`
LOADING AD...
The comment is deleted
1
27
1
Order fulfillment

Заклинание готово!

Заказчик: Brutal_bbk
Способность: Пока нет
Выполнено: Да

инструкция по импорту
Скопировать триггер Melee Initialization и закинуть в свою карту
Создать абилку пустышку на основе ауры, где в разрешенных целях поставить галочку на героях
Создать бафф пустышку и указать её в ауре и триггере
Если нужно, чтобы герои не хилялись при убийстве союзных юнитов, то укажи, что умирающий юнит враг убивающему
0.05 - процент хила от макс хп убитого (1.00 = 100%)
Replies (20)
0
4
0
rsfghd, типо здесь что-то нужно сделать ? (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Max life of (Triggering unit)) x 0.05))
)
0
27
0
Brutal_bbk, типа тебе нифига не нужно делать, всё сделали за тебя. Я просто поясняю если вдруг захочешь подставить другие собственные значения, потому что пример крайне простой, что заставляет усомниться в твоих логических возможностях и уровня познания гуишной среды варкрафта
0
4
0
rsfghd, та я же не говорил что я ас или что-то типо того. Если можешь, переделай карту.
0
27
0
Brutal_bbk, переделать? Под что?
0
4
0
rsfghd, ну чтобы когда союзники умирают, не хилится.
0
27
0
Brutal_bbk, ты не можешь тыкнуть одно логическое условие в триггер или что-то другое имеешь ввиду?
0
4
0
rsfghd, да, условие
0
4
0
rsfghd, ты наверное забыл переделать карту?
0
27
0
Brutal_bbk, скорее я забыл момент, где обещал переделывать что-то, можешь процитировать пожалуйста?
0
4
0
rsfghd, Ты спросил что нужно переделать, а я ответил сделать так что мои войска и войска союзника не хилились когда кто-то из своих умирает.
0
27
0
Brutal_bbk, это не ответ на мой вопрос, повторю ещё раз - можешь процитировать, где я обещал что переделаю?
0
27
0
Brutal_bbk, попроси konvan5 переделать, он лучше меня разбирается в таких сложностях, я лох, нуб и вообще какого черта я забыл в этой теме, моё место на помойке, пока </3
1
25
1
Brutal_bbk, при переборе группы проверяй, если выбранный юнит враг триггерного (умирающего), то хиляй
Вот скрины
0
4
0
rsfghd, не в обиду будет сказано, но если бы эта группа называлась !помощь в создании заклинаний!, тогда я бы понял твои (возмущения и недовольство), но группа называется !заклинания на заказ! . А это значит что если ты берешься за заказ, то будь добр доведи дело до конца, потому что бывает что возникают какие-то баги или же недочеты и их надо по возможности исправить. Тем более ты сам сразу написал что (Если нужно, чтобы герои не хилялись при убийстве союзных юнитов, то укажи, что умирающий юнит враг убивающему),а я не знаю как это сделать, то возьми и исправь эту ошибку поставь эту одну несчастную строчку и будет все ок, это займет у тебя одну минуту. Ладно во втором скиле возможно я виноват что не написал что нужно чтоб время для каждого юнита было свое, но логически можно было и догадаться как должно быть. Я сразу и написал что если можешь ,то переделай ,я понимаю что возможно там сложно все переделать вот и не просил чтоб переделал. Потом когда-нибудь еще раз попрошу этот скил, чтоб кто-то сделал.
0
4
0
konvan5, Я не знаю какое условие надо выбрать в Boolean Comparison чтоб найти то что на картинке.
1
25
1
Brutal_bbk, перебери каждый пункт, чтобы найти совпадение с тем, что на картинке, дело 1 минуты. А если еще знать английский и уметь читать, то дело 5 секунд найти :)
0
27
0
konvan5, ставлю 50 баксов что он не справится. Попросит другого чела помочь или забьёт
0
27
0
Brutal_bbk, не в обиду, но если бы у тебя не была деструкция когнитивных способностей, ты бы сделал уже давно всё сам, учитывая, что тебе не только пояснили, а ещё и скрины приложили. Я выполнил заказ таким, каким его заказывали. Я заполнил по шаблону выполнение заказа, я его завершил, всё. То что ты не в состоянии нормально расписать свои хотелки сугубо твои проблемы, пиши повторно заказ, где указывай что тебе нужно сделать. Ты мне деньги не платишь, чтобы я выслушивал твою фигню про то, как и что мне в этой теме нужно делать, это было исключительно моим желанием тебе помочь, так что ты ни в моральном праве, ни в физическом не в состоянии мне предъявлять какие-то претензии на основе несложившихся дедукционных способностей. Если заказчик упустил какие-то моменты в техническом описании заказа, в этом виноват исполнитель?
Тем более ты сам сразу написал что (Если нужно, чтобы герои не хилялись при убийстве союзных юнитов, то укажи, что умирающий юнит враг убивающему),а я не знаю как это сделать, то возьми и исправь эту ошибку поставь эту одну несчастную строчку и будет все ок, это займет у тебя одну минуту.
Кто виноват в том, что ты не знаешь как сделать тот или иной простейший элемент на фундаментальной основе базы триггеров? Это не займет у меня одну минуту, ибо исключительно ради твоего величества мне нужно переподключать комп, залогиниться на сайте, искать твой несчастный заказ, скачивать его, открывать в редакторе, пихать эту бедную строчку, сохранять и выставлять обратно. Сюда приправляем мое нежелание садиться за комп.
Ладно во втором скиле возможно я виноват что не написал что нужно чтоб время для каждого юнита было свое, но логически можно было и догадаться как должно быть
Твои социально-образовательные способности не перестают удивлять. Ты не возможно виноват, а точно виноват, ибо я выполнил всё исходя из описания заказа. А вот говорить за логику челу, который не может тыкнуть логическое условие в гуи, точно не стоит. Может я ещё исходя из твоего логического мышления должен был всю карту за тебя сделать? Почему я должен додумывать и читать твои мысли? Может по моей логике была задумка вроде предмета Гордыня (Hubris) из лиги легенд?
Знаменитость
Убивая чемпионов вы получаете временную прибавку к силе атаки.
Последовательные добивания врагов обновляют время действия усиления с учетом увеличившегося числа зарядов у владельца.
При смерти усиление снимается и, пока чемпион мертв, не накладывается; тем не менее, счетчик зарядов в таком случае увеличится.

Я сразу и написал что если можешь ,то переделай
А я сразу ответил, что переделаю когда будет время и желание. Ни первого ни второго я не имею. Надеюсь больше нечего констатировать и ты вынесешь что-то для себя, например, пощупать гайды по спеллам на ютубе. И чтобы не спорить со спеллмейкерами в этой теме, прочитай пункт Дополнительно: как приобрести спелл не прибегая к этой теме
1
27
1
Brutal_bbk, лан, сорри, у меня плохой период в жизни. Вот отредактированная версия
На выходных сделаю время для каждого баффа на силу атаки*
Uploaded files
1
4
1
rsfghd, Спасибо большое. Бывает с каждым.
1
27
1
Order fulfillment

Заклинание готово!

Заказчик: Brutal_bbk
Способность: Пока нет
Выполнено: Да

инструкция по импорту
Скопировать папку Initialization и вставить в свою карту
Создать абилку пустышку и указать её в триггере Killing
Создать нужное количество абилок, повышающих урон, по экспоненте
Указать вышесозданные абилки в триггере BaseData (ADAbil[ ])
Указать сколько каждая абилка даёт урона в триггере BaseData (AD[ ])
Указать количество абилок, повышающих урон в триггере BaseData (ADMax)
Указать количество дополнительного урона при убийстве в триггере Check (ADUnitDmg[ ])
Указать время дополнительного урона в триггере Check (ADUnitTime[ ])
Uploaded files
Replies (9)
0
4
0
rsfghd,
вот только время для каждого бонуса общее, а надо было чтоб для каждого бонуса было свое время.
0
27
0
Brutal_bbk, если есть желание, то сделай два двумерных массива через оффсеты, добавь ещё одну переменную которую будешь использовать как количество занятых ячеек двумерного массива, в первом ключе указывай время/урон, во втором ключе указывай количество, саму переменную количества инкрементируй с новым получением баффа юнита. Циклом обрабатывай время по каждому ключу из количества, когда время истекает - удаляй текущий бонус перемещай последнюю ячейку на место текущей и обнуляй последнюю ячейку, декрементируй переменную количества для текущего юнита. Либо переходи на джасс и используй локальный таймер для каждого бонуса. Можно так же подключить хэштаблицу, она и на гуи доступна
0
27
0
Brutal_bbk, двумерный массив для урона не нужно делать в случае, если дополнительный урон имеет статичное повышение/понижение, т.е. под твой случай
0
27
0
Brutal_bbk, если сильно нужно, то могу переделать, но точно не сегодня/завтра. Можешь подождать пока кто-то другой сделает набросок. Спеллы довольно простые и я бы на твоём месте практиковался делать их самостоятельно, в исключение могу взять, если ты больше ландшафтно-ориентирован
0
4
0
rsfghd, Если есть желание ,то переделай. На выгляд этот спел совсем не прост, столько тригеров длинных и переменных куча.
0
27
0
Brutal_bbk, спелл прост, лишь гуи нагромождает работу. Переделаю когда будет время и желание, советую попробовать самому доделать, как именно - описано выше
0
4
0
rsfghd, Спасибо, рассмешил я из того что ты выше написал не чего не понял. Я с 0 скилы не умею делать, только если есть скажем скил (каждый 3тий удар нанести крит урон, поменять на баш или удар молнии) вот такое я могу сделать. Ну или вот что на картинке
Uploaded files
1
27
1
Brutal_bbk, в триггере Killing значение ADUnitTime[ ... ] = 5 - время, ADVal = ( ... + 3 ) - дополнительный урон. В триггере Timer указать такой же дополнительный урон. В остальном инструкция по импорту практически такая же, триггера Check больше нет
Uploaded files
1
4
1
rsfghd, Спасибо, все хорошо работает.
0
27
0
сор что не отправил вчера, наглотался снотворного
2
27
2

Заклинание готово!

Заказчик: mistwood
Способность: вампиризм
Выполнено: Да

инструкция по импорту
Скопировать триггер Initialization и вставить в свою карту
Создать абилку пустышку яда
Указать в триггере Damaged дебафф яда в условии и удалении дебаффа
Указать в триггере Damaged в ветке если тогда иначе в условии шанс отхила
текстаги и спецэффекты можно удалять
Uploaded files
Replies (1)
0
6
0
rsfghd, спасибо! то что нужно!!!
0
4
0
ребята прошу не много просто поставьте юнитов на эти 5 точек "Попробуй расстояние до центра области разделить на 4
И поставить 3 точки по бокам, а 4 в центр" "Там от точки каста до центра выбранной области замеряешь расстояние
Делишь его на 4
Получается 4 отрезка и 5 точек"
вот описание скилла Кизару выбирает область 500 и выпускает отражающийся луч в сторону этой области, затем перемещается в центр области и выстреливает под себя, образуя взрыв в ней. Дальность применения 1000, кд 30 сек, урон (Ловкость х 3) х уровень способности.
Uploaded files
Replies (4)
0
27
0
KlonRefa, оформи запрос по кондиции и закинь видео под описание, потому что ничерта не понятно из сказанного
0
4
0

@rsfghd, Заказ

Название: Ята но Кагами
Метод: GUI/Jass/cJass/vJass/Lua
MUI: Обязательно/Не обязательно
Цель: Другой юнит /Точка/ Область/
Количество уровней: 5
Описание: Ваше описание. Кизару выбирает область 500 и выпускает отражающийся луч в сторону этой области, затем перемещается в центр области и выстреливает под себя, образуя взрыв в ней. Дальность применения 1000, кд 30 сек, урон (Ловкость х 3) х уровень способности. vk.com/video-194103046_456239250
у меня есть это лайтнинг эффект вам нужно прсто поставить юнитов на 5 точках(читайте мой преддыщуий комментарий) чтоб они друг другу кастовали нужный эффект и получился как на скриншоте выше скилл как то так примерно
1
4
1
rsfghd, мне уже сделали спасибо
Uploaded files
1
4
1
вот как красиво получилсоь
0
6
0

Заказ

Название: СФЕРы
Метод: GUI/Jass/
MUI: Обязательно!
Цель: Другой юнит
Количество уровней: 1
Описание: две предметные сферы.
Технические характеристики:
  1. Герой берет предмет, сфера бессилия. Она дает герою возможность атаковать воздушные цели, и при попадении по врагу на 5 сек. снижать его урон от атаки на 50%. (не использовать пламя обреченности повелителя огня, даст нескладываемый бафф)
  2. Сфера антимагии, она дает герою возможность атаковать воздушные цели, и при попадении по врагу сжигает у него по 25ед маны.
ps. версия варика 1.26.
желательно конечно чтоб в первой сфере бессилия, на враге висел дебаф. которые стакался с другими стандартными дебафами/бафами (например дебаф ауры).
Replies (1)
0
4
0
  1. Попробуй ''Увечье'' использовать
0
4
0
Заказ
Название: нет
Метод: GUI
MUI: -
Цель: -
Количество уровней: -
Описание: Нужен тригер в начале игры появляется таймер с названием (для примера можно в 10 сек поставить)
по истечении времени таймера в точке (А) появится юнит (враг) (в тумане войны) потом после его появления запускается новый таймер,но уже с другим временем (можно в 5 сек поставить) и опять в той точке появится такой же юнит и снова запустится таймер (в 5 сек) и опять появится юнит в той точке и на этом таймер пропадает (тригер отключается). И еще нужен один тригер, когда на карте будут убиты (определенные два босса) в точку (Б) будет отправлен мини мап сигнал на карте и на 5 сек откроется в той точке карта и запуститься таймер (можно тоже в 10 сек) по истечении времени там появятся мои союзники (можно добавить эффект телепортации их) и эти союзники пойдут в точку (А) убивая все на своем пути (врагов).Таймер снова запускается для этого респауна союзников (в 5 сек) (запуск таймера осуществляется сразу же после респауна этих союзников) . После второго подкрепления союзников таймер пропадает (тригер отключается).
1
29
1

Заказ

Название: Массовый контроль разума
Метод: GUI или Jass
MUI: Обязательно
Цель: Другой юнит
Количество уровней: -
Описание: Автоматически захватывает контроль над двумя ближайшими вражескими наземным юнитами не-героями, если у них уровень ниже 5. Если юнит, применивший способность "Массовый контроль разума", погибает - контроль "снимается" с захваченных юнитов.
Технические характеристики: Способность должна применяться автоматически. Количество юнитов, захваченных "Массовым контролем разума" должно быть настраиваемым.
Также необходимо (По крайней мере, очень желательно):
  1. Чтобы параметр уровня юнитов, которых можно захватить "массовым контролем разума", был настраиваемым.
  2. Чтобы на юнитов, захваченных "массовым контролем разума", накладывался бафф-пустышка, чтобы было видно, что их контролирует враг (И чтобы бафф пропадал, когда контроль "снимается").
  3. Чтобы "Массовый контроль разума" не действовал на юнитов с одной, конкретной, определённой пассивной способностью (Нужно для юнитов, у которых, по-сюжету проекта, будет способность "Защита от пси-контроля").
Создателя способности обязательно укажу в списке благодарностей проекта (Как минимум).
Replies (2)
0
27
0
Agren, сделаю на выходных если никто не преуспеет
0
29
0
rsfghd, большое спасибо!
2
27
2
Order fulfillment

Заклинание готово!

Заказчик: Agren
Способность: Массовый контроль разума
Выполнено: Да

инструкция по импорту
карта на гуи + кастомскриптах, мне пришлось юзануть хэштаблицу для возвращения контроля

скопировать папку Initialization и вставить в свою карту
в триггере Untitled Trigger 001 можно настроить радиус захвата ближайших юнитов и их количество за каст, там же находятся и все нужные проверки, добавишь свою защиту от пси излучения и если у тебя 2+ юнита разных игроков могут захватывать контроль, то желательно дать проверку, что юнит уже не находится под контролем, иначе может забаговаться, поскольку они находятся в группе контроля у другого юнита, и их оттуда нужно удалять, а тут нужно дополнительно нагромождать систему, что мне лень было сделать, т.е. в захваченных юнитов сохранить кто их захватил, потом доставать оттуда захватчика, удалять оттуда юнитов и давать новому захватчику, кроме этого нужно решать вопрос касательно кому же тогда возвращать юнитов которых 2+ раза подряд захватили - предыдущему захватчику или кому они изначально принадлежали, если захватчики принадлежат одному и тому же игроку, то всё будет окей, поскольку есть проверка, что юниты принадлежат врагу. Но не выйдет так, что 2 захватчика одного и того же игрока смогут захватить одного и того же юнита, и чтобы при убийстве одного захватчика, юнит всё ещё оставался под контролем, пока не убьют обоих захватчиков. В общем-то, ни один из перечисленных аспектов описан не был, поэтому ни над чем не пришлось париться. В этом же триггере находится выдача абилки пустышки на основе ауры торнадо для отображения дебаффа, думаю там сам уже разберёшься, поскольку это редактор объектов уже. Спецэффекты можно удалять
В триггере Untitled Trigger 002 возвращается контроль над убитым захватчиком или юнитом, которого захватили (в случае, если его воскресят, но если это не нужно было, то придётся отслеживать момент разложения юнита, что так же нагромождает систему и что мне так же было лень делать), а так же удаляется дебафф, спецэффекты можно убрать
Uploaded files
Replies (5)
0
29
0
rsfghd, большое спасибо за выполненный заказ!
Я проверил карту, всё работает. Но, есть одна проблема - способность можно "абузить" - если использовать её снова и снова, юнит захватывает контроль над новой парой юнитов, в добавок к уже двум захваченным ранее...
Пожалуйста, rsfghd, можете как-то сделать так, чтобы у юнита, повторно применяющего способность "Массовый контроль разума", если он уже контролирует двух (\определённое количество) юнитов, сбрасывался контроль над предыдущими двумя?
Конечно, я виноват, что не додумался в заказе указать этот пункт про анти-абуз способности....
1
27
1
Agren, я бы не назвал это абьюзом, но да, можно переделать. Если не сделаю на днях, то на выходных, поскольку у меня другие дела уже запланированы на этот вечер
1
29
1
rsfghd, спасибо большое! Конечно, когда сможете - сделайте, я вас не тороплю.
0
27
0
Order fulfillment
Uploaded files
0
29
0
rsfghd, большое спасибо! Сейчас посмотрю карту.
0
1
0
Здраствуйте я новичок скажите пож, а заклинания на заказ платные? за них надо платить?
Replies (3)
0
7
0
powertroll 333, нет, за них не платят, по крайней мере в этом топике.
0
1
0
ReiGyl, Спасибо!!! то есть я могу придумать любое заклинание ,и мне его сделают?
4
7
4
powertroll 333, по большей части тут сидят экспериментаторы, которым нечего делать в Warcraft III, поэтому может и сделают, если у них найдется время, желание, и заинтересует концепция.
1
27
1
Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание, но у вас не хватает знаний для его реализации, то эта тема специально для вас. В данной теме вы можете, в определённом правилами формате, оставить заявку на создание необходимого вам заклинания или системы.
Заплатить за проделанную работу является исключительно твоей инициативой. Есть другие приватные темы, где за заказ нужно платить, тут исключительно на энтузиазме спеллмейкеров
Replies (3)
0
1
0
rsfghd, Вы занимаетесь созданием модов? например мне нужно создать героя с со своими способностями? и что бы этим героем можно было играть например за альянс с ботами?или в карте дота алстар? просто чтобы знать?
0
27
0
powertroll 333, нет, я модификациями не занимаюсь
2
26
2
powertroll 333, можно взять какую либо из версий доты-аллстарс и модифицировать её внедрив своего героя. Но это будет уже другая карта, отличная от оригинала... т.е. вероятность того что народ будет играть на икапе или еще где именно в эту версию - нулевая. Проще найти какой-то иной проект и попробовать свою задумку там, может что да выйдет.
0
1
0
Work order

Заказ

Название: Soul Rend
Метод: GUI/Jass (1.26)
MUI: Обязательно
Цель: Другой юнит
Количество уровней: 1 (для предмета)
Описание: при использовании предмета указанный противник получает сайленс, а любой получаемый им урон увеличивался (длительность 10 сек., доп. урон 60%)
Желательно, чтобы параметры длительности и доп. урона были легко настраиваемыми.
0
16

Заказ

Название: Escape Leap
Метод: См.комментарий
MUI: Да
Цель: сам юнит
Количество уровней: См.комментарий
Описание: www.hiveworkshop.com/threads/escape-leap-v0-02.225863
Большая просьба изменить спелл: в нынешнем виде он не учитывает проходимость (например, лес, граница карты или возвышенность), из-за чего юнит вполне может застрять или потеряться. Препятствия должны корректно ограничивать точку приземления юнита.
Replies (4)
0
27
0
Галендор Крэйл, так юнит должен приземляться сразу в ближайшую проходимую точку или телепортироваться в неё после приземления? В чём проблема взять за основу спелл* на основе вардов*, чтобы запрещать игроку каст спелла в непроходимую точку?
1
16
rsfghd, заклинание не даёт выбрать точку приземления (впрочем, это не проблема - если ты играл в ВоВ за охотника, то знаешь способность Отрыв). При применении юнит отпрыгивает назад на определённую дистанцию. В текущем исполнении если позади него лес, он может приземлиться среди деревьев. Если возвышенность - оказаться на ней или перелететь через неё. И т.д.
Должно быть так: если на пути прыжка находится непроходимый участок, прыжок заканчивается у его границы (перед лесом, на берегу реки, у границы карты).
0
27
0
Галендор Крэйл, и всё же ты не дал мне толкового ответа на мой вопрос, видимо сам особо спеллмейкерством не занимаешься, рассказываю возможные варианты прекращения прыжка:
  1. резкое установление 0 полета и остановление движения при столкновении с препятствием
  2. отлавливать точку приземления перед кастом, спавнить там предмет для обнаружения ближайшей проходимой точки, перенаправлять точку приземления в позицию предмета
  3. циклом пройти расстояние от точки каста до точки падения для обнаружения непроходимой местности, при наличии препятствия - переустановить точку падения
  4. перестать двигаться при наличии препятствия до полного приземления
  5. и так далее))
0
27
0
Галендор Крэйл, а, оно вообще гуишное и немного говённое, не учитывается высота ландшафта, из-за чего герой будет как треморный дергаться на кривом ланде во время полёта
0
27
0
Order fulfillment

Заклинание готово!

Заказчик: Галендор Крэйл
Способность: Escape Leap
Выполнено: Да

в конце полёта просто заспавнил итем, переустановил точку, удалил итем и телепортировал туда кастера, импорт такой же как и в оригинале
Replies (6)
0
16
rsfghd, большое спасибо!
Ты прав, я в спеллмейкинге разбираюсь на примитивно-базовом уровне (если - то), поэтому мог не донести мысль корректно.
Проверил способность, она всё так же не считает лес препятствием, из-за чего юнит может приземлиться среди деревьев и не выбраться оттуда. Можно ли сделать так, чтобы на деревья была такая же "реакция", как и на водоёмы?
0
27
0
Галендор Крэйл, странно, я всегда думал что предмет не может заспавниться в декоре, проверю
0
27
0
Галендор Крэйл, я проверил, с деревьями такая же реакция как и с водоёмами, телепорт в ближайшую проходимую точку, спасибо за дезинфу и моё потраченное время
1
16
rsfghd, я не претендую на абсолютную истину, но... как тогда объяснить это? Для протокола: я просто заспавнил деревья на карте.
0
27
0
Галендор Крэйл, это говорит о твоей криворукости. Я же ясно сказал - телепорт в ближайшую проходимую точку. Открой вкладку обзора и поставь галочку на видимость проходимых путей: земля. И ты увидишь, что между твоими деревьями присутствуют пространства, которых в моём случае не было. Если ты и на воде сделаешь проходимую маленькую точку - будь уверен, он там окажется таким же образом
0
16
rsfghd, ах, вот оно что! Да, ты прав, всё так. Спасибо, тогда вопросов нет.
1
1
1
Work order
Можно ведь заказать сразу 3 скилла на героя (Лича)?
1.
Название: Цепной Мороз
Метод: GUI/Jass
MUI: Обязательно
Цель: Другой юнит
Количество уровней: 3
Описание: Создаёт ледяной шар, который отскакивает от противников до 10 раз, замедляя их и нанося им урон, увеличивающийся с каждым отскоком. (если у героя имеется определённый предмет (Скипетр Аганима), то количество отскоков не ограничено). Да, это ульт из доты.
Характеристики: 1 уровень: урон - 250 ед., увеличение урона - 15 ед., радиус отскока - 600, требует маны - 180 ед., перезарядка - 100 сек. 2 уровень: урон - 400 ед., увеличение урона - 20 ед., радиус отскока - 600, требует маны - 300 ед., перезарядка - 80 сек. 3 уровень: урон - 550 ед., увеличение урона - 25 ед., радиус отскока - 600, требует маны - 420 ед., перезарядка - 60 сек. Длительность замедления как у ледяной звезды на 1, 2, 3 уровнях.
Искал готовые наработки, но там дамми юнит (ледяной шар, модель атаки ледяного змея) летит к месту, где был вражеский юнит на момент применения заклинания (враг отошёл, и шар взорвался на большом расстоянии от него, но продолжил скакать как ни в чём ни бывало), не было увеличения урона с отскоком, ну и был только 1 уровень, из-за чего в редакторе объектов не мог менять урон в зависимости от уровня, ибо это всё на триггерах.
2.
Название: Ледяной Щит
Метод: GUI/Jass
MUI: Обязательно
Цель: Другой юнит, сам юнит, здания
Количество уровней: 4
Описание: Накладывает на цель щит, который уменьшает урон от атак по ней. Пока щит действует, он раз в 1 сек наносит урон вражеским юнитам вокруг и замедляет их. (модель щита такая же, как у ледяной брони) (по возможности, сделать эффекты волн от щита, просто чтобы визуально было видно область, в которой враги замедляются и получают урон).
Характеристики: 1 уровень: уменьшение урона - 30%, урон - 18 ед., длительность - 5 сек. 2 уровень: уменьшение урона - 40%, урон - 32 ед., длительность - 6 сек. 3 уровень: уменьшение урона - 50%, урон - 46 ед., длительность - 7 сек. 4 уровень: уменьшение урона - 60%, урон - 60 ед., длительность - 8 сек. Длительность замедления везде 0,5 сек. Везде требует 100 ед. маны, дальность применения как у ледяной брони, радиус области замедления и урона - 600.
3.
Название: Зловещий Взор
Метод: GUI/Jass
MUI: Обязательно
Цель: область
Количество уровней: 1, способность не относится к герою (ну как у юнитов обычных)
Описание: оглушает вражеское существо и крадёт ману и здоровье в процентном соотношении 10% в секунду. Длительность - 3 сек. Перезарядка - 24 сек.
Replies (2)
2
27
2
ALEX 101 НЕ, если никто не преуспеет, то сделаю на следующих выходных, может раньше, хз
0
27
0
ALEX 101 НЕ, вджасс юзать нельзя?
4
27
4
Order fulfillment

Заклинание готово!

Заказчик: ALEX 101 НЕ
Способность: Цепной Мороз
Выполнено: Да (GUI)

инструкция по импорту
удалить из папки Initialization триггер отделённый комментарием (он нужен для показа урона) и скопировать папку в свою карту
половина настроек в гуи, другая половина в редакторе объектов, я думаю ты разберёшься, добавишь нужное кол-во уровней замедления для даммикаста и для основной абилки, ману, кд иконки, описание и так далее устанавливай сам
в триггере Untitled Trigger 001 есть булекспр, где ты должен указать кого отлавливать в качестве следующей цели для нанесения урона, на данный момент там условие что юнит жив, что враг и что не равен предыдущей цели, там же можешь настроить радиус соприкосновения с целью, если тебе не нужны дополнительные эффекты, можешь удалить переменные Dummy1 и Dummy2, а вместе с ними все функции, где они были использованы (они станут красными после удаления), будет вылетать только один даммик
если нужна дополнительная помощь по импорту - спрашивай
Replies (2)
0
1
0
rsfghd, работа супер, но у меня возник вопрос по поводу того, как сделать у способности 3 уровня с изменением урона, ведь в триггере урон постоянно 250 и добавочный урон 15 (всегда 1 уровня). А всё остальное получается, манакост, кд, иконки, разобрался, где кол-во отскоков. А возможно ли сделать так, что если у юнита в предметах к примеру Сфера Льда, то отскоков бесконечное кол-во при любом уровне способности?
0
27
0
ALEX 101 НЕ, чел.. там в гуи настройки урона. Добавь ветку если тогда иначе, если уровень абилки у кастера 1, то выставить урон 250, если второй уровень, то 999 и так далее
4
27
4
Order fulfillment

Заклинание готово!

Заказчик: ALEX 101 НЕ
Способность: Ледяной щит
Выполнено: Да

инструкция по импорту
скопировать папку Initialization в свою карту
в триггере Melee Initialization подобрать равкоды в коде под редактор объектов, там же находится и радиус выбора юнитов для урона и урон по ним, отмечено комментариями
в триггере NegateDamage подобрать равкоды под редактор объектов

если нужна дополнительная помощь по импорту - пиши
так же советую сделать прелоад эффектов

а, сор, в триггере NegateDamage 35 строка
call NegateDamage( GetTriggerUnit( ), GetEventDamage( ) * ( 0.80 - 0.10 * GetUnitAbilityLevel( GetTriggerUnit( ), 'A002' ) ) )
формула блокирования урона, т.е. 0.80 - 0.10 * лвл (30% первый лвл, 40% второй и т.д.)
Replies (3)
0
38
0
rsfghd, а можно писать это в ответах на комментарий? Тогда список не будет так захламлен и можно будет сразу видеть заказы.
Возможно, в будущем у заказов с ответами-выполнениями будем делать какую-то особую пометку
0
27
0
ScorpioT1000, ниможна
warning от tysch_tysch: 3.1 Обсуждение действий модераторов (ОДМ) по предотвращению нарушений правил.
0
27
0
ScorpioT1000, и вообще где мои +200 опыта за выполнение заказов лебовски
2
15
2
Work order
Всем привет! Нужно заклинание, по своей сути ничего сверхестественного, однако моих знаний не хватает, чтобы учесть все моменты и реализовать это не криво.
Заказ
Название: Яростный рывок
Метод: Jass
MUI: Не нужно
Цель: Другой юнит / Точка
Количество уровней: 3
Описание: Герой прыгает в толпу врагов(Прыгает как прыгуны в длину, а не в высоту, то есть прыжок высокий не нужен, а лишь слегка над землей, потому что герой очень массивный - вождь минотавров). Враги, оказавшиеся на пути, получают 175/275/375 единиц урона и расталкиваются в стороны, от вектора прыжка. Те враги, которые стояли напротив вектора, отталкиваются назад. При этом, если за врагами стоят их союзники и враги налетают на них, то соответственно отталкивают так же и союзников.
По возможности, сделать так, чтобы враги, отлетевшие в декорацию или стену, получили 50/70/100 единиц урона.
Технические характеристики: Тут нужно учитывать преграды, чтобы герой не перепрыгнул через декорации или стены и чтобы враги отлетели так же до стен/декораций, но не сквозь них.
Replies (5)
2
27
2
Meddin, если никто не преуспеет, то сделаю на выходных, может раньше
2
27
2
Order fulfillment
Meddin, всё что нужно изменить при импорте в коде помечено комментариями, достаточно скопировать папку Initialization и вставить в свою карту
если что-то не понятно или нужно переделать - пиши
код
function GetDirection takes real alpha, real gamma returns integer
    if ( alpha < bj_PI and not( gamma > alpha and gamma < alpha + bj_PI ) ) or ( alpha > bj_PI and gamma > alpha - bj_PI and gamma < alpha ) then
        return 2
    else
        return 1
    endif
endfunction

function ParabolaZ2 takes real y0, real y1, real h, real d, real x returns real
    return ( 2.00 * ( y0 + y1 - 2.00 * h ) * ( x / d - 1.00 ) + ( y1 - y0 ) ) * ( x / d ) + y0
endfunction

function GetLocZ takes real x, real y returns real
    call MoveLocation( udg_LFZ, x, y )
    return GetLocationZ( udg_LFZ )
endfunction

function IsUnitDead takes unit u returns boolean
    return IsUnitType( u, UNIT_TYPE_DEAD ) or GetUnitTypeId( u ) == 0
endfunction

function MoveCollision takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local timer t1
    local integer i = GetHandleId( t )
    local integer i1
    local unit target = LoadUnitHandle( udg_H, i, 0 )
    local unit caster = LoadUnitHandle( udg_H, i, 1 )
    local unit u
    local real a = LoadReal( udg_H, i, 2 )
    local real d = LoadReal( udg_H, i, 3 )
    local real s = LoadReal( udg_H, i, 5 )
    local real x
    local real y
    local real x1
    local real y1
    local group g = LoadGroupHandle( udg_H, i, 6 )
    local group g1
    local player p = GetOwningPlayer( caster )
    
    if s > d then
        set s = d
    endif
    
    set d = d - s
    
    set x = GetUnitX( target ) + s * Cos( a )
    set y = GetUnitY( target ) + s * Sin( a )
    
    call SetItemPosition( udg_TempItem, x, y )
    call SetItemVisible( udg_TempItem, false )
    
    set x1 = GetItemX( udg_TempItem )
    set y1 = GetItemY( udg_TempItem )
    
    if ( x + 1.00 < x1 or x - 1.00 > x1 ) or ( y + 1.00 < y1 or y - 1.00 > y1 ) then
        set x = x - s * Cos( a )
        set y = y - s * Sin( a )
        set d = 0.00
        
        call UnitDamageTarget( caster, target, 25.00, false, false, null, null, null )
        call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl", target, "chest" ) )
    endif
    
    call SetUnitX( target, x )
    call SetUnitY( target, y )
    
    call GroupEnumUnitsInRange( udg_TempGroup, x, y, 416.00, null )
    
    loop
        set u = FirstOfGroup( udg_TempGroup )
        exitwhen u == null
        call GroupRemoveUnit( udg_TempGroup, u )
        
        if not IsUnitDead( u ) and IsUnitEnemy( u, p ) and not IsUnitInGroup( u, g ) and IsUnitInRange( u, target, 16.00 ) then
            call GroupAddUnit( g, u )
            
            set t1 = CreateTimer( )
            set i1 = GetHandleId( t1 )
            set x1 = GetUnitX( u )
            set y1 = GetUnitY( u )
            
            call SaveUnitHandle( udg_H, i1, 0, u )
            call SaveUnitHandle( udg_H, i1, 1, caster )
            
            call SaveReal( udg_H, i1, 2, Atan2( y1 - y, x1 - x ) )
            call SaveReal( udg_H, i1, 3, LoadReal( udg_H, i, 4 ) * 0.50 )
            call SaveReal( udg_H, i1, 4, LoadReal( udg_H, i, 4 ) * 0.50 )
            call SaveReal( udg_H, i1, 5, LoadReal( udg_H, i, 5 ) * 0.50 )
            
            set g1 = CreateGroup( )
            set bj_groupAddGroupDest = g1
            call ForGroup( g, function GroupAddGroupEnum )
            
            call SaveGroupHandle( udg_H, i1, 6, g1 )
            
            call TimerStart( t1, 0.01, true, function MoveCollision )
            
            set g1 = null
            set t1 = null
        endif
    endloop
    
    if d <= 0.00 then
        call DestroyGroup( g )
        
        call PauseTimer( t )
        call DestroyTimer( t )
        call FlushChildHashtable( udg_H, i )
    else
        call SaveReal( udg_H, i, 3, d )
    endif
    
    set t = null
    set g = null
    set target = null
    set caster = null
endfunction

function Move takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local timer t1
    local integer i = GetHandleId( t )
    local integer i1
    local unit caster = LoadUnitHandle( udg_H, i, 0 )
    local unit u
    local real a = LoadReal( udg_H, i, 1 )
    local real d = LoadReal( udg_H, i, 2 )
    local real s = LoadReal( udg_H, i, 4 )
    local real x
    local real y
    local real x1
    local real y1
    local player p = GetOwningPlayer( caster )
    local group g = LoadGroupHandle( udg_H, i, 8 )
    local group g1
    
    if s > d then
        set s = d
    endif
    
    set d = d - s
    
    set x = GetUnitX( caster ) + s * Cos( a )
    set y = GetUnitY( caster ) + s * Sin( a )
    
    call SetItemPosition( udg_TempItem, x, y )
    call SetItemVisible( udg_TempItem, false )
    
    set x1 = GetItemX( udg_TempItem )
    set y1 = GetItemY( udg_TempItem )
    
    // check pathing
    if ( x + 1.00 < x1 or x - 1.00 > x1 ) or ( y + 1.00 < y1 or y - 1.00 > y1 ) then
        set x = x - s * Cos( a )
        set y = y - s * Sin( a )
    endif
    
    call SetUnitX( caster, x )
    call SetUnitY( caster, y )
    call SetUnitFlyHeight( caster, ParabolaZ2( LoadReal( udg_H, i, 6 ), LoadReal( udg_H, i, 5 ), LoadReal( udg_H, i, 7 ), LoadReal( udg_H, i, 3 ), d ) - GetLocZ( x, y ), 0.00 )
    
    call GroupEnumUnitsInRange( udg_TempGroup, x, y, 464.00, null ) // radius with collision ( caster + target max collisions (200.00 + 200.00) )
    
    loop
        set u = FirstOfGroup( udg_TempGroup )
        exitwhen u == null
        call GroupRemoveUnit( udg_TempGroup, u )
        
        if not IsUnitDead( u ) and IsUnitEnemy( u, p ) and not IsUnitInGroup( u, g ) and IsUnitInRange( u, caster, 64.00 ) then // 64.00 - radius with unit collision
            call GroupAddUnit( g, u )
            
            call UnitDamageTarget( caster, u, LoadReal( udg_H, i, 9 ), false, false, null, null, null ) // damage
            call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl", u, "chest" ) )
            
            set t1 = CreateTimer( )
            set i1 = GetHandleId( t1 )
            set x1 = GetUnitX( u )
            set y1 = GetUnitY( u )
            
            call SaveUnitHandle( udg_H, i1, 0, u )
            call SaveUnitHandle( udg_H, i1, 1, caster )
            
            if GetDirection( a, Atan2( y1 - y, x1 - x ) ) == 1 then // left or right move
                call SaveReal( udg_H, i1, 2, a + bj_PI * 0.50 )
            else
                call SaveReal( udg_H, i1, 2, a - bj_PI * 0.50 )
            endif
            
            call SaveReal( udg_H, i1, 3, 416.00 ) // distance for discarding
            call SaveReal( udg_H, i1, 4, 416.00 )
            call SaveReal( udg_H, i1, 5, 7.00 ) // speed of discarding
            call SaveReal( udg_H, i1, 7, LoadReal( udg_H, i, 10 ) ) // wall damage
            
            // save group of all units thats already got damage from spell
            set g1 = CreateGroup( )
            set bj_groupAddGroupDest = g1
            call ForGroup( g, function GroupAddGroupEnum )
            
            call SaveGroupHandle( udg_H, i1, 6, g1 )
            
            call TimerStart( t1, 0.01, true, function MoveCollision )
            
            set g1 = null
            set t1 = null
        endif
    endloop
    
    if d <= 0.00 then
        call PauseUnit( caster, false )
        call DestroyEffect( AddSpecialEffect( "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl", x + 64.00 * Cos( a ), y + 64.00 * Sin( a ) ) )
        
        call DestroyGroup( g )
        
        call PauseTimer( t )
        call DestroyTimer( t )
        call FlushChildHashtable( udg_H, i )
    else
        call SaveReal( udg_H, i, 2, d )
    endif
    
    set t = null
    set g = null
    set caster = null
endfunction

function SetAnim takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local unit caster = LoadUnitHandle( udg_H, GetHandleId( t ), 0 )
    
    call PauseUnit( caster, true )
    call SetUnitAnimation( caster, "attack slam" )
    call QueueUnitAnimation( caster, "stand" )
    
    call TimerStart( t, 0.01, true, function Move )
    
    set t = null
    set caster = null
endfunction

function Trig_Spell_Actions takes nothing returns nothing
    local timer t = CreateTimer( )
    local integer i = GetHandleId( t )
    local integer lvl
    local unit caster = GetTriggerUnit( )
    local real x = GetUnitX( caster )
    local real y = GetUnitY( caster )
    local real x1 = GetSpellTargetX( )
    local real y1 = GetSpellTargetY( )
    local real d
    
    if UnitAddAbility( caster, 'Arav' ) then
        call UnitRemoveAbility( caster, 'Arav' )
    endif
    
    call SaveReal( udg_H, i, 5, GetLocZ( x, y ) ) // start height
    call SaveReal( udg_H, i, 6, GetLocZ( x1, y1 ) ) // end height
    
    set x = x1 - x
    set y = y1 - y
    set d = SquareRoot( x * x + y * y )
    
    call SaveUnitHandle( udg_H, i, 0, caster )
    call SaveReal( udg_H, i, 1, Atan2( y, x ) ) // angle
    call SaveReal( udg_H, i, 2, d ) // distance
    call SaveReal( udg_H, i, 3, d ) // distance max
    call SaveReal( udg_H, i, 4, d * 0.018 ) // speed
    call SaveReal( udg_H, i, 7, 75.00 + ( 750.00 - d ) * 0.15 ) // parabola height
    call SaveGroupHandle( udg_H, i, 8, CreateGroup( ) )
    
    set lvl = GetUnitAbilityLevel( caster, GetSpellAbilityId( ) )
    if lvl == 1 then // ability level
        call SaveReal( udg_H, i, 9, 175.00 ) // start damage
        call SaveReal( udg_H, i, 10, 50.00 ) // wall damage
    elseif lvl == 2 then
        call SaveReal( udg_H, i, 9, 275.00 )
        call SaveReal( udg_H, i, 10, 70.00 )
    else
        call SaveReal( udg_H, i, 9, 375.00 )
        call SaveReal( udg_H, i, 10, 100.00 )
    endif
    
    call TimerStart( t, 0.00, false, function SetAnim )
    
    set t = null
    set caster = null
endfunction

//===========================================================================
function Trig_Spell_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function InitTrig_Spell takes nothing returns nothing
    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 )
endfunction

0
27
0
Meddin, сор что долго, у меня проблемы со светом и жизнью в целом, лучше бы сдох
1
15
1
rsfghd, прими мою благодарность! Как раз на выходных займусь переносом, если что отпишусь.
3
14
3
сор что долго, у меня проблемы со светом и жизнью в целом, лучше бы сдох
Мне очень жаль это слышать. Желаю, чтобы у тебя всё наладилось. Простите за оффтоп.
PS способность шикарная
1
38
1
Latest news!
Ресурс переименован в "Способности и алгоритмы на заказ"
Заказывайте заклинания, алгоритмы и целые наработки. В дальнейшем мы планируем развивать систему поощрения за исполнение заказов!
0
4
0

Заказ.

Название пока нет.
Метод гуй.
Цели сам юнит.
Кол-во уровней 3.
Описание когда герой наносит крит урон герой получает хил (паладина на 100 хп) и + 10 к урону на 5 сек. и антимаг щит (банши) на 5 сек, а на врага накладывается дебаф в виде -3 брони на 5 сек. С каждым уровнем только будет увеличиваться шанс крита на 10-15-20%.
To leave a comment please sign in to the site.