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

Правила темы

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

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

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

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

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

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

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

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

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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
15
10 лет назад
0
Hate:
пшпш
scope BurningWaves initializer Init
    
//===========================================================================
//=============================SETUP START===================================
//===========================================================================
 globals
     private constant integer SPELL_ID = 'A026' //the rawcode of the spell
     private constant integer DUMMY_ID = 'e00C' //rw of the dummy unit my omnidummy is used in all my spells :)
     private constant string AOE_EFFECT = "pivot.mdl" //effect that will be created when we cast the spell on the AOE
     private constant string AOE2_EFFECT = "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl"// another thing used to make this spell cool
     private constant damagetype D_TYPE = DAMAGE_TYPE_FIRE //the attack type of the spell
     private constant attacktype A_TYPE = ATTACK_TYPE_MAGIC 
     private constant real RAY_R1 = 0.75 //Red color of the ray
     private constant real RAY_G1 = 0.5 //Green color 
     private constant real RAY_B1 = 0.0 //blue color
     private constant real RAY_A1 = 1.0 //Alpha of color 1=no transparency 0=FULL transparency
     private constant string RAY_ID2 = "FORK" //The rw of ligthing used for the waves
     private constant real RAY_R2 = 1.0 //Red color of the ray
     private constant real RAY_G2 = 0.2 //Green color 
     private constant real RAY_B2 = 0.05// blue color
     private constant real RAY_A2 = 1.0 //Alpha of color 1=no transparency 0=FULL transparency
     private constant real Spellaoe = 150. //not sugested to be more than 200 for balance things but whatever
     private unit ForFilter1
 endglobals

 private function Range takes integer level returns real
 return 150.
 endfunction

 private function Waves takes integer level returns real
 return level * 2. 
 endfunction


 private function Delay takes integer level returns real 
 return 0.1
 endfunction

 private function Damage takes integer level returns real
 return level * 25.
 endfunction

//===========================================================================
//=============================SETUP END=====================================
//===========================================================================
     private function Conditions takes nothing returns boolean
        return GetSpellAbilityId() == SPELL_ID
     endfunction
     
     
    function EnemiesFilter takes nothing returns boolean
        return (IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(ForFilter1)) and GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) > 0.045 and GetUnitAbilityLevel(GetFilterUnit(), 'Avul') == 0 and not IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE))
    endfunction

    function DamageUnitsInRange takes unit source, real x, real y, real range, real damage, attacktype at returns nothing
        local unit victim
        local group g = CreateGroup()
            set ForFilter1 = source 
            call GroupEnumUnitsInRange(g, x, y, range, Filter(function EnemiesFilter)) 
                loop
                exitwhen(FirstOfGroup(g) != null)
                    set victim = FirstOfGroup(g)
                    call UnitDamageTarget(source, victim, damage, true, false, at, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
                    call GroupRemoveUnit(g, victim)
                endloop
            call GroupClear(g)
            call DestroyGroup(g)
        set g = null
        set victim = null
    endfunction
     
    private function Actions takes nothing returns nothing
        local unit caster = GetTriggerUnit() 
        local real point_x
        local real point_y
        local integer level = GetUnitAbilityLevel(caster, SPELL_ID)
        local real facing = GetUnitFacing(caster)
        local integer Loopspell = 0
            set Loopspell = 0
            call TriggerSleepAction( .1 )
            set facing = GetUnitFacing(caster) 
                loop
                exitwhen Loopspell == (Waves(level) + 3.)
                    set point_x = GetUnitX(caster) + ((Range(level) * (Loopspell + 1.50 )) * Cos(facing * bj_DEGTORAD))
                    set point_x = GetUnitY(caster) + ((Range(level) * (Loopspell + 1.50 )) * Sin(facing * bj_DEGTORAD))
                    call DestroyEffect(AddSpecialEffect(AOE_EFFECT, point_x, point_y))
                    call TriggerSleepAction( Delay(level) )
                    call DestroyEffect(AddSpecialEffect(AOE2_EFFECT, point_x, point_y))
                    set Loopspell = (Loopspell + 1)
                    call DamageUnitsInRange(caster, point_x, point_y, Spellaoe, Damage(level), A_TYPE)
                endloop
        set caster = null
    endfunction
 
    private function Init takes nothing returns nothing
        local trigger BurningWavesTrg = CreateTrigger()
            call TriggerRegisterAnyUnitEventBJ(BurningWavesTrg, EVENT_PLAYER_UNIT_SPELL_EFFECT )
            call TriggerAddCondition(BurningWavesTrg, Condition( function Conditions ) )
            call TriggerAddAction( BurningWavesTrg, function Actions )
            call Preload(AOE_EFFECT)
            call Preload(AOE2_EFFECT)
            set bj_lastCreatedUnit = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), DUMMY_ID, 0, 0, 0)
            call UnitAddAbility(bj_lastCreatedUnit, SPELL_ID)
            call KillUnit(bj_lastCreatedUnit)
    endfunction
    
