Добавлен , не публикуется
Алгоритмы, Наработки и Способности
Способ реализации:
GUI
Тип:
Способность
Версия Warcraft:
1.27 и выше

Способность

Утечки: (Да )
Mui:Нет.
Требования: JNGP
Описание: После использования способности, вокруг героя начинают биться молний, которые наносят 100/200/300 ед. урона противнику.

Скришоты

Подробности

P.S Герой может двигаться во время способности.
Установка
Скопировать саму способность и скопировать триггер.
Триггер

Новая Версия На Jass

Код
function LightJass_Cond takes nothing returns boolean
    return GetSpellAbilityId() == 'A000' 
endfunction

function LightJass_Act takes nothing returns nothing
    local unit a = GetSpellAbilityUnit()
    local real c = 0
    local group g = CreateGroup()
    local unit n = null
    loop
    exitwhen c == 72
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(a)+56*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+56*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",GetUnitX(a)+56*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+56*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(a)+112*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+112*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",GetUnitX(a)+112*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+112*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(a)+168*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+168*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",GetUnitX(a)+168*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+168*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(a)+224*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+224*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",GetUnitX(a)+224*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+224*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(a)+280*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+280*Sin(5*c*bj_DEGTORAD)))
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl",GetUnitX(a)+280*Cos(5*c*bj_DEGTORAD),GetUnitY(a)+280*Sin(5*c*bj_DEGTORAD)))
    set c = c + 6
    endloop
    call GroupEnumUnitsInRange(g,GetUnitX(a),GetUnitY(a),290,null)
    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,100*GetUnitAbilityLevel(a,'A000'),false,false,null,null,null)
    endif
    call GroupRemoveUnit(g,n)
    set n = FirstOfGroup(g)
    endloop
    call DestroyGroup(g)
    set a = null
    set n = null
endfunction

//===========================================================================
function InitTrig_LightJass 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 == 15
    endloop
    call TriggerAddCondition(t, Condition( function LightJass_Cond ) )
    call TriggerAddAction(t, function LightJass_Act)
    set t = null
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
29
5 лет назад
Отредактирован nazarpunk
3
Утечки: (Вроде убрал)
Использовать Handle Counter для проверки не судьба?
Mui: Да.
Вы используете вэйт и глобальные переменные, какое MUI?
Если у игрока будут два героя с такой способностью, то заблокируется у обоих, какое MUI?
Где настройки заклинания? Как мне сменить спецэффект?

Сконвертировал спэлл в jass, 100500 утечек просто на глаз видно:
function Trig_Light_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A000' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Light_Func004002003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_Light_Func004002003002001 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_Light_Func004002003002002 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Caster)) == true )
endfunction

function Trig_Light_Func004002003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func004002003002001(), Trig_Light_Func004002003002002() )
endfunction

function Trig_Light_Func004002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func004002003001(), Trig_Light_Func004002003002() )
endfunction

function Trig_Light_Func005A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_Caster, GetEnumUnit(), ( 100.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Caster)) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
endfunction

function Trig_Light_Func043002003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_Light_Func043002003002001 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_Light_Func043002003002002 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Caster)) == true )
endfunction

function Trig_Light_Func043002003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func043002003002001(), Trig_Light_Func043002003002002() )
endfunction

function Trig_Light_Func043002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func043002003001(), Trig_Light_Func043002003002() )
endfunction

function Trig_Light_Func044A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_Caster, GetEnumUnit(), ( 100.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Caster)) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
endfunction

function Trig_Light_Func080002003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_Light_Func080002003002001 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_Light_Func080002003002002 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Caster)) == true )
endfunction

function Trig_Light_Func080002003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func080002003002001(), Trig_Light_Func080002003002002() )
endfunction

function Trig_Light_Func080002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func080002003001(), Trig_Light_Func080002003002() )
endfunction

function Trig_Light_Func081A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_Caster, GetEnumUnit(), ( 100.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Caster)) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
endfunction

function Trig_Light_Func117002003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_Light_Func117002003002001 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_Light_Func117002003002002 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Caster)) == true )
endfunction

function Trig_Light_Func117002003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func117002003002001(), Trig_Light_Func117002003002002() )
endfunction

function Trig_Light_Func117002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func117002003001(), Trig_Light_Func117002003002() )
endfunction

function Trig_Light_Func118A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_Caster, GetEnumUnit(), ( 100.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Caster)) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
endfunction

function Trig_Light_Func154002003001 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

function Trig_Light_Func154002003002001 takes nothing returns boolean
    return ( IsUnitDeadBJ(GetFilterUnit()) == false )
endfunction

function Trig_Light_Func154002003002002 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_Caster)) == true )
endfunction

function Trig_Light_Func154002003002 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func154002003002001(), Trig_Light_Func154002003002002() )
endfunction

function Trig_Light_Func154002003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Light_Func154002003001(), Trig_Light_Func154002003002() )
endfunction

