Добавлен Reform
Отхил совершеноо не прокает, при этом волна уходит в центр. Но не могу понять что с выбором юнита не так. Подскажите, почему не выбирает юнита из группы, в чём ошибка ?
function Trig_heal_heal_wave_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A00F' ) ) then
return false
endif
return true
endfunction
if ( not ( GetSpellAbilityId() == 'A00F' ) ) then
return false
endif
return true
endfunction
function Trig_heal_heal_wave_Actions takes nothing returns nothing
local unit target_unit = GetSpellTargetUnit()
local integer intleave = 0
local integer target_integer = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 ))
local integer next_wave = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 - ( intleave ) ))
local integer wave = 1
local integer iloop = 0
local group Group = GetUnitsInRangeOfLocAll(2000.00, GetUnitLoc(udg_test_unit))
local integer level_spell = GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit())
local unit array randomunit
local lightning array ltef
local unit nextunit
call GroupRemoveGroup( udg_Player_Group[8], Group )
call GroupRemoveGroup( udg_Player_Group[9], Group )
call SetUnitLifeBJ( target_unit, ( GetUnitStateSwap(UNIT_STATE_LIFE, target_unit) + ( GetUnitStateSwap(UNIT_STATE_MAX_MANA, GetTriggerUnit()) * ( ( I2R(next_wave) + 5.00 ) / 100.00 ) ) ) )
call GroupRemoveUnitSimple( target_unit, Group )
set randomunit [0] = target_unit
loop
exitwhen level_spell == iloop
if ( not ( CountUnitsInGroup(Group) == 0 ) ) then
else
set iloop = iloop + 1
set next_wave = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 ) - ( intleave ) )
set randomunit [wave] = GroupPickRandomUnit(Group)
call SetUnitLifeBJ( randomunit[wave] , ( GetUnitStateSwap(UNIT_STATE_LIFE, randomunit[wave]) + ( GetUnitStateSwap(UNIT_STATE_MAX_MANA, GetTriggerUnit()) * ( I2R(next_wave) / 100.00 ) ) ) )
call AddLightningLoc( "HWPB", GetUnitLoc(randomunit [wave - 1]), GetUnitLoc(randomunit [wave]) )
set ltef [wave] = GetLastCreatedLightningBJ()
set wave = ( wave + 1 )
set intleave = ( intleave + 5 )
call GroupRemoveUnitSimple( randomunit[wave - 1], Group )
endif
endloop
local unit target_unit = GetSpellTargetUnit()
local integer intleave = 0
local integer target_integer = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 ))
local integer next_wave = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 - ( intleave ) ))
local integer wave = 1
local integer iloop = 0
local group Group = GetUnitsInRangeOfLocAll(2000.00, GetUnitLoc(udg_test_unit))
local integer level_spell = GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit())
local unit array randomunit
local lightning array ltef
local unit nextunit
call GroupRemoveGroup( udg_Player_Group[8], Group )
call GroupRemoveGroup( udg_Player_Group[9], Group )
call SetUnitLifeBJ( target_unit, ( GetUnitStateSwap(UNIT_STATE_LIFE, target_unit) + ( GetUnitStateSwap(UNIT_STATE_MAX_MANA, GetTriggerUnit()) * ( ( I2R(next_wave) + 5.00 ) / 100.00 ) ) ) )
call GroupRemoveUnitSimple( target_unit, Group )
set randomunit [0] = target_unit
loop
exitwhen level_spell == iloop
if ( not ( CountUnitsInGroup(Group) == 0 ) ) then
else
set iloop = iloop + 1
set next_wave = ( ( GetUnitAbilityLevelSwapped('A00F', GetTriggerUnit()) * 5 ) - ( intleave ) )
set randomunit [wave] = GroupPickRandomUnit(Group)
call SetUnitLifeBJ( randomunit[wave] , ( GetUnitStateSwap(UNIT_STATE_LIFE, randomunit[wave]) + ( GetUnitStateSwap(UNIT_STATE_MAX_MANA, GetTriggerUnit()) * ( I2R(next_wave) / 100.00 ) ) ) )
call AddLightningLoc( "HWPB", GetUnitLoc(randomunit [wave - 1]), GetUnitLoc(randomunit [wave]) )
set ltef [wave] = GetLastCreatedLightningBJ()
set wave = ( wave + 1 )
set intleave = ( intleave + 5 )
call GroupRemoveUnitSimple( randomunit[wave - 1], Group )
endif
endloop
set wave = 1
call TriggerSleepAction( 10.00 )
set intleave = 0
set iloop = 0
loop
exitwhen iloop == level_spell
call DestroyLightningBJ( ltef[wave] )
set wave = ( wave + 1 )
endloop
endfunction
call TriggerSleepAction( 10.00 )
set intleave = 0
set iloop = 0
loop
exitwhen iloop == level_spell
call DestroyLightningBJ( ltef[wave] )
set wave = ( wave + 1 )
endloop
endfunction
===========================================================================
function InitTrig_heal_heal_wave takes nothing returns nothing
set gg_trg_heal_heal_wave = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_heal_heal_wave, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_heal_heal_wave, Condition( function Trig_heal_heal_wave_Conditions ) )
call TriggerAddAction( gg_trg_heal_heal_wave, function Trig_heal_heal_wave_Actions )
endfunction
function InitTrig_heal_heal_wave takes nothing returns nothing
set gg_trg_heal_heal_wave = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_heal_heal_wave, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_heal_heal_wave, Condition( function Trig_heal_heal_wave_Conditions ) )
call TriggerAddAction( gg_trg_heal_heal_wave, function Trig_heal_heal_wave_Actions )
endfunction
Принятый ответ
Проблема в том что это конверт из ГУИ со всякими ненужными бжфункциями типа GetLastCreatedLightningBJ() и CountUnitsInGroup(Group) == 0 вместо FirstOfGroup(Group)==null, без форматирования под код, в котором черт ногу сломит.
target_integer - переменная объявлена, нигде не используется, и т.д.
target_integer - переменная объявлена, нигде не используется, и т.д.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован biridius
target_integer - переменная объявлена, нигде не используется, и т.д.