Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание или наработку, но у вас не хватает знаний для реализации, то эта тема специально для вас. В данной теме вы можете, в определённом правилами формате, оставить заявку на создание необходимого вам заклинания или системы.
Если вы считаете, что у вас есть возможность выполнить какую-либо из имеющихся заявок, то вы можете оставить сообщение в определённом правилами формате, в котором указать какую из заявок собираетесь исполнить.
Правила темы
- Запрещается дублирование заявок.
- Любая заявка, написанная непонятным языком (обилие орфографических ошибок, орфоарт, отсутствие знаков препинания, использование рядов восклицательных и вопросительных знаков) будет удалена.
- Обсуждение технических нюансов исполнения спелла или багов просьба вести через систему личных сообщений.
- Для составления заявок используйте формы.
Заявки, не удовлетворяющие правилам, будут удалены !
Как составить заявку
Необходимо, используя форму составить сообщение в данной теме, где указать:
- Желаемое название заказа
- Желаемый метод исполнения (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. Если поиски не помогли, попробуй сделать его сам:
A. Для начала загляните в Архив готовых спеллов. Возможно, спелл, аналогичный вашему, уже был сделан.
B. Проверьте, нет-ли нужного спелла в Библиотеке заклинаний. Проверенные спелл-мейкеры изготавливали заклинания специально для общественного использования.
C. Поищите общедоступные для открытия карты - там тоже бывают полезные вещи.
D. Если ничего не помогает, пройдитесь поиском по Академии - вероятно, что такие спеллы уже пытались делать и спрашивали как.
E. Если поиски не помогли, попробуй сделать его сам:
- Осваиваем триггеры в Базе статей, F.A.Q., если не имеем понятия о них.
- Существуют специальные статьи по созданию спеллов и баффов: 1, 2, 3, 4, 5
- Поскольку ваши спеллы будут неоптимизированы, и более того, с кучей утечек - настоятельно рекомендуется читать статьи\темы про JASS. Тяжело читать? Легко делать!
- Если ну никак не выходит сделать то что требуется, заходим в Академию и используем ее по основному назначению - задаем вопросы.
Разумные поиски и тщательное изучение помогут вам добиться результата.
Отредактирован Roy Mustang
datar1231:
Вот я сделал по быстрому пример
(иногда может глючить - если рядом с целью - находится еще один такой же тип юнита который вызывается )
Отредактирован Araders
Заказ
Метод: GUI/ если Jass то с коментариями.
MUI: Не обязательно
Цель: Нет цели
Количество уровней: Не требуетса
Описание: Настроить камеру так, чтобы она была встроена ровно в голову какого юнита (на ваше усмотрение) и чтобы в системе была настройка высоты камеры в случае использования модели большей высоты; я прикреплю карту там есть похожая система можете использовать.
Вот карта xgm.guru/files/100/123666/comments/351627/nano_tc_sc_sc_destruct...
Отредактирован ClotPh
Сможет ли кто-либо выполнить заклинания отсюда?
Равкоды абил, даммиков, пути моделей ставьте любые!!! Я это все потом поправлю.
МНЕ СДАТЬ ТОЛЬКО КОД, ВСЕ СПЕЛЛЫ РАЗОМ!!! Карту качать не буду. Куда какие куски вставить, чтобы все действовало, поверьте, разберусь :D Мне все равно это под свою систему еще менять. Вам надо просто сделать эти 4 MUI способности, дальше моя забота.
Короче я, наверное, тогда прямо тут буду выкладывать себе же куски кода и инфу. Почему-то именно так хочется. Другие варианты сильно бесят. Создаю себе фабрику самостоятельно.
function Trig_SingerOfDeathAll_Func002Func001C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A296' ) ) then
return false
endif
if ( not ( GetUnitAbilityLevelSwapped('A296', GetTriggerUnit()) == 1 ) ) then
return false
endif
return true
endfunction
ПЕРВАЯ ГЕРОЙСКАЯ СПОСОБНОСТЬ - РАВКОД ДОЛЖЕН ВЕЗДЕ СОВПАДАТЬ - ЗАКРЫТО
function Trig_SingerOfDeathAll_Func002Func002C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A297' ) ) then
return false
endif
if ( not ( GetUnitAbilityLevelSwapped('A297', GetTriggerUnit()) == 1 ) ) then
return false
endif
return true
endfunction
ВТОРАЯ ГЕРОЙСКАЯ СПОСОБНОСТЬ - РАВКОД ДОЛЖЕН ВЕЗДЕ СОВПАДАТЬ - ЗАКРЫТО
function Trig_SingerOfDeathAll_Func002Func003C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A298' ) ) then
return false
endif
if ( not ( GetUnitAbilityLevelSwapped('A298', GetTriggerUnit()) == 1 ) ) then
return false
endif
return true
endfunction
ТРЕТЬЯ ГЕРОЙСКАЯ СПОСОБНОСТЬ - РАВКОД ДОЛЖЕН ВЕЗДЕ СОВПАДАТЬ - ЗАКРЫТО
function Trig_SingerOfDeathAll_Func002Func004C takes nothing returns boolean
if ( not ( GetLearnedSkillBJ() == 'A299' ) ) then
return false
endif
if ( not ( GetUnitAbilityLevelSwapped('A299', GetTriggerUnit()) == 1 ) ) then
return false
endif
return true
endfunction
ЧЕТВЁРТАЯ ГЕРОЙСКАЯ СПОСОБНОСТЬ - РАВКОД ДОЛЖЕН ВЕЗДЕ СОВПАДАТЬ - ЗАКРЫТО
return true
endif
if ( Trig_SingerOfDeathAll_Func002Func002C() ) then
return true
endif
if ( Trig_SingerOfDeathAll_Func002Func003C() ) then
return true
endif
if ( Trig_SingerOfDeathAll_Func002Func004C() ) then
return true
endif
local timer t18 = CreateTimer()
ДВА РАЗА СВЕРХУ И СНИЗУ, ПРОВЕРИТЬ:
t18,
set t18 = null
if ( GetLearnedSkillBJ() == 'A296' ) then
call TriggerRegisterUnitEvent(hero,GetTriggerUnit(), EVENT_UNIT_SPELL_EFFECT)
call TriggerAddAction(hero,function DevastatingMagic)
else
endif
if ( GetLearnedSkillBJ() == 'A297' ) then
if (IsUnitInGroup(u5, udg_AnimusCopies) == false) then
call TriggerRegisterAnyUnitEventBJ(hero, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction(hero, function DeathScreams)
endif
endif
if ( GetLearnedSkillBJ() == 'A298' ) then
call DestroyTrigger(hero)
call SaveUnitHandle(udg_Hash,GetHandleId(t18),2,u5)
call TimerStart(t,1,true,function DeadMana)
else
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
endif
if ( GetLearnedSkillBJ() == 'A299' ) then
call TriggerRegisterUnitEvent(hero,GetTriggerUnit(), EVENT_UNIT_SPELL_EFFECT)
call TriggerAddAction(hero,function Requiem)
else
endif
Ну вот, уже не редактируется, безобразие, ладно, фиг с ним, уже просто коды готовятся...
Отредактирован ledoed
вот тебе сразу 4 скила без хэш таблицы, а на массивах
все настройки для всех спелов находятся в триггере SpellClotch
все 4 спела и системы для них используют 1 поток(1 таймер периуд 0.025) если хочешь подключить к своему потоку то посмотри в тригере Global
Скилы МУИ
могу дать модельку полностью анимированную она немного похожа только подкрасить
Мне так и с таким оформлением надо
Буду или самостоятельно постепенно втч тут, или как получится
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
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 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
УРОН - ЗАКРЫТО.
else
endif
set p = null
set u5 = null
set u6 = null
set enemies = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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)
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
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
ПРОЛЁТ КРИКОВ ОТ ПОГИБШЕГО К ПЕВЦУ - ЗАКРЫТО.
call SaveInteger (udg_Hash, GetHandleId(t),3,i)
call RemoveUnit(u6)
call PauseTimer(t)
call DestroyTimer(t)
call FlushChildHashtable(udg_Hash,GetHandleId(t))
else
endif
call AddSpecialEffectTargetUnitBJ( "chest", u5, "SingerOfDeath2.mdl" )
call ConditionalTriggerExecute( gg_trg_destroyspeceffect )
endif
УРОН
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
УРОН - ЗАКРЫТО.
ЭФФЕКТЫ НА ПЕВЦЕ И УРОН ВРАГАМ - ЗАКРЫТО.
endif
call DestroyGroup(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
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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 CreateNUnitsAtLocFacingLocBJ( 1, 'n393', GetOwningPlayer(u5), p, p)
set u6 = GetLastCreatedUnit()
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)
set t = null
set u5 = null
set u6 = null
set u7 = null
set p = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: u5, u6, heroes, heroadded, heroaction
local unit u5 = GetTriggerUnit()
local unit u6
local group heroes = GetUnitsInRectAll(GetPlayableMapRect())
local trigger heroadded
local triggeraction heroaction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
set heroaction=TriggerAddAction(heroadded,function DeathScreamsDamage)
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
endif
call TriggerRemoveAction (heroadded, heroaction)
call DestroyTrigger (heroadded)
set u5 = null
set u6 = null
set heroes = null
set heroadded = null
set heroaction = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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))
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 )
ДОБАВЛЯЕМ МАНУ + ЗА МЁРТВЫХ - ЗАКРЫТО
set t=null
set u5=null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ: 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
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
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
ТЕПЕРЬ ВСЁ С ВРАГАМИ - ЗАКРЫТО.
endif
call DestroyGroup (alliedheroes)
set u5 = null
set u6 = null
set enemyheroes = null
set alliedheroes = null
ВНИМАНИЕ!!! ОБНУЛЯЕМЫЕ ПЕРЕМЕННЫЕ ЗДЕСЬ СПИСКОМ - НОВЫЙ ШАБЛОН СОВЕРШЕНСТВА, ВСЕ ТЕСТКАРТЫ БЕЗ ОНОГО БУДУТ УДАЛЕНЫ - ЗАКРЫТО
endfunction
Заказ
Метод: Всё равно
MUI: Не обязательно
Цель: Нету цели
Количество уровней: 3
Описание: Подчинение крипа(монстра) на определённое время который убил вашего героя.
Технические характеристики: 1 уровень:10 секунд
2 уровень:15 секунд
3 уровень:20 секунд
Отредактирован Волчачка
Вместо YourTrigger код вашего триггера
Вместо yourhash - ваша хеш-таблица, хоть udg_;
Героя сами добавите в триггер //call TriggerRegisterDeathEvent( YourTrigger, YourUnit ) или своим методом, где YourTrigger - ваш триггер, YourUnit - ваш герой...