function Trig_Light_Func155A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_Caster, GetEnumUnit(), ( 100.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Caster)) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING )
endfunction

function Trig_Light_Actions takes nothing returns nothing
    set udg_Caster = GetSpellAbilityUnit()
    set udg_CasterPoint = GetUnitLoc(udg_Caster)
    call SetUnitAnimation( udg_Caster, "spell" )
    set udg_Group[0] = GetUnitsInRangeOfLocMatching(112.00, udg_CasterPoint, Condition(function Trig_Light_Func004002003))
    call ForGroupBJ( udg_Group[0], function Trig_Light_Func005A )
    // 1
    call SetPlayerAbilityAvailableBJ( false, 'A000', GetOwningPlayer(udg_Caster) )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 0), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 45.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 90.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 135.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 180.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 225.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 270.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 315.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // Другой СпецЭффект
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 0), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 45.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 90.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 135.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 180.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 225.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 270.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 56.00, 315.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call TriggerSleepAction( 1.00 )
    // 2
    set udg_Group[1] = GetUnitsInRangeOfLocMatching(168.00, udg_CasterPoint, Condition(function Trig_Light_Func043002003))
    call ForGroupBJ( udg_Group[1], function Trig_Light_Func044A )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 0), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 45.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 90.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 135.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 180.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 225.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 270.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 315.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // Другой СпецЭффект
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 0), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 45.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 90.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 135.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 180.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 225.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 270.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 112.00, 315.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call TriggerSleepAction( 1.00 )
    // 3
    set udg_Group[2] = GetUnitsInRangeOfLocMatching(224.00, udg_CasterPoint, Condition(function Trig_Light_Func080002003))
    call ForGroupBJ( udg_Group[2], function Trig_Light_Func081A )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 0), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 45.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 90.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 135.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 180.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 225.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 270.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 315.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // Другой СпецЭффект
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 0), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 45.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 90.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 135.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 180.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 225.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 270.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 168.00, 315.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call TriggerSleepAction( 1.00 )
    // 4
    set udg_Group[3] = GetUnitsInRangeOfLocMatching(280.00, udg_CasterPoint, Condition(function Trig_Light_Func117002003))
    call ForGroupBJ( udg_Group[3], function Trig_Light_Func118A )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 0), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 45.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 90.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 135.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 180.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 225.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 270.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 315.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // Другой СпецЭффект
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 0), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 45.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 90.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 135.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 180.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 225.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 270.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 224.00, 315.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // 5
    call TriggerSleepAction( 1.00 )
    set udg_Group[4] = GetUnitsInRangeOfLocMatching(336.00, udg_CasterPoint, Condition(function Trig_Light_Func154002003))
    call ForGroupBJ( udg_Group[4], function Trig_Light_Func155A )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 0), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 45.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 90.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 135.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 180.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 225.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 270.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 315.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    // Другой СпецЭффект
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 0), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 45.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 90.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 135.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 180.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 225.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 270.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( PolarProjectionBJ(GetUnitLoc(udg_Caster), 280.00, 315.00), "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call SetPlayerAbilityAvailableBJ( true, 'A000', GetOwningPlayer(udg_Caster) )
    set udg_Caster = null
    call RemoveLocation(udg_CasterPoint)
    call DestroyGroup(udg_Group[0])
    call DestroyGroup(udg_Group[1])
    call DestroyGroup(udg_Group[2])
    call DestroyGroup(udg_Group[3])
    call DestroyGroup(udg_Group[4])
endfunction

//===========================================================================
function InitTrig_Light takes nothing returns nothing
    set gg_trg_Light = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Light, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Light, Condition( function Trig_Light_Conditions ) )
    call TriggerAddAction( gg_trg_Light, function Trig_Light_Actions )
endfunction
Загруженные файлы
2
28
5 лет назад
Отредактирован PT153
2
100500 утечек просто на глаз видно
Утечки если и есть, то только в GetUnitLoc(udg_Caster) и PolarProjectionBJ(...), больше не нашёл.
3
29
5 лет назад
3
Утечки если и есть, то только в GetUnitLoc(udg_Caster) и PolarProjectionBJ(...). больше не нашёл.
Да всего-то
Загруженные файлы
2
16
5 лет назад
Отредактирован Naadir
2
PT153,
Сорян, тыкал в плюс, попал в минус. Хотя кто вообще запаривается нарисованным рейтингом...
0
32
5 лет назад
0
Надо написать Утечки: (есть), и всё, никто бы не придрался XD
А мне описание не нравится, могу предложить так:
Активируйте способность, чтобы призвать молнии:
Время действия: 10
Урон: 100/200/300 (нужно подставить)
Перезарядка: х
Интервал урона: 0.х
Во время действия способности можно двигаться
0
29
5 лет назад
0
Надо написать Утечки: (есть), и всё, никто бы не придрался XD
Ещё нужно не забыть MUI: (нет)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.