Добавлен Rockmaf,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Jass
Тип:
Наработка
Версия Warcraft:
1.27 и выше
Способность
Утечки:Нет
Mui:Да
Требования: JNGP
Описание: Герой создает в области пламя, который наносит урон окружающим.
Время действия: 0.50 сек.
Урон: 700 ед. урона.
Перезарядка: 10 сек.
Mui:Да
Требования: JNGP
Описание: Герой создает в области пламя, который наносит урон окружающим.
Время действия: 0.50 сек.
Урон: 700 ед. урона.
Перезарядка: 10 сек.
Скриншоты
Подробности
Код
function Fire_Cond takes nothing returns boolean
return GetSpellAbilityId() == 'A000' // событие триггера
endfunction
function Fire_Act takes nothing returns nothing
local unit a = GetSpellAbilityUnit() // кастер
local real x = GetSpellTargetX() // координаты области каста
local real y = GetSpellTargetY() // координаты области каста
local group g = CreateGroup()
local unit n = null
local real c = 0
call PauseUnit(a,true) // если не хотите чтобы кастер паузился, можете убрать эту функцию
call TriggerSleepAction(0.10)
loop
exitwhen c == 78 // условия заканчивания цикла
call DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl",x+400*Cos(6*c*bj_DEGTORAD),y+400*Sin(6*c*bj_DEGTORAD)))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl",x+150*Cos(6*c*bj_DEGTORAD),y+150*Sin(6*c*bj_DEGTORAD)))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl",x+250*Cos(6*c*bj_DEGTORAD),y+250*Sin(6*c*bj_DEGTORAD)))
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl",x+350*Cos(6*c*bj_DEGTORAD),y+350*Sin(6*c*bj_DEGTORAD)))
set c = c + 6
endloop
call GroupEnumUnitsInRange(g,x,y,530,null) // почему тут 530 стоит? Просто когда проверял юнитам в эффекте не наносился урон
loop
set n = FirstOfGroup(g)
exitwhen n == null
if IsUnitEnemy(n,GetOwningPlayer(a)) == true and IsUnitType(n,UNIT_TYPE_DEAD) == false // условия нанесения урона
call UnitDamageTarget(a,n,700,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_FIRE,null) // наносим урон
endif
call GroupRemoveUnit(g,n)
endloop
call PauseUnit(a,false)
// обнуляем переменные
call DestroyGroup(g)
set x = 0
set y = 0
set c = 0
set n = null
set a = null
set g = null
endfunction
//===========================================================================
function InitTrig_Fire takes nothing returns nothing
local trigger t = CreateTrigger()
local integer index
set index = 0
loop
call TriggerRegisterPlayerUnitEvent(t, Player(index), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
set index = index + 1
exitwhen index == 16
endloop
call TriggerAddCondition(t, Condition( function Fire_Cond ) )
call TriggerAddAction(t, function Fire_Act )
set t = null
endfunction
СКАЧАТЬ ДРУГУЮ ВЕРСИЮ С ДРУГИМ ЭФФЕКТОМ
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован nazarpunk
Если сюда дописать then, то заклинание будет работать на 1.26+
Отредактирован Rockmaf
NazarPunk:
Про x,y,c я думал что если их не обнулять то утечки будут.
Вот, и эту способность сделал на джазз(внизу)
И это, как делать вот эти гифки?