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

Правила темы

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

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

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Желаемое название заказа
  • Желаемый метод исполнения (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. Тяжело читать? Легко делать!
  • Если ну никак не выходит сделать то что требуется, заходим в Академию и используем ее по основному назначению - задаем вопросы.

Разумные поиски и тщательное изучение помогут вам добиться результата.
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
newtone, на 1.26 существует много способов это реализовать по разному. Если просто - увеличить скорость атаки башни, чтобы с двумя и более войнами она стреляла чаще.
Но если одновременное нахождение нескольких врагов в таргете обязательно, желательно знать: сколько будет таких типов башен, сколько будет помещаться юнитов и какие способы изменения скорости атаки и атаки башни будут в игре (улучшения, ауры, баффы, предметы, способности)
9
Vlod:
newtone, на 1.26 существует много способов это реализовать по разному. Если просто - увеличить скорость атаки башни, чтобы с двумя и более войнами она стреляла чаще.
Но если одновременное нахождение нескольких врагов в таргете обязательно, желательно знать: сколько будет таких типов башен, сколько будет помещаться юнитов и какие способы изменения скорости атаки и атаки башни будут в игре (улучшения, ауры, баффы, предметы, способности)
Скорость меня не интересует) Нужно увеличить количество целей для атаки. Башен таких будет очень много и у разных игроков. Бафов в карте которые воздействуют на строения нет, только стандартные дебафы.
1 работник на одну башню.
26
newtone, сделай два триггера с событиями погрузки/выгрузки юнита, дальше найди функции которые возвращают "транспорт" и "пассажира" при срабатывании этих триггеров. Когда разберёшься как сделать нужную проверку - просто добавишь башне абилку "ракеты", которые будут настроена на +1 цель для атаки. Всё вроде бы просто...
18

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

Заказчик: newtone
Способность: Войти в Башню
Выполнено: Да
Скачать
Для установки: скопируйте папку Tower(Peon) из триггеров и настройте башню по аналогии.
Загруженные файлы
9

Заказ

Название: Солнечный Удар
Метод: GUI/КОД
MUI: Обязательно
Цель: одна цель - вражеский юнит
Количество уровней: 3
Версия игры: 1.26а
Технические характеристики: Солнечный удар сверху, по одной цели. Наносит 100\150\200 урона, оглушает цель на 1\2\3 сек. и дает видимость "true sight" по области 500ед. вокруг нее или вокруг места удара (неважно) на 5 сек.
Перезарядка 15 сек. Мана 75\100\125.
ps. true sight - видит невидимые обьекты в указанной области.
2

Заказ

Название: Астральный Удар
Метод: GUI/Jass
MUI: Да, эту способность будут юзать еще 5 игроков
Цель: Область
Количество уровней: 3
Версия 1.26-1.27
Технические характеристики: Выбирая область 250\300\350, и используя способность по ней, все вражеские (только вражеские) войска помещаются в астрал на 10\20\30 сек. Грубо говоря стандартный астрал, только по области и только на врагов. Желательно без утечек...
15
Sexua1:

Готово

Название: Астральный Удар
Метод: GUI/Jass
MUI: Да, эту способность будут юзать еще 5 игроков
Цель: Область
Количество уровней: 3
Версия 1.26-1.27
Технические характеристики: Выбирая область 250\300\350, и используя способность по ней, все вражеские (только вражеские) войска помещаются в астрал на 10\20\30 сек. Грубо говоря стандартный астрал, только по области и только на врагов. Желательно без утечек...
Загруженные файлы
2
Desgul:
Sexua1:

Готово

Название: Астральный Удар
Метод: GUI/Jass
MUI: Да, эту способность будут юзать еще 5 игроков
Цель: Область
Количество уровней: 3
Версия 1.26-1.27
Технические характеристики: Выбирая область 250\300\350, и используя способность по ней, все вражеские (только вражеские) войска помещаются в астрал на 10\20\30 сек. Грубо говоря стандартный астрал, только по области и только на врагов. Желательно без утечек...
Спасибо! Скажи, а почему на основе канала?
Мне нужно чтоб ИИ мог кастовать этот спелл. Могу ли я поменять канал, скажем на огненный дождь, что измениться? Почему именно канал?
15
Sexua1, Можешь поменять, только эффекты огня убрать
10

Заказ

