Парюсь с 10 утра, он просто игнорирует часть кода в фигурных скобках.
**{Это игнорирует
function HeroArcheressSkillAFirst_Stun takes nothing returns nothing
call PauseUnitBJ( true, GetEnumUnit() )
endfunction
}**
**{Это игнорирует
function HeroArcheressSkillAFirst_Damage takes nothing returns nothing
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endfunction
}**
**{Это игнорирует
function HeroArcheressSkillAFirst_Quit takes nothing returns nothing
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
RemoveUnit( HeroArcheressSkillADammi )
TriggerSleepAction (1.00)
call UnitRemoveBuffBJ ( 'B006' , GetEnumUnit() )
call PauseUnitBJ( false , GetEnumUnit() )
endfunction
}**
function HeroArcheressSkillAFirst_Actions takes nothing returns nothing
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Второй триггер запущен" )
**{А в общем смысле игнорирует тупо все в этом куске
if ( HeroArcheressSkillACircle == 0 ) then
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Stun )
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Стан запущен" )
else
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Что то пошло не так в стане" )
endif
if ( HeroArcheressSkillACircle < HeroArcheressSkillALevel ) then
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, ( "Триггер на урон первый урон старт. Переменная = " + I2S (HeroArcheressSkillACircle) ) )
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Damage )
set HeroArcheressSkillACircle = HeroArcheressSkillACircle + 1
TriggerSleepAction (1.00)
TriggerExecute ( gg_trg_HeroArcheressSkillAFirst )
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Урон старт" )
else
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Quit )
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Урон стоп " )
endif
endfunction
}**
===========================================================================
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
set gg_trg_HeroArcheressSkillAFirst = CreateTrigger( )
call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
Во всем коде понатыкано проверочных сообщений, однако высвечивается только самое первое и только 1 раз

Принятый ответ

короче, вот рабочий вариант
смотреть сюда
function Trig_HeroArcheressSkillAFirst_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'ASkA'
endfunction

function HeroArcheressSkillAFirst_SelectGroup takes nothing returns nothing
    if GetUnitAbilityLevel(GetEnumUnit(), 'B006') > 0 then
        call PauseUnit(GetEnumUnit(), true)
        call GroupAddUnit(HeroArcheressSkillAGroup, GetEnumUnit())
        call BJDebugMsg("Стан")
    endif
endfunction

function Trig_HeroArcheressSkillAFirst_Actions takes nothing returns nothing
    local group g = CreateGroup()
    
    set HeroArcheressSkillADammi = CreateUnit(GetOwningPlayer(GetTriggerUnit()), 'h003', GetSpellTargetX(), GetSpellTargetY(), bj_UNIT_FACING) //создаем дамми
    call UnitApplyTimedLife(HeroArcheressSkillADammi, 'BTLF', GetUnitAbilityLevel(GetTriggerUnit(), 'ASkA')) //таймер жизни для дамми
    
    call TriggerSleepAction (1.) //из-за ауры увеличил задержку
    //убрал утечки
    call GroupEnumUnitsInRange(g, GetSpellTargetX(), GetSpellTargetY(), 500.00, null)
    call ForGroup(g , function HeroArcheressSkillAFirst_SelectGroup )
    call DestroyGroup(g)
    set g = null
    //
    call TimerStart (HeroArcheressSkillATimer, 1., true, null) //запускаем таймер
endfunction

//===========================================================================
function InitTrig_HeroArcheressSkillABase takes nothing returns nothing
    set gg_trg_HeroArcheressSkillABase = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_HeroArcheressSkillABase, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_HeroArcheressSkillABase, Condition( function Trig_HeroArcheressSkillAFirst_Conditions ) )
    call TriggerAddAction( gg_trg_HeroArcheressSkillABase, function Trig_HeroArcheressSkillAFirst_Actions )
endfunction
globals
    integer HeroArcheressSkillACircle = 0
    timer HeroArcheressSkillATimer = CreateTimer() //таймер
endglobals

function HeroArcheressSkillAFirst_Damage takes nothing returns nothing
    if GetWidgetLife(HeroArcheressSkillADammi) > 0 then //проверяем, жив ли дамми юнит
        call BJDebugMsg("Урон" )
        call UnitDamageTarget(udg_HeroArcheress, GetEnumUnit(), 50, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
    else //иначе удаляем его из группы и снимаем паузу
        call PauseUnit(GetEnumUnit(), false)//PauseUnitBJ( false , GetEnumUnit() )
        call GroupRemoveUnit(HeroArcheressSkillAGroup, GetEnumUnit())
        call BJDebugMsg("Выход")
    endif
endfunction

function HeroArcheressSkillAFirst_Actions takes nothing returns nothing
    call ForGroup(HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Damage)
endfunction

//===========================================================================
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
    set gg_trg_HeroArcheressSkillAFirst = CreateTrigger(  )
    call TriggerRegisterTimerExpireEvent(gg_trg_HeroArcheressSkillAFirst, HeroArcheressSkillATimer) //событие таймер истекает
    call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
8 лет назад
0
не заметил сразу еще одну ошибку
unit HeroArcheressSkillADammi = null
0
9
8 лет назад
0
Поставил. он по прежнему отказывается работать. Во втором триггере исправил переменную юнита, с udg_Archeress на udg_HeroArcheress
0
7
8 лет назад
Отредактирован Ige
0
потерялся в коде) где группа HeroArcheressSkillAGroup создается?
globals
	integer PlayerNumber = 1, HeroArcheressSkillALevel =  -1, HeroArcheressSkillACircle = -1 , HeroDefenderSkllBLevel =-1
	location ArcheressAbilityTargetPoint
	real Bonus = 0
	group HeroArcheressSkillAGroup = CreateGroup()
	unit HeroArcheressSkillADammi = null
endglobals
0
9
8 лет назад
0
На первом скриншоте
Инициализируется
Тут заполняется юнитами
Загруженные файлы
0
7
8 лет назад
0
в общем я вижу как юниты добавляются в группу HeroArcheressSkillAGroup, но не вижу, где эта группа создается
	set HeroArcheressSkillAGroup = CreateGroup()
0
9
8 лет назад
0
Б###ь, точняк
0
7
8 лет назад
0
там юниты добавляются в несуществующую группу
0
9
8 лет назад
0
Мде. По прежнему не хочет юзать нормально третий триггер
Загруженные файлы
0
7
8 лет назад
0
можешь перенести эти 3 триггера на отдельную карту и выложить здесь?
0
9
8 лет назад
0
ок
Для вызова лучницы -a на английской раскладке (Ей присваивается переменная, запоминаются статы и т.д.). У неё единственная абилка, это и есть беда.
Загруженные файлы
0
7
8 лет назад
0
кажется нашел в чем дело
я правда слегка изменил код, заменил bj на native
function HeroArcheressSkillAFirst_SelectGroup takes nothing returns nothing
    if GetUnitAbilityLevel(GetEnumUnit(), 'B006') > 0 then
        call GroupAddUnit(HeroArcheressSkillAGroup, GetEnumUnit())
    endif
endfunction
в общем, ни один юнит не проходит проверку, потому что аура накладывается не сразу
в итоге группа оказывается пустой и следующий триггер не запускается
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.