For some reason my Hero doesn't get experience from the kills using his triggered abilities unless the unit dies to a "Unit - Damage Target" line...
function Trig_Rising_Earth_Actions takes nothing returns nothing
local unit Caster = GetSpellAbilityUnit()
local location Point = GetUnitLoc(Caster)
local integer A = 1
local integer B = 5
loop
exitwhen A >= B
call DisplayTextToForce(GetPlayersAll(), "SUP!")
call CreateNUnitsAtLoc(1, 039;n000039;, GetOwningPlayer(Caster), PolarProjectionBJ(Point, A * 100, GetUnitFacing(Caster) - 90), GetUnitFacing(Caster))
call UnitAddAbilityBJ(039;A000039;, GetLastCreatedUnit())
call SetUnitAbilityLevel(GetLastCreatedUnit(), 039;A000039;, GetUnitAbilityLevel(Caster, 039;A006039;))
call IssuePointOrderLocBJ(GetLastCreatedUnit(), "impale", PolarProjectionBJ(GetUnitLoc(GetLastCreatedUnit()), 100, GetUnitFacing(GetLastCreatedUnit())))
call UnitApplyTimedLifeBJ(3, 039;BTLF039;, GetLastCreatedUnit())
call CreateNUnitsAtLoc(1, 039;n000039;, GetOwningPlayer(Caster), PolarProjectionBJ(Point, A * 100, GetUnitFacing(Caster) + 90), GetUnitFacing(Caster))
call UnitAddAbilityBJ(039;A000039;, GetLastCreatedUnit())
call SetUnitAbilityLevel(GetLastCreatedUnit(), 039;A000039;, GetUnitAbilityLevel(Caster, 039;A006039;))
call IssuePointOrderLocBJ(GetLastCreatedUnit(), "impale", PolarProjectionBJ(GetUnitLoc(GetLastCreatedUnit()), 100, GetUnitFacing(GetLastCreatedUnit())))
call UnitApplyTimedLifeBJ(3, 039;BTLF039;, GetLastCreatedUnit())
set A = A + 1
endloop
endfunction
This kill should be able to allow you to gain XP. Not sure why the XP is not spread. Probably you should check Gameplay Constant for the Hero XP.