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

Правила темы

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

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

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

Разумные поиски и тщательное изучение помогут вам добиться результата.
`
ОЖИДАНИЕ РЕКЛАМЫ...
26
так же напоминаю о существовании этого ресурса для желающих
2

Заказ

Название: "Когти Ярости"
Метод: GUI
MUI: Не обязательно
Цель: Сам юнит
Количество уровней: 7
Описание: 2 Режима с двумя иконками
Активка
Шанс на наносимый урон увеличивается на 12%, наносимый урон удваивается (т.е. процент урона от Ловкости), а так же скорость боя повышается, на 15/20/25/30/35/40/45%.
Пассивка
При каждой атаке героя, есть 8% шанс, нанести 0.6/0.8/1/1.2/1.4/1.6/1.8хЛовкость ед.урона, а так же, восстановить 15/20/25/30/35/40/45 ед.здоровья.
" Я так понял, это можно сделать через дефолт абилку "Неуязвимость" Утера?
В пассиве дать абилку с иконкой на расположение 0 и -11, а на активку увеличивать стату абилки?
Я на самом деле так и не понял как сделать ((
Технические характеристики: Время действия: 8/8/8/9/9/9/10 сек.
Перезарядка: 34 сек.
Загруженные файлы
21
Frozen1338, какая неуязвимость? через жар преисподней делай
1
сколько будет стоить наработка 3d + управление стрелками+атака на кнопку без наведения?
23
наработка 3d
Смотря что вы вкладываете в это понятие?
26
sloterok, вообще тема платных заказов вот: xgm.guru/p/blog-hatsumehate/218684, а тут управление стрелками с мапса: wc3-maps.ru/load/0-0-0-6807-20
28
Добрый день всем, нужна помощь с одним спеллом.

Заказ

Название : Коконы
Метод : желательно GUI (но можно и на Jass если переменные будут на gui )
Тип : Способность
Уровни : 1
Описание : Паук выкидывает коконы(со своей точки они летят по траектории пока не достигнут земли как на скрине) из коконов после 10 секунды должны выйти по 1-2 паучку но если коконы уничтожат за 10 секунд то из них ни кто не выйдет. - (приложил карту с моделями и коконом)
(желательно дать мне возможность настраивать)
Карта с коконом
- Количество коконов
- Количество паучков которые из них выйдут
- Время через которое паучки выйдут из кокона
- Расстояние на которые будут разбросаны коконы
Загруженные файлы
13
  1. Мега Удар
  2. GUI
  3. Не особо понял что это, но предположим да
  4. Все ВИДИМЫЕ враги на карте
  5. 3
  6. При применении наносится X(урон зависит от уровня спелла) урона всем ВИДИМЫМ врагам на карте. Также рядом с тем на кого подействовал скилл появляется огненный эффект (любой).
  7. Первый уровень: Стоимость маны: 80. Перезарядка: 30 секунд. Урона наносит 120. Анимация: Spell Throw
Второй уровень: разница лишь в уроне и стоимости, урон 150, стоит маны 100
Третий уровень: также разница только в уроне и стоимости, урон 180, стоит маны 120
22
// globals
//    integer array udg_cocoonSpawnUnitTypeId
//    integer array udg_cocoonSpawnsQuantity
//    integer array udg_cocoonUnitTypeId
//    integer cocoonsQuantity = 0
//    player array udg_cocoonOwner
//    real array udg_cocoonHatchDelay
//    real array udg_cocoonOriginX
//    real array udg_cocoonOriginY
//    real array udg_cocoonTargetY
//    real array udg_cocoonTragetX
//    real array udg_cocoonVectorX
//    real array udg_cocoonVectorY
//    unit array udg_cocoon
//    unit array udg_cocoonMissile
//    timer udg_cocoonsTimer
// endglobals

function CocoonTimerCallback takes nothing returns nothing
    local integer i = 0
    local integer j = 0
    local player owner = null
    local real distanceCovered = 0.0
    local real distanceTotal = 0.0
    local real distanceRemaining = 0.0
    local timer t = GetExpiredTimer()
    local real timeout = TimerGetTimeout(t)
    local real x = 0.0
    local real x0 = 0.0
    local real x1 = 0.0
    local real y = 0.0
    local real y0 = 0.0
    local real y1 = 0.0
    local unit missile = null
    local unit spawn = null
    local unit u = null
    local real z = 0.0

    if udg_cocoonsQuantity <= 0 then
        set t = null
	call DestroyTimer(t)
    endif

    loop
        exitwhen i >= udg_cocoonsQuantity
	if IsUnitDeadBJ(udg_cocoon[i]) and null == udg_cocoonMissile[i] then
	    set udg_cocoonsQuantity = udg_cocoonsQuantity - 1

            set udg_cocoonSpawnUnitTypeId[i] = udg_cocoonSpawnUnitTypeId[udg_cocoonsQuantity] 
	    set udg_cocoonSpawnsQuantity[i] = udg_cocoonSpawnsQuantity[i]
            set udg_cocoonUnitTypeId[i] = udg_cocoonUnitTypeId[udg_cocoonsQuantity] 
            set udg_cocoonOwner[i] = udg_cocoonOwner[udg_cocoonsQuantity] 
            set udg_cocoonHatchDelay[i] = udg_cocoonHatchDelay[udg_cocoonsQuantity] 
            set udg_cocoonOriginX[i] = udg_cocoonOriginX[udg_cocoonsQuantity] 
            set udg_cocoonOriginY[i] = udg_cocoonOriginY[udg_cocoonsQuantity] 
            set udg_cocoonTargetX[i] = udg_cocoonTargetX[udg_cocoonsQuantity] 
            set udg_cocoonTargetY[i] = udg_cocoonTargetY[udg_cocoonsQuantity] 
            set udg_cocoonVectorX[i] = udg_cocoonVectorX[udg_cocoonsQuantity] 
            set udg_cocoonVectorY[i] = udg_cocoonVectorY[udg_cocoonsQuantity] 
	    set udg_cocoon[i] = udg_cocoon[udg_cocoonsQuantity] 
            set udg_cocoonMissile[i] = udg_cocoonMissile[udg_cocoonsQuantity] 
 
            set udg_cocoonSpawnUnitTypeId[udg_cocoonsQuantity] = 0 
	    set udg_cocoonSpawnsQuantity[udg_cocoonsQuantity] = 0
            set udg_cocoonUnitTypeId[udg_cocoonsQuantity] = 0 
            set udg_cocoonOwner[udg_cocoonsQuantity] = null 
            set udg_cocoonHatchDelay[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonOriginX[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonOriginY[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonTargetX[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonTargetY[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonVectorX[udg_cocoonsQuantity] = 0.0 
            set udg_cocoonVectorY[udg_cocoonsQuantity] = 0.0 
	    set udg_cocoon[udg_cocoonsQuantity] = null 
            set udg_cocoonMissile[udg_cocoonsQuantity] = null 
	endif 

        set u = udg_cocoon[i]
	set missile = udg_cocoonMissile[i]
	if missile != null then
	    set x0 = udg_cocoonOriginX[i]
	    set y0 = udg_cocoonOriginY[i]
	    set x1 = udg_cocoonTargetX[i]
	    set y1 = udg_cocoonTargetY[i]

	    call SetUnitPosition(missile, GetUnitX(missile) + udg_cocoonVectorX[i]*timeout, GetUnitY(missile) + udg_cocoonVectorY[i]*timeout)
	    set x = GetUnitX(missile)
	    set y = GetUnitY(missile)
	    set distanceTotal = SquareRoot((x1 - x0)*(x1 - x0) + (y1 - y0)*(y1 - y0))
	    set distanceRemaining = SquareRoot((x1 - x)*(x1 - x) + (y1 - y)*(y1 - y)) 
            set distanceCovered = SquareRoot((x - x0)*(x - x0) + (y - y0)*(y - y0))
	    set z = 4*128.0/distanceTotal*distanceRemaining*(distanceCovered/distanceTotal)
	    call SetUnitFlyHeight(missile, z, 0.0)
	    if distanceRemaining <= 64.0 then
	        call RemoveUnit(missile)
		set udg_cocoon[i] = CreateUnit(udg_cocoonOwner[i], udg_cocoonUnitTypeId[i], x1, y1, 225.0)
		set u = udg_cocoon[i]
		call SetUnitUseFood(u, false)
                call UnitAddType(u, UNIT_TYPE_SUMMONED)
                call SetUnitExploded(u, true)
		call PauseUnit(u, true)
	    endif
	endif
       
	if u != null then
            set udg_cocoonHatchDelay[i] = udg_cocoonHatchDelay[i] - timeout
	endif
	if udg_cocoonHatchDelay[i] <= 0.0 and IsUnitAliveBJ(u) then
            set x1 = udg_cocoonTargetX[i]
	    set y1 = udg_cocoonTargetY[i] 
	    call KillUnit(u)
	    set j = 0
	    loop
	        exitwhen j >= udg_cocoonSpawnsQuantity[i]
		set spawn = CreateUnit(udg_cocoonOwner[i], udg_cocoonSpawnUnitTypeId[i], x1, y1, 225.0)
		call SetUnitUseFood(spawn, false)
                call UnitAddType(spawn, UNIT_TYPE_SUMMONED)
                call SetUnitExploded(spawn, true)
		set j = j + 1
            endloop
	endif
	set i = i + 1
    endloop

    set owner = null
    set t = null
    set missile = null
    set spawn = null
    set u = null
endfunction

function CreateSpellEffectCocoon takes unit c, integer cocoon, integer cq, integer spiderling, integer sq, real delay, real x1, real y1, real r returns nothing
    local integer cocoonsQuantity = IMinBJ(IMaxBJ(cq, 1), IMinBJ(128, JASS_MAX_ARRAY_SIZE - udg_cocoonsQuantity - 1))
    local integer i = 0
    local integer j = 0
    local integer spiderlingsQuantity = IMinBJ(IMaxBJ(sq, 1), 64)
    local player p = GetOwningPlayer(c)
    local real hatchDelay = RMaxBJ(1.0, delay)
    local real radius = RMaxBJ(r, 32.0)
    local real x0 = GetUnitX(c)
    local real y0 = GetUnitY(c)
    local unit u = null

    loop
        exitwhen j >= cocoonsQuantity 
	set u = CreateUnit(p, cocoon, x0, y0, bj_UNIT_FACING)
	call SetUnitUseFood(u, false)
	call UnitAddAbility(u, 'Aloc')
	call UnitAddAbility(u, 'Amrf')
	call SetUnitInvulnerable(u, true)
	call SetUnitX(u, x0)
	call SetUnitY(u, y0)
	call PauseUnit(u, true)

	set i = udg_cocoonsQuantity
	set udg_cocoonSpawnUnitTypeId[i] = spiderling
	set udg_cocoonSpawnsQuantity[i] = spiderlingsQuantity
        set udg_cocoonUnitTypeId[i] = cocoon
        set udg_cocoonOwner[i] = p
        set udg_cocoonHatchDelay[i] = hatchDelay
        set udg_cocoonOriginX[i] = x0
        set udg_cocoonOriginY[i] = y0
        set udg_cocoonTargetX[i] = x1 + radius*Cos(I2R(i)*(360.0/I2R(cocoonsQuantity)*bj_DEGTORAD))
        set udg_cocoonTargetY[i] = y1 + radius*Sin(I2R(i)*(360.0/I2R(cocoonsQuantity)*bj_DEGTORAD)) 
        set udg_cocoonVectorX[i] = (udg_cocoonTargetX[i] - x0)/radius*1100.0
        set udg_cocoonVectorY[i] = (udg_cocoonTargetY[i] - y0)/radius*1100.0
        set udg_cocoon[i] = null
        set udg_cocoonMissile[i] = u
	set udg_cocoonsQuantity = udg_cocoonsQuantity + 1
	set j = j + 1
    endloop
   
    if null == udg_cocoonsTimer or 0 == TimerGetTimeout(udg_cocoonsTimer) then
        set udg_cocoonsTimer = CreateTimer() 
        call TimerStart(udg_cocoonsTimer, 0.05, true, function CocoonTimerCallback)
    endif

    set p = null
    set u = null
endfunction

function CreateSpellEffectCocoonDefault takes unit caster returns nothing
    call CreateSpellEffectCocoon(caster, udg_COCOON_UNITTYPEID, udg_COCOON_QUANTITY, udg_COCOON_SPAWN_UNITTYPEID, udg_COCOON_SPAWN_QUANTITY, udg_COCOON_DELAY, GetUnitX(caster), GetUnitY(caster), udg_COCOON_OFFSET)
endfunction
Настраивается с помощью аргументов к функции, а не глобалок. В карте которую прикрепляю есть пример. Это позволяет иметь разные конфигурации заклинания в одной карте. Например, разные цвета коконов или разные по силе паучки, в зависимости от паучихи.
Как импортировать. Включите копирование глобальных переменных в редакторе. Скопируйте триггер. Удостоверьтесь что все глобальные переменные последовали. Скопируйте скрипт JASS в скрипт карты (корень дерева триггеров). Настройка производится либо передачей аргументов "вручную", либо изменением глобальных переменных, которые начинаются с "COCOON_...". Все что начинаются с малых литер должны оставаться неприкасаемыми.
COCOON_DELAY - задержка перед появлением паучков, секунд.
COCOON_OFFSET - растояние от паучихи до кокона.
COCOON_QUANTITY - количество коконов за применение способности.
COCOON_SPAWN_QUANTITY - количество паучков.
COCOON_SPAWN_UNITTYPEID - тип юнита паучка.
COCOON_UNITTYPEID - тип юнита кокона.
Если у кого проблемы с этой версией заклинания, вот ещё одна для русской 1.26а.
26

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

Заказчик: Esea
Способность: Мега Удар
Выполнено: Да

Копируй из карты в свою способность и триггер, после чего давай способность своему герою. Как и полагается, не работает на неуязвимых к магии.
Загруженные файлы
22
Обновил заклинание Кокон до версии 3 для 1.26а.
Загруженные файлы
28
Добрый день всем, нужна помощь с одной системой

Заказ

Название : Нагррада
Метод : желательно GUI (но можно и на Jass если переменные будут на gui )
Тип : Система
Уровни : Нет
Описание : При убийстве юнита - высвечивать определенное количество голды которое за него дадаут - методом Floating Text как в Legion TD) (Система нужна для 6 игроков - при том высвечивать голду за убийства только игроку который убьет ( так же за игроков каждой команды контролит один и тот же ИИ (2 команды по 3 игрока)
(желательно дать мне возможность настраивать)
- Количество золота при награде в разные моменты игры (например с такого вот крипа 1 голд , с другого крипа 2 голды)
26
Это настраивается у юнита в редакторе объектов. Где награда за юнитов ставишь нужную сумму, а в триггерах либо в категории Игрок, либо Игра есть действие, чтобы получать награду за убийство юнитов определённого игрока.
28
8gabriel8:
Это настраивается у юнита в редакторе объектов. Где награда за юнитов ставишь нужную сумму, а в триггерах либо в категории Игрок, либо Игра есть действие, чтобы получать награду за убийство юнитов определённого игрока.
Я знаю про это , но я же совсем другое описал
Подробно : в карте 6 игроков
Команда 1 : 3 игрока + 1 ИИ который контролит всеми войсками игроков
Команда 2 : 3 игрока + 1 ИИ который контролит всеми войсками игроков
(Когда ИИ убивает войсками скажем 1 игрока - тогда золото получит 2 игрок и Floating Text высветится только для того кто получит голд) и тд.
Но это только часть того что мне нужно (в основном мне нужна система показа награда за убийства в виде плавающего текста возле убитого юнита как в Легион тд )
30
в основном мне нужна система показа награда за убийства в виде плавающего текста возле убитого юнита
Так есть же.
26
Какой принцип получения золота? Почему золото получает 2 игрок, когда убивает 1?
28
8gabriel8:
Игроки только строят?
Да
NazarPunk:
Метод : желательно GUI (но можно и на Jass если переменные будут на gui )
Я видел ту систему но не знаю как подстроить то что там под то что нужно мне.
26
NazarPunk, ему хочется понятную систему, а не которая мозг сломает)
28
8gabriel8:
Какой принцип получения золота? Почему золото получает 2 игрок, когда убивает 1?
Игрок 1 - Человек
Игрок 2 - Человек
Игрок 3 - Человек
Игрок 4 - ИИ который получает контроль над войсками Игрока 1/2/3.
Когда Игрок 4 ИИ убивает вражеских юнитов войсками Игрока 1 - то золото получит Игрок 1 , и так далее по этому же принципу
Игрок 5 - Человек
Игрок 6 - Человек
Игрок 7 - Человек
Игрок 8 - ИИ который получает контроль над войсками Игрока 5/6/7
Когда Игрок 8 ИИ убивает вражеских юнитов войсками Игрока 5 - то золото получит Игрок 5 , и так далее
Все это с подсветкой Плаваюшего текста для игрока который получит золото
26
Так это и есть настройки в РО. Но может у тебя такой ИИ просто. По идее всем юнитам ставишь классификацию Страж, у них пропадёт панель приказов, но триггерные приказы ИИ они будут выполнять. Но чтобы не переделывать ИИ, вот тут есть наработка:
Правда, не знаю на GUI ли
28
8gabriel8: Приказы то пропадут но ими все равно можно контролить (Плюс страж не подходит , у юнитов есть свои способности и не хотелось бы их скрывать)
Выдать награду я могу сделать триггерно (мне больше нужна именно наработка самого плаваюшего текста)
Да это на Gui (как раз то что мне нужно) остается надеятся что система не будет глючить при больших кол убийств в то же время.
Спасибо
30
ему хочется понятную систему, а не которая мозг сломает)
Не думал, что строчка CustomCode мозг сломать может.
Загруженные файлы
30
Obelick:
Создавать текстаг для GetLocalPlayer() десинк же даст. Создавать нужно для всех, а показывать только нужному игроку.
SetTextTagVisibility(tt, IsVisibleToPlayer(x, y, GetLocalPlayer()));
Чтобы оставить комментарий, пожалуйста, войдите на сайт.