endscope
Ошибки и вейты в цикле.
0
26
10 лет назад
0
Tobi123:
Hate:
пшпш
scope BurningWaves initializer Init
    
//===========================================================================
//=============================SETUP START===================================
//===========================================================================
 globals
     private constant integer SPELL_ID = 'A026' //the rawcode of the spell
     private constant integer DUMMY_ID = 'e00C' //rw of the dummy unit my omnidummy is used in all my spells :)
     private constant string AOE_EFFECT = "pivot.mdl" //effect that will be created when we cast the spell on the AOE
     private constant string AOE2_EFFECT = "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl"// another thing used to make this spell cool
     private constant damagetype D_TYPE = DAMAGE_TYPE_FIRE //the attack type of the spell
     private constant attacktype A_TYPE = ATTACK_TYPE_MAGIC 
     private constant real RAY_R1 = 0.75 //Red color of the ray
     private constant real RAY_G1 = 0.5 //Green color 
     private constant real RAY_B1 = 0.0 //blue color
     private constant real RAY_A1 = 1.0 //Alpha of color 1=no transparency 0=FULL transparency
     private constant string RAY_ID2 = "FORK" //The rw of ligthing used for the waves
     private constant real RAY_R2 = 1.0 //Red color of the ray
     private constant real RAY_G2 = 0.2 //Green color 
     private constant real RAY_B2 = 0.05// blue color
     private constant real RAY_A2 = 1.0 //Alpha of color 1=no transparency 0=FULL transparency
     private constant real Spellaoe = 150. //not sugested to be more than 200 for balance things but whatever
     private unit ForFilter1
 endglobals

 private function Range takes integer level returns real
 return 150.
 endfunction

 private function Waves takes integer level returns real
 return level * 2. 
 endfunction


 private function Delay takes integer level returns real 
 return 0.1
 endfunction

 private function Damage takes integer level returns real
 return level * 25.
 endfunction

