Прописана в вызывающем триггере. Вообщем точнее:
Есть инициализация глобалок. Это триггер номер 1.
Есть триггер применения способности 2.
И триггер на нанесение периодического урона 3.
Проверял глобалки, они с нормальными значениями, 2 триггер создает дамми, нормально присваивает ему переменную. Третий триггер который я собственно и не могу разобрать, запускается, и все на этом. Как дело долшло до выбора группы целей, он замыкается в себе и вырубается.
===========================================================================
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
set gg_trg_HeroArcheressSkillAFirst = CreateTrigger( )
call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
А с наполнением даже так не пашит.
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, ("Запуск переменная равна: " + I2S (HeroArcheressSkillACircle) ) ) единственная адкватно работающая строка
Хотя если где то ошибка с переменными, он должен был хотя бы сказать:
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Выход" )
Она глобальная, прировнял к -1, оно так же пропускает тот же кусок кода
function HeroArcheressSkillAFirst_Damage takes nothing returns nothing
if ( HeroArcheressSkillACircle < HeroArcheressSkillALevel ) then
if ( HeroArcheressSkillACircle == 0 ) then
call PauseUnitBJ( true, GetEnumUnit() )
endif
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
set HeroArcheressSkillACircle = HeroArcheressSkillACircle + 1
call TriggerSleepAction (1.00)
call TriggerExecute ( gg_trg_HeroArcheressSkillAFirst )
else
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call TriggerSleepAction (1.00)
call UnitRemoveBuffBJ ( 'B006' , GetEnumUnit() )
call PauseUnitBJ( false , GetEnumUnit() )
call RemoveUnit ( HeroArcheressSkillADammi )
endif
endfunction
function HeroArcheressSkillAFirst_Actions takes nothing returns nothing
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Damage )
endfunction
===========================================================================
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
set gg_trg_HeroArcheressSkillAFirst = CreateTrigger( )
call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
Переписал, в итоге триггер так же запускается, но дальше, как дело доходит до групп игнорит написанное.
globals
integer PlayerNumber = 1, HeroArcheressSkillALevel, HeroArcheressSkillACircle , HeroDefenderSkllBLevel
location ArcheressAbilityTargetPoint
real Bonus
group HeroArcheressSkillAGroup
unit HeroArcheressSkillADammi
endglobals
При инициализации
Оно может и поможет, но я не знаю как заставить юнита выполнить нестандартный приказ...
Вообщем это дико странно, каждому игроку пиходится юзать эту абилку по отдельность, тобишь сли абилку юзнул нейтрально пассивный, лагает только нейтрально пассивный.
Вот смотри, у меня есть UnitGroup в ней 6 юнитов, оно не умеет добавлять по одному и не умеет выделять поочередно. Как мне эти 6 юнитов из группы перенести в массив боевых едениц допустим?
Выделять по одному я не могу потому что он добавляет в группу всех юнитов в 300 АОЕ от героя
И они динамические.
А все, с проблемой разобрался, спасибо.
» WarCraft 3 / Не работает кусок кода
Для вызова лучницы -a на английской раскладке (Ей присваивается переменная, запоминаются статы и т.д.). У неё единственная абилка, это и есть беда.
» WarCraft 3 / Не работает кусок кода
» WarCraft 3 / Не работает кусок кода
» WarCraft 3 / Не работает кусок кода
Инициализируется
Тут заполняется юнитами
» WarCraft 3 / Не работает кусок кода
Отредактирован WakVellios
» WarCraft 3 / Не работает кусок кода
Есть инициализация глобалок. Это триггер номер 1.
Есть триггер применения способности 2.
И триггер на нанесение периодического урона 3.
» WarCraft 3 / Не работает кусок кода
integer HeroArcheressSkillACircle = 0
endglobals
if ( HeroArcheressSkillACircle < HeroArcheressSkillALevel ) then
if ( HeroArcheressSkillACircle == 0 ) then
call PauseUnitBJ( true, GetEnumUnit() )
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Стан" )
endif
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
set HeroArcheressSkillACircle = HeroArcheressSkillACircle + 1
call TriggerSleepAction (1.00)
call TriggerExecute ( gg_trg_HeroArcheressSkillAFirst )
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Урон" )
else
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call TriggerSleepAction (1.00)
call UnitRemoveBuffBJ ( 'B006' , GetEnumUnit() )
call PauseUnitBJ( false , GetEnumUnit() )
call RemoveUnit ( HeroArcheressSkillADammi )
set HeroArcheressSkillACircle = 0
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Выход" )
endif
endfunction
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, ("Запуск переменная равна: " + I2S (HeroArcheressSkillACircle) ) )
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Damage )
endfunction
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
set gg_trg_HeroArcheressSkillAFirst = CreateTrigger( )
call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, ("Запуск переменная равна: " + I2S (HeroArcheressSkillACircle) ) ) единственная адкватно работающая строка
Хотя если где то ошибка с переменными, он должен был хотя бы сказать:
call DisplayTimedTextToForce( GetPlayersAll(), 1.00, "Выход" )
» WarCraft 3 / Не работает кусок кода
function HeroArcheressSkillAFirst_Damage takes nothing returns nothing
if ( HeroArcheressSkillACircle < HeroArcheressSkillALevel ) then
if ( HeroArcheressSkillACircle == 0 ) then
call PauseUnitBJ( true, GetEnumUnit() )
endif
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
set HeroArcheressSkillACircle = HeroArcheressSkillACircle + 1
call TriggerSleepAction (1.00)
call TriggerExecute ( gg_trg_HeroArcheressSkillAFirst )
else
call UnitDamageTargetBJ( udg_HeroArcheress, GetEnumUnit(), 500, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call TriggerSleepAction (1.00)
call UnitRemoveBuffBJ ( 'B006' , GetEnumUnit() )
call PauseUnitBJ( false , GetEnumUnit() )
call RemoveUnit ( HeroArcheressSkillADammi )
endif
endfunction
call ForGroupBJ( HeroArcheressSkillAGroup, function HeroArcheressSkillAFirst_Damage )
endfunction
function InitTrig_HeroArcheressSkillAFirst takes nothing returns nothing
set gg_trg_HeroArcheressSkillAFirst = CreateTrigger( )
call TriggerAddAction( gg_trg_HeroArcheressSkillAFirst, function HeroArcheressSkillAFirst_Actions )
endfunction
Переписал, в итоге триггер так же запускается, но дальше, как дело доходит до групп игнорит написанное.
» WarCraft 3 / Не работает кусок кода
integer PlayerNumber = 1, HeroArcheressSkillALevel, HeroArcheressSkillACircle , HeroDefenderSkllBLevel
location ArcheressAbilityTargetPoint
real Bonus
group HeroArcheressSkillAGroup
unit HeroArcheressSkillADammi
endglobals
При инициализации
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
if (PlayerNumber < 7) then
call SetUnitOwner( udg_HeroDefender, ConvertedPlayer(PlayerNumber), true )
call IssueImmediateOrderById( udg_HeroDefender, 852164 )
call TriggerSleepAction( 1.00 )
call UnitResetCooldown( udg_HeroDefender )
set PlayerNumber = ( PlayerNumber + 1 )
call TriggerSleepAction( 1.00 )
call TriggerExecute( gg_trg_DeBugTrigger0 )
else
KillUnit (udg_HeroDefender)
RemoveUnit (udg_HeroDefender)
set udg_HeroDefender = gg_unit_H000_0001
set udg_HeroDefenderStats[0] = GetHeroStatBJ(bj_HEROSTAT_STR, udg_HeroDefender, true)
set udg_HeroDefenderStats[1] = GetHeroStatBJ(bj_HEROSTAT_AGI, udg_HeroDefender, true)
set udg_HeroDefenderStats[2] = GetHeroStatBJ(bj_HEROSTAT_INT, udg_HeroDefender, true)
endif
endfunction
function InitTrig_DeBugTrigger0 takes nothing returns nothing
set gg_trg_DeBugTrigger0 = CreateTrigger( )
call TriggerAddAction( gg_trg_DeBugTrigger0, function Trig_DeBugTrigger0_Actions )
endfunction
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
оно же roar и ему пофиг что в характеристика самой способности написано undestruction
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
Вообщем это дико странно, каждому игроку пиходится юзать эту абилку по отдельность, тобишь сли абилку юзнул нейтрально пассивный, лагает только нейтрально пассивный.
» WarCraft 3 / Способность подвешивает варкрафт при первом применение
А если например я пихну её в дамми юнита ни как не относящегося к игре, и не являющегося тем самым глобальным HeroDefender?
» WarCraft 3 / Как выбрать поочередно каждого юнита в группе юнитов
Выделять по одному я не могу потому что он добавляет в группу всех юнитов в 300 АОЕ от героя
И они динамические.
А все, с проблемой разобрался, спасибо.
» WarCraft 3 / Как выбрать поочередно каждого юнита в группе юнитов
» WarCraft 3 / Как триггерно сделать бонус защиты