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

Правила темы

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

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

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Желаемое название заклинания
  • Желаемый метод исполнения (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
21
7 лет назад
0
Вот, короче, образцы
Мне так и с таким оформлением надо
Буду или самостоятельно постепенно втч тут, или как получится
Devastating Magic
function DevastatingMagic takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: p, u5, u6, enemies
local location p
local unit u5 = GetTriggerUnit()
local unit u6
local group enemies = CreateGroup()
local real damage = 0
local real cdreduct = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if ( GetSpellAbilityId() == 'A296' ) then
set p = GetSpellTargetLoc()
call DestroyEffect(AddSpecialEffectLoc("SingerOfDeath1.mdx",p))
if udg_deadheroes > 7 then
set cdreduct = 7
else
set cdreduct = udg_deadheroes
endif
ЗАДАЁМ КД
call SetAbilityCD ('A296', 1, 8 - cdreduct)
call SetAbilityCD ('A296', 2, 8 - cdreduct)
call SetAbilityCD ('A296', 3, 8 - cdreduct)
call SetAbilityCD ('A296', 4, 8 - cdreduct)
call SetAbilityCD ('A296', 5, 8 - cdreduct)
ЗАДАЁМ КД - ЗАКРЫТО.
set enemies = GetUnitsInRangeOfLocAll(250.00,p)
loop
УРОН
set u6=FirstOfGroup(enemies)
exitwhen u6==null
call GroupRemoveUnit(enemies,u6)
if ( GetUnitAbilityLevelSwapped('Avul', u6) != 1 ) and ( IsUnitAliveBJ(u6) == true ) and ( IsUnitEnemy(u6,GetOwningPlayer(u5))==true ) then
set damage = 70 + 80 * (GetUnitAbilityLevelSwapped ('A296', u5))
call UnitDamageTargetBJ( u5, u6, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endif
endloop
call RemoveLocation (p)
УРОН - ЗАКРЫТО.

else
endif
call DestroyGroup (enemies)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: p, u5, u6, enemies
set p = null
set u5 = null
set u6 = null
set enemies = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Death Screams
function DeathScreams2 takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p, p2, p3, enemies
local timer t = GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
local unit u6=LoadUnitHandle(udg_Hash,GetHandleId(t),1)
local unit u7=LoadUnitHandle(udg_Hash,GetHandleId(t),4)
local location p = GetUnitLoc (u6)
local location p2
local location p3
local group enemies = CreateGroup()
local integer i = LoadInteger(udg_Hash,GetHandleId(t),3)
local real damage = LoadReal(udg_Hash,GetHandleId(t),5)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set i = i+1
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
ПЕРЕМЕЩЕНИЕ ВВЕРХ-ВНИЗ
if (i>0) and (i<13) and (u6!= null) then
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) + 50.00 ), 10000.00 )
else
call SetUnitFlyHeightBJ( u6, ( GetUnitFlyHeight(u6) - 50.00 ), 10000.00 )
endif
ПЕРЕМЕЩЕНИЕ ВВЕРХ-ВНИЗ - ЗАКРЫТО.
ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ
if (u6!=null) then
set p2 = GetUnitLoc(u5)
set p3 = PolarProjectionBJ(p, ( DistanceBetweenPoints (p, p2) / 12.50 ), AngleBetweenPoints(p, p2))
call SetUnitPositionLoc (u6, p3)
call RemoveLocation (p2)
call RemoveLocation (p3)
endif
ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ - ЗАКРЫТО.
if (i>24) then
set i = 0
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
call RemoveUnit(u6)
ЕСЛИ ТОТ ОЖИЛ, ТО ВСЁ
if IsUnitAliveBJ(u7) == true or IsUnitDeadBJ(u7) == false or GetUnitState(u7,UNIT_STATE_LIFE)>0 then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else
endif
ЕСЛИ ТОТ ОЖИЛ, ТО ВСЁ - ЗАКРЫТО.
ЭФФЕКТЫ НА ПЕВЦЕ И УРОН ВРАГАМ
set p2 = GetUnitLoc(u5)
if udg_deadheroes >= GetRandomInt(1,11) then
else
call AddSpecialEffectTargetUnitBJ( "chest", u5, "SingerOfDeath2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )

endif
set enemies = GetUnitsInRangeOfLocAll(225.00,p2)
УРОН
loop
set u6=FirstOfGroup(enemies)
exitwhen u6==null
call GroupRemoveUnit(enemies,u6)
if ( GetUnitAbilityLevelSwapped('Avul', u6) != 1 ) and ( IsUnitAliveBJ(u6) == true ) and ( IsUnitEnemy(u6,GetOwningPlayer(u5))==true ) then
call UnitDamageTargetBJ( u5, u6, damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
endif
endloop
УРОН - ЗАКРЫТО.
ЭФФЕКТЫ НА ПЕВЦЕ И УРОН ВРАГАМ - ЗАКРЫТО.
call RemoveLocation (p2)
else
endif
call RemoveLocation (p)
call DestroyGroup(enemies)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p, p2, p3, enemies
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
set p2 = null
set p3 = null
set enemies = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function DeathScreamsDamage takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p
local timer t = CreateTimer()
local unit u5=GetTriggerUnit()
local unit u6
local unit u7=GetEventDamageSource()
local location p = GetUnitLoc(u7)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
local real damage = 20 + 10 * ( GetUnitAbilityLevelSwapped('A297', u5))
local integer i = 0
call DisableTrigger(GetTriggeringTrigger())
call CreateNUnitsAtLocFacingLocBJ( 1, 'n393', GetOwningPlayer(u5), p, p)
set u6 = GetLastCreatedUnit()
call PlaySoundOnUnitBJ( gg_snd_SingerOfDeathDeathScreams, 100, u7 )
call SaveUnitHandle(udg_Hash,GetHandleId(t),1,u6)
call SaveUnitHandle(udg_Hash,GetHandleId(t),2,u5)
call SaveInteger(udg_Hash,GetHandleId(t),3,i)
call SaveUnitHandle(udg_Hash,GetHandleId(t),4,u7)
call SaveReal(udg_Hash,GetHandleId(t),5,damage)
call TimerStart(t,0.04,true,function DeathScreams2)
call RemoveLocation (p)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5, u6, u7, p
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
function DeathScreams takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
local unit u5 = GetTriggerUnit()
local unit u6
local group heroes = GetUnitsInRectAll(GetPlayableMapRect())
local trigger heroadded
local triggeraction heroaction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if ( IsUnitType(u5, UNIT_TYPE_HERO) == true ) then
set heroadded=CreateTrigger()
set heroaction=TriggerAddAction(heroadded,function DeathScreamsDamage)
loop
set u6=FirstOfGroup(heroes)
exitwhen u6==null
call GroupRemoveUnit(heroes,u6)
if ( IsUnitType(u6, UNIT_TYPE_HERO) == true ) and ( GetUnitAbilityLevelSwapped('A297', u6) >= 1 ) then
call TriggerRegisterUnitEvent(heroadded, u6, EVENT_UNIT_DAMAGED)
call UnitDamageTargetBJ(u5,u6,0.00,ATTACK_TYPE_HERO,DAMAGE_TYPE_NORMAL)
else
endif
endloop
else
endif
call DestroyGroup (heroes)
call TriggerRemoveAction (heroadded, heroaction)
call DestroyTrigger (heroadded)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
set u5 = null
set u6 = null
set heroes = null
set heroadded = null
set heroaction = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Dead Mana
function DeadMana takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
local timer t=GetExpiredTimer()
local unit u5=LoadUnitHandle(udg_Hash,GetHandleId(t),2)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
Если героя нет, то разрушить таймер, чтобы не крутился и не жрал ресурсы.
if (u5 == null) then
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else
ДОБАВЛЯЕМ МАНУ + ЗА МЁРТВЫХ
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath3.mdx",u5,"chest"))
call SetUnitState(u5, UNIT_STATE_MANA, GetUnitState(u5, UNIT_STATE_MANA) + GetUnitAbilityLevelSwapped('A298',u5) + GetUnitAbilityLevelSwapped('A298',u5) * udg_deadheroes )
ДОБАВЛЯЕМ МАНУ + ЗА МЁРТВЫХ - ЗАКРЫТО
endif
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: t, u5
set t=null
set u5=null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Requiem
function Requiem takes nothing returns nothing
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, enemyheroes, alliedheroes
local unit u5 = GetTriggerUnit()
local unit u6
local group enemyheroes = GetUnitsInRectAll(GetPlayableMapRect())
local group alliedheroes = GetUnitsInRectAll(GetPlayableMapRect())
local real enemiesfordeath = 0
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
if ( GetSpellAbilityId() == 'A299' ) then
СПЕРВА ВСЕ С СОЮЗАМИ И СЧИТАЕМ ИХ
loop
set u6=FirstOfGroup(enemyheroes)
exitwhen u6==null
call GroupRemoveUnit(enemyheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitAlly(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath + 1
if (u5 != u6) then
call KillUnit (u6)
else
endif
endif
endloop
СПЕРВА ВСЕ С СОЮЗАМИ И СЧИТАЕМ ИХ - ЗАКРЫТО.
ТЕПЕРЬ ВСЕ С ВРАГАМИ, ПРЕРВАТЬ РАНЬШЕ, ЕСЛИ СОЮЗОВ МАЛО
loop
set u6=FirstOfGroup(alliedheroes)
exitwhen u6==null or enemiesfordeath==0
call GroupRemoveUnit(alliedheroes,u6)
if IsUnitType(u6, UNIT_TYPE_HERO) == true and IsUnitAliveBJ(u6) == true and IsUnitEnemy(u6,GetOwningPlayer(u5)) == true and GetUnitStateSwap(UNIT_STATE_LIFE, u6) > 0.00 then
call DestroyEffect(AddSpecialEffectTarget("SingerOfDeath4.mdx",u6,"origin"))
set enemiesfordeath = enemiesfordeath - 1
call KillUnit (u6)
else
endif
endloop
ТЕПЕРЬ ВСЁ С ВРАГАМИ - ЗАКРЫТО.
else
endif
call DestroyGroup (enemyheroes)
call DestroyGroup (alliedheroes)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, enemyheroes, alliedheroes
set u5 = null
set u6 = null
set enemyheroes = null
set alliedheroes = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
0
1
7 лет назад
0

Заказ

Название: Ещё нету
Метод: Всё равно
MUI: Не обязательно
Цель: Нету цели
Количество уровней: 3
Описание: Подчинение крипа(монстра) на определённое время который убил вашего героя.
Технические характеристики: 1 уровень:10 секунд
2 уровень:15 секунд
3 уровень:20 секунд
0
29
7 лет назад
Отредактирован Волчачка
0
GADees15:

Заказ

Название: Ещё нету
Метод: Всё равно
MUI: Не обязательно
Цель: Нету цели
Количество уровней: 3
Описание: Подчинение крипа(монстра) на определённое время который убил вашего героя.
Технические характеристики: 1 уровень:10 секунд
2 уровень:15 секунд
3 уровень:20 секунд
globals
    hashtable yourhash      = InitHashtable()
    trigger   YourTrigger   = null 
endglobals



scope COD initializer TriggerHeroCharmOfDeath

function IF_ofcbsh takes nothing returns boolean
    return GetUnitAbilityLevel( GetTriggerUnit(), 'your' ) > 0 
endfunction

function cofcbsh takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer id = GetHandleId(t)
    local integer timeleft = LoadInteger( yourhash, id, StringHash("CharmTime") )
    if timeleft > 0 then
        if IsUnitType(LoadUnitHandle(yourhash, id, StringHash("CharmedCreep")), UNIT_TYPE_DEAD ) then
            call DestroyTimer(t)
            if LoadUnitHandle(yourhash, id, StringHash("CharmedCreep")) != null then
                call SetUnitOwner( LoadUnitHandle(yourhash, id, StringHash("CharmedCreep")), LoadPlayerHandle(yourhash, id, StringHash("CreepPlayer")), true )
            endif
            call FlushChildHashtable( yourhash, id)
        else
            call SaveInteger( yourhash, id, StringHash("CharmTime"), timeleft - 1 )
        endif
    else
        call DestroyTimer(t)
        if LoadUnitHandle(yourhash, id, StringHash("CharmedCreep")) != null then
            call SetUnitOwner( LoadUnitHandle(yourhash, id, StringHash("CharmedCreep")), LoadPlayerHandle(yourhash, id, StringHash("CreepPlayer")), true )
        endif
        call FlushChildHashtable( yourhash, id)
    endif
    set t = null
endfunction

function CharmOfCritterBySlainHero takes nothing returns nothing
    local unit k = GetKillingUnit()
    local unit u = GetTriggerUnit()
    local integer id
    local timer t
    if GetWidgetLife(k)>.405 and  not IsUnitType( k, UNIT_TYPE_DEAD ) and k != null then
        set t = CreateTimer()
        set id = GetHandleId(t)
        call SavePlayerHandle(yourhash, id, StringHash("CreepPlayer"), GetOwningPlayer(k))
        call SaveInteger( yourhash, id, StringHash("CharmTime"), (GetUnitAbilityLevel(u, 'your') * 50) + 49 )
        call SaveUnitHandle(yourhash, id, StringHash("CharmedCreep"), k )
        call SetUnitOwner( k, GetOwningPlayer(u), true )
        call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Other\\Charm\\CharmTarget.mdl", k, "origin"))
        call TimerStart(t, .1, true, function cofcbsh )
    endif
    set t = null
endfunction

function TriggerHeroCharmOfDeath takes nothing returns nothing
    set YourTrigger = CreateTrigger()
    call TriggerAddAction( YourTrigger, function CharmOfCritterBySlainHero )
    call TriggerAddCondition( YourTrigger, Condition(function IF_ofcbsh) )
    //call TriggerRegisterDeathEvent( YourTrigger, YourUnit )
endfunction 

endscope
Вместо 'your' - rave код вашей способности
Вместо YourTrigger код вашего триггера
Вместо yourhash - ваша хеш-таблица, хоть udg_;
Героя сами добавите в триггер //call TriggerRegisterDeathEvent( YourTrigger, YourUnit ) или своим методом, где YourTrigger - ваш триггер, YourUnit - ваш герой...
0
21
7 лет назад
0
KingMaximax, посмотри, пожалуйста, мои ПОСЛЕДНИЕ образцы под катами, все понятно? Выполнять так сможешь?
Вместо равкодов абил AXXX, вместо равкодов даммиков nxxx. Нужные равкоды вставлю и впишу в систему самостоятельно.
P. S. Там выше код для Картуса clawbfs.ucoz.ru/forum/3-1827-1 на альфа-тест, он уже изменяется (в частности, крики, если Картусов два, только к одному герою летели, это уже исправлено), но как образцы должны быть понятны. Сможешь так делать?
Нужда в кодере. Самостоятельно уже задолбалось, потому что так никогда много героев не сделать.
0
24
7 лет назад
0
NilasAran_39:

Заказ

Название: Энтропия Смерти
Метод: GUI
MUI: Обязательно
Цель: Область вокруг здания, радиусом в 1000 (пассивка)
Описание: Альтернативное зиккурату средство защиты базы. Созданный кланом Морозного Вихря, излучатель смерти медленно вытягивает жизнь из врагов находящихся поблизости от него, нанося по 2% урона в секунду, до тех пор пока вражеский солдат не падает замертво.

Ранее публиковал, примерно месяц назад. Думаю что скорей всего заказ пропустили ибо, бываю в сети не часто. Думаю спустя месяц, не грех и напомнить, и в любом случае хоть что то узнать.
0
24
7 лет назад
0
ssbbssc, Мои благодарности, всё работает как швейцарские часы. Отлично, просто отлично!)
0
20
7 лет назад
0
NilasAran_39:
ssbbssc, Мои благодарности, всё работает как швейцарские часы. Отлично, просто отлично!)
да было бы за что, склепал за 2 минуты
в теории можно прикрутить фильтры на проверку маг неуяза
0
24
7 лет назад
Отредактирован NilasAran_39
0
ssbbssc, Не, спасибо вот так вот то что надо.

Заказ:

Название: Обитель Мудрости
Метод: GUI
MUI: На усмотрение автора
Цель: Сам кастер
Количество уровней: 1
Описание: Школа магии, производит юнит, то беж мага, при этом восстанавливая 5 ед. собственной маны. Которая у неё в других условиях не восстанавливается. Когда она накапливает к примеру 300 маны, то получает способность пустышку. (в дальнейшем я сам пропишу способность которая нужна)

ssbbssc, К слову говоря, если для тебя предыдущая была легкой мишенью, может и это возьмешь?
0
23
7 лет назад
0
NilasAran_39, Може напишеш это активка или пасивка из первых строк просто не очень понял.
0
24
7 лет назад
0
FrigatPlay, Совсем забыл об этом. Пассивка.

Ну хотя это в принципе можно было понять из описания.

Вообще заклинания для зданий по большей части наверное пассивки. Хотя я помню когда AOW разрабатывал, Нерополю щит поставил. Отличная штука между прочим. Для нежити на ура играет.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.