//===========================================================================
//=============================SETUP END=====================================
//===========================================================================
     private function Conditions takes nothing returns boolean
        return GetSpellAbilityId() == SPELL_ID
     endfunction
     
     
    function EnemiesFilter takes nothing returns boolean
        return (IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(ForFilter1)) and GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) > 0.045 and GetUnitAbilityLevel(GetFilterUnit(), 'Avul') == 0 and not IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE))
    endfunction

    function DamageUnitsInRange takes unit source, real x, real y, real range, real damage, attacktype at returns nothing
        local unit victim
        local group g = CreateGroup()
            set ForFilter1 = source 
            call GroupEnumUnitsInRange(g, x, y, range, Filter(function EnemiesFilter)) 
                loop
                exitwhen(FirstOfGroup(g) != null)
                    set victim = FirstOfGroup(g)
                    call UnitDamageTarget(source, victim, damage, true, false, at, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
                    call GroupRemoveUnit(g, victim)
                endloop
            call GroupClear(g)
            call DestroyGroup(g)
        set g = null
        set victim = null
    endfunction
     
    private function Actions takes nothing returns nothing
        local unit caster = GetTriggerUnit() 
        local real point_x
        local real point_y
        local integer level = GetUnitAbilityLevel(caster, SPELL_ID)
        local real facing = GetUnitFacing(caster)
        local integer Loopspell = 0
            set Loopspell = 0
            call TriggerSleepAction( .1 )
            set facing = GetUnitFacing(caster) 
                loop
                exitwhen Loopspell == (Waves(level) + 3.)
                    set point_x = GetUnitX(caster) + ((Range(level) * (Loopspell + 1.50 )) * Cos(facing * bj_DEGTORAD))
                    set point_x = GetUnitY(caster) + ((Range(level) * (Loopspell + 1.50 )) * Sin(facing * bj_DEGTORAD))
                    call DestroyEffect(AddSpecialEffect(AOE_EFFECT, point_x, point_y))
                    call TriggerSleepAction( Delay(level) )
                    call DestroyEffect(AddSpecialEffect(AOE2_EFFECT, point_x, point_y))
                    set Loopspell = (Loopspell + 1)
                    call DamageUnitsInRange(caster, point_x, point_y, Spellaoe, Damage(level), A_TYPE)
                endloop
        set caster = null
    endfunction
 
    private function Init takes nothing returns nothing
        local trigger BurningWavesTrg = CreateTrigger()
            call TriggerRegisterAnyUnitEventBJ(BurningWavesTrg, EVENT_PLAYER_UNIT_SPELL_EFFECT )
            call TriggerAddCondition(BurningWavesTrg, Condition( function Conditions ) )
            call TriggerAddAction( BurningWavesTrg, function Actions )
            call Preload(AOE_EFFECT)
            call Preload(AOE2_EFFECT)
            set bj_lastCreatedUnit = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), DUMMY_ID, 0, 0, 0)
            call UnitAddAbility(bj_lastCreatedUnit, SPELL_ID)
            call KillUnit(bj_lastCreatedUnit)
    endfunction
    
endscope
Ошибки и вейты в цикле.
ты бы оригинал увидел.. если на таймеры переделывать то там все переписывать нужно, ибо это страх
0
25
10 лет назад
0
Audes, щас сделаю.
Audes, какая-то визуальная аура надо?
Для красоты чисто визуально.
4
28
10 лет назад
4
 private function Range takes integer level returns real
 return 150.
 endfunction
крутой код
мне бы всегда так кодить
Audes, а вообще надо отправить тебя в опендоту
ибо это пасивка спектры
0
25
10 лет назад
0
nvc123, по идее да, но я уже сделал все с 0.
Загруженные файлы
0
15
10 лет назад
0
Ancient, спасибо.
0
13
10 лет назад
0
Заработало но Не появляется спецэфект
Hate, вот сама оригинальная карта со спеллом
Загруженные файлы
0
26
10 лет назад
0
Nikolah:
Заработало но Не появляется спецэфект
Hate, вот сама оригинальная карта со спеллом
а вот сразу НИКАК НЕЛЬЗЯ выложить ПОЛНЫЙ код.................
0
15
10 лет назад
Отредактирован Audes
0
Название: проклятие
Для героя: да
Уровни: 3
Цель: юнит
Способ исполнения: Jass/cJass/vJass
MUI: да
Описание: за каждый полученный урон наносит дополнительно магический урон в 15/20/25 ед. Урон от этой способности не может активировать сам себя (ну зацикливание или как-то так).
P.S. если можно, то на таргетного юнита повесить спецэффект.
0
25
10 лет назад
0
Audes, время действия?
и какой ефект повесить? Что бы герою соответствовало.
0
26
10 лет назад
0
Nikolah:
Заработало но Не появляется спецэфект
Hate, вот сама оригинальная карта со спеллом
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.