30

» WarCraft 3 / Как дать каменному великану дерево?

Стандартными средствами никак, только отлавливать появление, создавать рядом дамми-дерево и кастовать спэлл.
30

» WarCraft 3 / Квесты

Мне наработка нужна
Опять вопрос из серии: мне лень открывать карты, сделайте за меня рабы.
30

» WarCraft 3 / Способность: Круговая Молния

Надо написать Утечки: (есть), и всё, никто бы не придрался XD
Ещё нужно не забыть MUI: (нет)
30

» WarCraft 3 / Применение способности триггером

Поиском пользовался, гайды читал - ничего по теме не нашел.
Плохо пользовались, строка приказа кислотной бомбы "acidbomb", id=852662.
30

» WarCraft 3 / Условие при котором герой имеет определённую способность

БезликийСектант, Неужели так сложно головой подумать?
0 - нет способности
1- уровень способности 1
2- уровень способности 2
...
30

» WarCraft 3 / Очередной вопрос про утечки на гуи "Тип юнита"

Вопрос в том, что мне делать с ней при каждом новом присвоении.
Ничего
я не могу понять, глобальная она или локальная
Почитайте про локальные переменные. Статьи тоже будут полезны.
Не знаю, не понимаю, что лучше, или оба, но в какой последовательности?
Я тоже ничего не понимаю, когда не вижу кода.
30

» WarCraft 3 / Продажа юнитов

Я тоже сперва так сделал, но завернул в xpcall и он рассказал мне где я не прав)
А я просто обратил внимание на принимаемый integer))
С варнингами - имена параметров не совпадают в доках и в коде.
Заметил, будет время поправлю.
30

» WarCraft 3 / Продажа юнитов

prog, это я рахло передал юнита вместо равкода((
print(GetUnitGoldCost(FourCC('hfoo')))
Всё работает без костылей.
Стучу через _ENV потому как лень распарсить ai нативки.
Я уже ai распарсил.
30

» WarCraft 3 / Продажа юнитов

всетаки работка аи нативок является не задокументированной возможностью
GetUnit*Cost не работают, благо близы догадались очень нужную UnitAlive добавить.
30

» WarCraft 3 / Продажа юнитов

какой смысл?
Потещу новые нативки, да и зачем хорошей наработке пропадать?
30

» WarCraft 3 / Продажа юнитов

У меня патч 1.30 и не открывается карта.
Почему не последний?
Эти скрипты с карты не загубит мою карту если я поставлю JNGP ?
Там используется добавленая в JNGP опция GUI поэтому карта не открывается.
И нативки из common.ai
Могу переписать на последний патч vjass|lua если сильно нужно.
30

» WarCraft 3 / Способность: Круговая Молния

Утечки если и есть, то только в GetUnitLoc(udg_Caster) и PolarProjectionBJ(...). больше не нашёл.
Да всего-то
Загруженные файлы
30

» WarCraft 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
Загруженные файлы
30

» WarCraft 3 / Воскрешение героя

Воскрешение героя через "Камень воскрешения"
Это по принципу: когда герой умирает, находим ближайший камень воскрешения, тикаем таймер и воскрешаем?
30

» WarCraft 3 / [lua] Дамми каст

планируется ли в будущем статья про фреймы?
Планируется, но ещё думаю, каким образом на подстатьи разбить ибо много разной информации.
30

» WarCraft 3 / Как правильно спавнить мобом, чтобы они не застревали?

либо делать адекватно и не ставить такие усложняющие вещи в местах, где что-то должно спавниться
Там наверно рект на полкарты и просто в рандомных координатах всё спавнится.
30

» WarCraft 3 / Как правильно спавнить мобом, чтобы они не застревали?

Обозначте точки спавна и создавайте юнитов вокруг них со случайным углом и радиусом, потом делайте SetUnitPosition чтоб юнита выбросило из декорации.
30

» WarCraft 3 / Возможно ли в ИГРЕ изменить параметры способности?

Описание менять или новыми нативками BlzSetAbilityTooltip, BlzSetAbilityExtendedTooltip или мемхаком. Дополнительные эффекты можно даммиком накладывать.
30

» WarCraft 3 / Смена модели

Наштампуйте кучу одинаковых юнитов с разными моделями или используйте мемхак.
30

» WarCraft 3 / Вес карт

Это размер файлов в карте? Я просто не умею сохранять карту как папку(
Это я менеджер импорта по F12 открыл. Притом меньше 100кб даже скринить не стал.
30

» WarCraft 3 / Смена модели

на 126 модель менялась мемхаком... и щас меняется.. но его все бояться
На ваши мемхаки кукисов не напасёшся.
мне нужно тупо сменить модель без потери характеристик прежнего юнита!
Это юнит или герой? На последнем патче поля юнита можно менять, правда теряются кд и бафы. Вам с какой целью модель то менять и на каком патче?
30

» WarCraft 3 / Вес карт

БезликийСектант, незачем карты в личку кидать, нужно было к вопросу прикрепить.
И вы считать умеете?
Загруженные файлы
30

» WarCraft 3 / Вес карт

Надо скинуть карту?
Это нужно было изначально делать, чтоб не гадать на кофейной гуще.
30

» WarCraft 3 / Способности и алгоритмы на заказ

Если с отбрасыванием такие проблемы можно просто чтоб доп урон шол всадникам, тоже норм будет
Всадник определяется по этому полю?
Какой патч?
Загруженные файлы