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

Правила темы

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

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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
21
Zikok247:
NazarPunk:
У меня не открывается в редакторе это. Пишет "Сведения об уровнях отсутствуют или неверны"
Нужна версия 1.31+ и отключить джасс хелпер
PT153:
NazarPunk, а что не понятно. Реген равен (0.01 * AbilityLvl * Strength * (1 - PercentHP / 100))
NazarPunk:
Отрицательный реген?
(0.01 * AbilityLvl * Strength * (100 - PercentHP))
1
NazarPunk:
Вот блин, я на 1.26. Как мне быть тогда?
Proshel_Doty:
0.01 * AbilityLvl * Strength * (100 - PercentHP)
100 - PercentHP больше или равно нулю ибо проценты или равны 100 или меньше сотни. Так что это положительный реген
30
Вот блин, я на 1.26. Как мне быть тогда?
  • Переходить на 1.31
  • Ждать, пока кто-то напишет для 1.26
  • Почитать статьи и реализовать самому
21
NazarPunk:
Даже MUI получилось
//! beginusercode
do
    -- На момент патча 1.31 эта функция всегда возвращает 0. Поэтому создадим её локальный аналог.
    local function AbilityId(id)
        return id:byte(1) * 0x1000000 + id:byte(2) * 0x10000 + id:byte(3) * 0x100 + id:byte(4)
    end

    -- Настройки
    local ABILITY_ID = AbilityId('AEev')

    -- Код
    local trigger = CreateTrigger()
    for i = 0, bj_MAX_PLAYER_SLOTS - 1, 1 do
        TriggerRegisterPlayerUnitEvent(trigger, Player(i), EVENT_PLAYER_HERO_SKILL)
    end
    TriggerAddAction(trigger, function()
        local caster = GetTriggerUnit()
        TimerStart(CreateTimer(), 1, true, function()
            if 
                not UnitAlive(caster)
                or
                BlzGetUnitMaxHP(caster) == GetWidgetLife(caster)
            then return end
            local hp = 0.01 * GetUnitAbilityLevel(caster, ABILITY_ID) * GetHeroStr(caster, true) * (100 - GetWidgetLife(caster)/BlzGetUnitMaxHP(caster)*100)
            SetWidgetLife(caster, GetWidgetLife(caster) + hp)
        end)
    end)
end
//! endusercode
Сделал из Змеиной ловкости.
Кст, там надо делать проверку на лвл способности при изучении, потому что когда повышаешь лвл способности, событие так же срабатывает, в итоге на 5м уровне идёт уже 5-тикратный реген )
33
Кст, там надо делать проверку на лвл способности при изучении, потому что когда повышаешь лвл способности, событие так же срабатывает, в итоге на 5м уровне идёт уже 5-тикратный реген
а если потом книгу забвения использовать, ммм =) неоднократно
21
а если потом книгу забвения использовать, ммм =) неоднократно
Абуз)))
28
Так на 1.26 проще простого сделать, если напомните, то сделаю днём.
30
а если потом книгу забвения использовать, ммм =) неоднократно
Не для публикации же готовил, зачем тестить))
PT153:
Так на 1.26 проще простого сделать
Можно вообще в лоб перебирать всех юнитов на карте и регенить по способности)
33
зачем тестить))
я не тестил, это по коду видно, сам такую ошибку часто совершаю, когда вешаю какое-либо свойство на событие изучения способности
30
Bergi_Bear, я пытался наиболее кратко от фонаря написать. Так бы я создал группу и For Group одним таймером ганял.
28
NazarPunk, Так тут даже MUI не надо.

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

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

Копируем способность, в настройках редактора ставим галку "Создавать неизвестные переменные", копируем триггеры из категории Regen, убеждаемся, что значения созданных переменных совпадают со значениями на скриншоте.
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.