Название: Небесная звезда
Метод: GUI или Jass, главное как можно меньше утечек
MUI: Не обязательно
Цель: Точка
Количество уровней: 1
Версия игры для 1.26, хотя если там никак такое нельзя, а на 1.32 можно, то лучше на нем(на самом последнем лицушном)
Описание: При касте в точке "цель способности" создается даммик, он начинает каждые 0.01секунды подниматься в высоте(+5 постоянно) и в области вокруг себя(300+постоянное увеличение на 10) создавать рандомно огромные глыбы размером примерно с мост(рандомный размер), по которым можно ходить и текстура пути такая, что юниты которые ниже глыбы не могут на нее взобраться, а те что выше, могут на нее упасть, и притягивает эти глыбы к себе(скорость +5 в сторону даммика) и соответственно глыбы поднимаются в высоте к нему. И вот тут интересно, как это сделать получится, постоянное создание декорации и удаление прошлой путем GetLocationXYZ, а также как юниты будут ходить по ним, сделав им высоту как у глыбы? Продолжительность спелла 20 секунд.
Технические характеристики: Прочие нюансы сам сделаю
32
Lotus101, ты хождение как не крути не сделаешь, варкравт этажи не поддерживает, кстати я как то видел этот аниме спелл, если юзать невидимые платформы, ты сможешь ходить по ним туда\сюда, как по обычным мостам или подьемам.
Это типа из земли вырываются куски и летят в небо, склеиваясь в шар?
Ну максимум что можно - это поднимать невидимые платформы под глыбами, чтоюы юниты на них могли сидеть, но запретить им ходить ты не сможешь, плоскость по которой можно ходить в игре одна. Можно заморочится и сделать кастомную систему передвижения - но это слишком сложно и ресурсоемко.
22
quq_CCCP, но есть же платформа который поднимается и отпускаетсся через анимацией
23

Заказ

Название: Истощение маны
Метод: GUI/Lua
MUI: Обязательно
Цель: Все юниты на карте
Количество уровней: 1
Описание: Любой юнит размещенный на карте получает определенный дебаф если его количество маны достигает отметки в 20% от максимума, в тоже время юниты имеющие определенную пасивку не подвержены этому эффекту.
Технические характеристики: Возможность изменить дебаф/пасивку в коде. Комментарии конечно не помешают, и желательно ко всему коду(самому интересно как это работает).
33
Araders, могу помочь, так как увидел Lua, но пока не могу понять реализацию до конца. Событие "мана становиться меньше", не хочется как-то использовать по причине того что, аналогиченое событие на отслеживание хп у меня весьма часто крашило, а перебирать всех юнитов на карте раз в секунду, это тоже тяжело, если юнитов будет слишком много, вот я и хз как это реализовать то...
23
Bergi_Bear, через наличие пасиной способности или чего-то подобного будет проще?

Я имею в виду что в самом крайнем случаи можно обойтись только определенным видом войск. Я конечно предполагал что возможно это будет большая нагрузка на систему, но не мне говорить на что сейчас способен модмейкинг варкрафта.
33
через наличие пасиной способности или чего-то подобного будет проще?
и фиг нужно 2 события получить: мана стала меньше и мана стала больше, а на это ничего нового не завозили, всё так же, хоть на 126 делай, или тебе принципиально увидеть как это на луа?
23
Bergi_Bear, если не сложно можешь скинуть. Общую проблему я понял.
33
Araders, Может конечно чего-то забыл, но вроде работает
---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by Bergi.
--- DateTime: 26.07.2020 11:40
---
do
	--Инициализация
	TimerStart(CreateTimer(), 0.1, false, function()
		perebor = CreateGroup() --глобальная группа для перебора всех юнитов 1 единственная на всю игру, больше групп не надо
		InitManaLoosing()-- чтобы не подгрёб сбощик мусора и + у меня дебаггер прикручен к таймерам и + можно делать отложенный старт системы
	end)
end

ManaLoosingTable = {} --глобальная таблица, аналог хеша, сделана отдельной для изолированности наработки
DeBuffID = FourCC("A000") -- можно сделать на основе ауры замедления торнадо
DeBuffID2 = FourCC("B000") -- бафф иконки ауры торнадо
ImmuneID = FourCC("A001") -- Бафф иммунитет
Porog=0.2 -- пороговое значение для срабатывания дебафа - 20%%


