Hi, so this is the code:
For some reason instead of going into the Enum function nothing happens and at the end I am even being dealt damage (but only the first time this ability is use on me or friendly unit). I have no idea why this is happening...
To add more information, I get text:
Please help
JASS:scope DivineRally initializer InitTrig_Divine_Rally globals private constant integer ID = 'A04O' private real array spellHealingArmorPercentIncrease private real array spellDamageDamagePercentIncrease private real array intAttackSpeedPercentIncrease private integer Buff endglobals private function GroupFilter takes nothing returns boolean call DisplayTimedTextToForce(Players, 5., "group filter") return GetWidgetLife(GetFilterUnit()) > .405 and not IsUnitDummy(GetFilterUnit()) and not IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(SpellEvent.CastingUnit)) endfunction private function BuffonAdd takes nothing returns nothing local dbuff db = GetEventBuff() local integer ablev = GetUnitAbilityLevel(db.source, ID) local integer armorChange = R2I(spellHealingArmorPercentIncrease[ablev] * GetSpellBonus(db.source, 2)) local integer damageChange = R2I(spellDamageDamagePercentIncrease[ablev] * GetSpellBonus(db.source, 1)) local integer attackSpeedChange = R2I(intAttackSpeedPercentIncrease[ablev] * GetHeroInt(db.source, true)) call AddUnitBonus(db.target, BONUS_ARMOR, armorChange) call AddUnitBonus(db.target, BONUS_DAMAGE, damageChange) call AddUnitBonus(db.target, BONUS_ATTACK_SPEED, damageChange) endfunction private function BuffonEnd takes nothing returns nothing local dbuff db = GetEventBuff() local integer ablev = GetUnitAbilityLevel(db.source, ID) local integer armorChange = -R2I(spellHealingArmorPercentIncrease[ablev] * GetSpellBonus(db.source, 2)) local integer damageChange = -R2I(spellDamageDamagePercentIncrease[ablev] * GetSpellBonus(db.source, 1)) local integer attackSpeedChange = -R2I(intAttackSpeedPercentIncrease[ablev] * GetHeroInt(db.source, true)) call AddUnitBonus(db.target, BONUS_ARMOR, armorChange) call AddUnitBonus(db.target, BONUS_DAMAGE, damageChange) call AddUnitBonus(db.target, BONUS_ATTACK_SPEED, damageChange) endfunction private function Enum takes nothing returns nothing local unit caster = SpellEvent.CastingUnit local unit target = GetEnumUnit() call DisplayTimedTextToForce(Players, 5., "enum") call UnitAddBuff(caster, target, Buff, 4., GetUnitAbilityLevel(caster, ID)) set caster = null set target = null endfunction private function act takes nothing returns nothing local unit caster = GetTriggerUnit() local integer pid = GetPlayerId(GetOwningPlayer(caster)) local group g = NewGroup() call DisplayTimedTextToForce(Players, 5., "000000000000001") call GroupEnumUnitsInArea(g, GetSpellTargetX(), GetSpellTargetY(), 400.*abb2[pid], Condition(function GroupFilter)) call DisplayTimedTextToForce(Players, 5., "000000000000002") call ForGroup(g, function Enum) call ReleaseGroup(g) call DisplayTimedTextToForce(Players, 5., "000000000000003") set caster = null set g = null endfunction private function Conditions takes nothing returns boolean return GetSpellAbilityId() == ID endfunction //=========================================================================== private function InitTrig_Divine_Rally takes nothing returns nothing //call RegisterSpellEffectResponse(ID,act) set gg_trg_Divine_Rally = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Divine_Rally, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Divine_Rally, Condition( function Conditions ) ) call TriggerAddAction( gg_trg_Divine_Rally, function act ) set spellHealingArmorPercentIncrease[1] = 0.09 set spellHealingArmorPercentIncrease[2] = 0.10 set spellHealingArmorPercentIncrease[3] = 0.12 set spellHealingArmorPercentIncrease[4] = 0.14 set spellHealingArmorPercentIncrease[5] = 0.16 set spellHealingArmorPercentIncrease[6] = 0.19 set spellDamageDamagePercentIncrease[1] = 0.3 set spellDamageDamagePercentIncrease[2] = 0.31 set spellDamageDamagePercentIncrease[3] = 0.32 set spellDamageDamagePercentIncrease[4] = 0.33 set spellDamageDamagePercentIncrease[5] = 0.34 set spellDamageDamagePercentIncrease[6] = 0.35 set intAttackSpeedPercentIncrease[1] = 0.71 set intAttackSpeedPercentIncrease[2] = 0.82 set intAttackSpeedPercentIncrease[3] = 0.93 set intAttackSpeedPercentIncrease[4] = 1.04 set intAttackSpeedPercentIncrease[5] = 1.15 set intAttackSpeedPercentIncrease[6] = 1.26 set Buff = DefineBuffType('A0AC', 'B03H', 0., false, true, BuffonAdd, 0, BuffonEnd) endfunction endscope
For some reason instead of going into the Enum function nothing happens and at the end I am even being dealt damage (but only the first time this ability is use on me or friendly unit). I have no idea why this is happening...
To add more information, I get text:
000000000000001
group filter
000000000000002
000000000000003
Please help
Last edited: