Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание, но у вас не хватает знаний для его реализации, то эта тема специально для вас. В данной теме вы можете оставить заявку на создание необходимого вам заклинания.
Если вам нужно заклинание одного из персонажей DotA, то ищите его здесь.
Шаблон оформления заявки
Название: название заклинания Способ исполнения: GUI / JASS / всё равно Цель: вражеский юнит / свой юнит / сам герой / итд. Для героя: да/нет MUI: можно ли одновременно использовать заклинание больше одного раза Описание: здесь описание нужного спелла По уровням: здесь параметры на первом уровне здесь на втором итд.
А также если вы сделали заклинание и вы хотите его выложить, то используйте нижний шаблон:
Если вы считаете, что у вас есть возможность выполнить какую-либо из имеющихся заявок, то вы должны оставить сообщение, в котором указать какую из заявок обязуетесь исполнить.
Шаблон оформления ответа
Заклинание: здесь может быть название спелла или номер поста Заказчик: здесь имя пользователя, который заказал заклинание Способ исполнения: Jass или GUI MUI: можно ли одновременно использовать заклинание больше одного раза Нужен ли JNGP: Да или Нет Используются глобальные переменные: Да или Нет
Шаблон можно просто скопировать здесь, вставить в свое сообщение и заполнить:
Разрешается просто процитировать сообщение заказа и дописать информацию о получившемся заклинании.
Правила темы
Оформление заявок согласно шаблонам. Запрещено дублирование заявок. Написание заявок понятным русским языком. В пункте "Описание" необходимо максимально подробно описать все действия заклинания. Если все же возникли вопросы у выполняющих заявки людей - редактируем старую заявку (дописываем описание), а не отписываемся дальше!
Заявки, не удовлетворяющие правилам, будут удаляться!
Пример:
Название: Водоворот Способ исполнения: vJass Для героя: Да MUI: да Описание: Герой создаёт большой водоворот который идёт к точке применения способности, и засасывает в себя вражеских юнитов. Юниты в водовороте получают урон. Когда водоворот приходит к точке назначения он взрывается, выбрасывая всех затянутых в него юнитов и оглушая их. По уровням: Юниты в водовороте получают урон в размере 20*(Количество затянутых в водоворот юнитов), и оглушение на 1.2 сек. Юниты в водовороте получают урон в размере 25*(Количество затянутых в водоворот юнитов), и оглушение на 1.4 сек. Юниты в водовороте получают урон в размере 30*(Количество затянутых в водоворот юнитов), и оглушение на 1.6 сек. Юниты в водовороте получают урон в размере 35*(Количество затянутых в водоворот юнитов), и оглушение на 1.8 сек. Юниты в водовороте получают урон в размере 40*(Количество затянутых в водоворот юнитов), и оглушение на 2 сек.
globals private constant integer ABILID = 'ABGA' // raw code of ability "Graviton Acceleration" private constant integer DUMMYID = 'grAc' // raw code of unit "Graviton Acceleration Dummy"
private constant real MAXSPEED = 200.0 // maximum drag speed private constant real SPINRATE = 2.0 // number of spins in the center area per second
private constant string LIGHTNING = "DRAM" // lightning effect used, small note that lightning effect // can generate lag when dealing with mass units private constant boolean ALLOWLIGHT = true // true if lightning effect is used
private constant attacktype ATK = ATTACK_TYPE_NORMAL // attack type of damage private constant damagetype DMG = DAMAGE_TYPE_MAGIC // damage type of damage private constant weapontype WEP = WEAPON_TYPE_WHOKNOWS // weapon type of damage endglobals
private function GetCenterAoe takes integer level returns real return 100.0 // radius of center area endfunction
private function GetAoe takes integer level returns real return 600.0 // area of effect of spell endfunction
private function GetAbsorbAmount takes integer level returns real return 10.0 + (10.0 * level) // amount of mana absorbed per second endfunction
private function GetDuration takes integer level returns real return 5.0 // duration of spell endfunction native UnitAlive takes unit id returns boolean
globals public group Checkgroup = CreateGroup() endglobals
private struct Data integer level real x real y real duration real amount real angle real center real aoe group track unit caster unit dummy static Data tempData static hashtable Hash = InitHashtable()
private static method groupFunc takes nothing returns nothing local thistype this = tempData local unit u = GetEnumUnit() local real x = GetUnitX(u) local real y = GetUnitY(u) local real dx = x - this.x local real dy = y - this.y local real a local real mana local real dist = SquareRoot(dx * dx + dy * dy) local integer id = GetHandleId(u) local boolean check
if dist > this.aoe or not UnitAlive(u) then call DestroyLightning(LoadLightningHandle(Hash, this, id)) call GroupRemoveUnit(this.track, u) call GroupRemoveUnit(Checkgroup, u) else set mana = GetUnitState(u, UNIT_STATE_MANA) if mana >= this.amount then call SetUnitState(u, UNIT_STATE_MANA, mana - this.amount) else call UnitDamageTargetEx(this.caster, u, this.amount, true, false, ATK, DMG, WEP) call SetUnitState(u, UNIT_STATE_MANA, 0) endif set check = mana >= 1 set a = LoadReal(Hash, id, 0) + (this.angle) set dx = this.x + this.center * Cos(a) set dy = this.y + this.center * Sin(a) call MoveLightningEx(LoadLightningHandle(Hash, this, id), true, dx, dy, 0, x, y, GetUnitFlyHeight(u) + 50.0) call SaveReal(Hash, id, 0, a) if dist > this.center then set a = Atan2(this.y - y, this.x - x) if check then set dist = MAXSPEED * T32_PERIOD else set dist = MAXSPEED * (1.0 - (mana / GetUnitState(u, UNIT_STATE_MAX_MANA))) * T32_PERIOD endif set dx = x + dist * Cos(a) set dy = y + dist * Sin(a) endif if check then call SetUnitX(u, dx) call SetUnitY(u, dy) else call SetUnitPosition(u, dx, dy) endif endif set u = null endmethod
private static method filterFunc takes nothing returns boolean local thistype this = tempData local unit u = GetFilterUnit() local real a local real x local real y
if IsUnitEnemy(u, GetOwningPlayer(this.caster)) and UnitAlive(u) and not IsUnitInGroup(u, this.track) then set x = GetUnitX(u) set y = GetUnitY(u) set a = Atan2(y - this.y, x - this.x) static if ALLOWLIGHT then call SaveLightningHandle(Hash, this, GetHandleId(u), AddLightning(LIGHTNING, true, this.x + this.center + Cos(a), this.y + this.center + Sin(a), x, y)) endif call SaveReal(Hash, GetHandleId(u), 0, a) call GroupAddUnit(this.track, u) call GroupAddUnit(Checkgroup, u) endif set u = null return false endmethod
private static method groupFlush takes nothing returns nothing local thistype this = tempData local unit u = GetEnumUnit() local integer id = GetHandleId(u)
static if ALLOWLIGHT then call DestroyLightning(LoadLightningHandle(Hash, this, id)) endif call GroupRemoveUnit(Checkgroup, u) set u = null endmethod
private method periodic takes nothing returns nothing set tempData = this if this.duration <= 0 then call KillUnit(this.dummy) call ForGroup(this.track, function thistype.groupFlush) call FlushChildHashtable(Hash, this) call ReleaseGroup(this.track) call this.stopPeriodic() call this.deallocate() else call GroupEnumUnitsInArea(ENUM_GROUP, this.x, this.y, this.aoe, Filter(function thistype.filterFunc)) call ForGroup(this.track, function thistype.groupFunc) set this.duration = this.duration - T32_PERIOD endif endmethod implement T32x
static method actions takes nothing returns nothing local thistype this = thistype.allocate()
set this.caster = GetTriggerUnit() set this.level = GetUnitAbilityLevel(this.caster, ABILID) set this.x = GetSpellTargetX() set this.y = GetSpellTargetY() set this.duration = GetDuration(this.level) set this.amount = GetAbsorbAmount(this.level) * T32_PERIOD set this.angle = bj_PI * 2 * (T32_PERIOD / SPINRATE) set this.center = GetCenterAoe(this.level) set this.aoe = GetAoe(this.level) set this.track = NewGroup() set this.dummy = CreateUnit(GetOwningPlayer(this.caster), DUMMYID, this.x, this.y, 0)
call this.startPeriodic() endmethod
private static method onInit takes nothing returns nothing local trigger t = CreateTrigger()
call GT_RegisterStartsEffectEvent(t, ABILID) call TriggerAddAction(t, function thistype.actions) set t = null
Название: Avalanche Способ исполнения: GUI / Jass Цель: Область Для героя: Да MUI: Да Описание: Атакует участок местности, при котором противники получают повреждения и оглушаеются, если находятся в области действия заклинания. По уровням: Уровень 1 - 100 повреждений. Уровень 2 - 180 повреждений. Уровень 3 - 260 повреждений. Уровень 4 - 300 повреждений Уровень 1-4: 120 маны, 20 сек. перезарядка. Комментарий: АоE стан, камни сыпятся дальше указаного радиуса, не чанилинг и камни падуют примерно 2-3 сек(где-то так) т.е если мы отойдем камни будут сыпаться время указанное выше.Вместе с тоссом позволяет снести целую пачку крипов.
Название: Toss Способ исполнения: GUI / Jass Цель: Юнит Для героя: Да MUI: Да Описание: Тини хватает ближайшего юнита, союзника или врага, и кидает его в указанного юнита. При приземлении юнит наносит урон по площади и сам получает урон равный 20% тосса. с увеличением роста этот урон увеличивается. По уровням: Уровень 1 - дистанция: 500, 75 повреждений. Уровень 2 - дистанция: 700, 150 повреждений. Уровень 3 - дистанция: 900, 225 повреждений. Уровень 4 - дистанция: 1100, 300 повреждений. Уровень 1-4: 120 маны, 15 сек. перезарядка. Комментарий: Можно кидать своего союзника в гущу врагов, кидать под фонтан союзников/врагов, кидать в расщелины, внезапно гангать например выкидывать с кустов героев.
Замечание: Вследущий раз, чтобы посмотреть описание и тп сюда.
Если доту играеш то поймеш Название: 1 и 2 магия как у Тини Способ оформления: всё равно Для героя: да MUI: да Описание: 1 Магия: из героя выходят камни, блин незнаю как описать посмотри в доте тама на анг( 2 Магия: Герой подбрасывает боевую еденицу (это может быть и герой) на другую боевую ед. По уровням: дамаг как в доте.
Это тупой и наглый плагиат, а надо самому придумать
Linkin, Да бля в доте все стандартные спелы использованы И? че терь нельзя их другим использовать? хуйня всё это главное чтоб людям интересно было а всё остальное пох.
Kos94ok, Заклинание: Toss Заказчик:Kos94ok Способ исполнения: GUI / Triggers MUI: Да Нужен ли JNGP: Нет Используются глобальные переменные: Неизвестно
Добавлено (05.07.2011, 13:06) --------------------------------------------- кстате Kos94ok 1 спелл можна и без триггеров. Это обычный спелл ракетный удар и все.