function InitManaLoosing()
	-- Для юнитов изначально стоящих на карте
	TrigLESSEQUAL = CreateTrigger() -- триггер для потери маны меньше 20%%
	TrigGREATERTHAN = CreateTrigger() -- возврата маны

	local NewEntireOnMap = CreateTrigger() -- триггер проверки новых юнитов, созданных триггерно или суммом, ну или просто любых, которых не захватила инициализация карты
	TriggerRegisterEnterRectSimple(NewEntireOnMap, bj_mapInitialPlayableArea)
	TriggerAddAction(NewEntireOnMap, function()
		local EntireUnit = GetTriggerUnit()
		ChkUnitForManaDeBuffSystem(EntireUnit) -- ChkUnitForManaDeBuffSystem проверка и добавление юнита
	end)

	local e = nil
	GroupEnumUnitsInRect(perebor, bj_mapInitialPlayableArea, nil) -- перебор всех юнитов стоящих на карте заранее
	while true do
		e = FirstOfGroup(perebor)
		if e == nil then
			break
		end
		ChkUnitForManaDeBuffSystem(e) -- и добавление им события для проверки маны
		GroupRemoveUnit(perebor, e)
	end
	-- Триггеры проверки маны
	TriggerAddAction(TrigLESSEQUAL, function()
		local hero = GetTriggerUnit()
		UnitAddAbility(hero, DeBuffID)
		print(GetUnitName(hero) .. " значение маны упало ниже 20%%, добавляем наш дебафф")
	end)

	TriggerAddAction(TrigGREATERTHAN, function()
		local hero = GetTriggerUnit()
		if GetUnitAbilityLevel(hero, DeBuffID) > 0 then
			print(GetUnitName(hero) .. " значение маны восстановилось, удаляем дебафы")
			UnitRemoveAbility(hero, DeBuffID)
			UnitRemoveAbility(hero, DeBuffID2)
		else
			print(" Система дебафа еще не настроена, но событие удаления дебафа отработало корректно")
		end
	end)
end

function ChkUnitForManaDeBuffSystem(e) -- а вот и событие наше
	if UnitAlive(e) and not IsUnitType(e, UNIT_TYPE_STRUCTURE) and BlzGetUnitMaxMana(e) > 1 and GetUnitAbilityLevel(e, ImmuneID) == 0 then
		-- условия кому давать или не давать дебафф
		local percent = BlzGetUnitMaxMana(e) * Porog
		print("добавление событий для отлова падения или восстановления маны юнита " .. GetUnitName(e) .. " пороговое значение " .. percent)
		TriggerRegisterUnitManaEvent(TrigLESSEQUAL, e, LESS_THAN_OR_EQUAL, percent)
		TriggerRegisterUnitManaEvent(TrigGREATERTHAN, e, GREATER_THAN_OR_EQUAL, percent) --лучше написать просто  GREATER_THAN, надо проверять
	end
end

Карты нет, так как я не пользуюсь WE, но на дебагах отработало корректно

Вот это всё копируешь в отдельный блок себе, настраиваешь ID баффов, для первого теста даже не обязательно и работает вместе с ГУИ

Есть нюанс, пока не придумал как решить, плохо будет работать для героев, у которых будет расти мана с уровнем, ибо значение задаётся 1 раз в самом начале игры, кароче я уже пожалел, что так сделал, придётся всё заменить на периодическую проверку процента маны, а это уже попробуй сам =)
23

Заказ

Название: X удар
Метод: GUI/Lua
MUI: Обязательно
Цель: Сам юнит
Количество уровней: 2
Описание: Способность наносит определенное количество урона выбранной цели. Если нажать определенную комбинацию клавиш откроется невидимый спелбук, в котором можно выбрать каким типом урона будет бить скилл.
Технические характеристики: Возможность настроить клавишу/комбинацию клавиш.
33
Ни лайков ни спасибо за предыдущий заказ. Теперь проси других
33
Araders, почему, зачем камбинация клавишь, хочешь посмотреть как работать с комбинациями (сам не пробовал, но там просто вроде) можно сделать смену типа атаки через фреймы, или вообще через прокрутку колёсика мыши или через правый клик (хотя не, это не для дефолта, нужно брать мой перерисованный интерфейс для таких задач). Так что спелл бук может и хорошо, ладно.
23
Bergi_Bear, нет, важно само переключение типа атаки, а спелбук это просто предложенный мною вариант. Просто хочется как-то удобно переключать это все.
9
Заказ
Название: Прыжок медведя
Метод: GUI
MUI: Необязательно
Цель: Враги попавшие в зону способности
Количество уровней: 3
Описание: Юнит прыгает в определенную зону, наносит урон юнитам попавшим в зону, а так же оглушает(на 1/2/2.5 сек) или замедляет на 50%(1/2/3 секунды).
Технические характеристики: :
Уровень 1 : Урон 300, оглушает на 1 секунду или замедляет на 50% на 1 секунду(как удобнее), мана 100, перезарядка 120, дальность применения 400(прыжок на расстоянии 400, можете сделать как вам удобнее)
Уровень 2 : Урон 400, оглушает на 2 секунду или замедляет на 50% на 2 секунду(как удобнее), мана 150, перезарядка 100, дальность применения 400(прыжок на расстоянии 400, можете сделать как вам удобнее)
Уровень 3 : Урон 500, оглушает на 2.5 секунду или замедляет на 50% на 3 секунду(как удобнее), мана 150, перезарядка 80, дальность применения 400(прыжок на расстоянии 400, можете сделать как вам удобнее).
Чтобы оставить комментарий, пожалуйста, войдите на сайт.