I have admittedly not messed with this stuff in a very long time. I know that most of my code is from before the patch that added hashtables and broke all my stuff. So I have started on something new and as far as I know it should work. Jass NG saves fine but the game drops me to the opening page when I attempt to test it. So some unknown trigger error. Here is the trigger in question.
I'm currently using JNGP 5d. The only link to 2.0 I can find requires me signing up to a site. Is my problem solvable by upgrading or is it in the code itself? Please don't point out the inefficient group setup unless you know a superior way.
scope InnerFire initializer init globals private constant integer SPELLID = 'A002' //Spell's Rawcode private constant integer HIDID = 'A004' //The hidden Inner Fire's Rawcode private constant integer DUMMYID = 'h001' //The hidden caster unit private constant string SFX = "Abilities\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl" endglobals private function targeting takes nothing returns boolean local unit u = GetFilterUnit() return GetWidgetLife(u) >= .45 and IsUnitAlly(u, GetOwningPlayer(GetTriggerUnit())) == true endfunction private function actions takes unit u returns nothing local unit caster = u local unit dummy local location target = GetSpellTargetLoc() local group targets = CreateGroup() local unit fog local integer i = GetUnitAbilityLevel(u, SPELLID) call AddSpecialEffectLoc(SFX,target) call GroupEnumUnitsInRangeOfLoc(targets, target, 200, Filter( function targeting)) loop set fog = FirstOfGroup(targets) exitwhen fog == null set dummy = CreateUnitAtLoc(GetOwningPlayer(u), DUMMYID, target, 0) call UnitAddAbility(dummy, HIDID) call SetUnitAbilityLevel(dummy, HIDID, i) call IssueTargetOrder(dummy, "innerfire", fog) call UnitApplyTimedLife(dummy, 'BHwe', 1) call GroupRemoveUnit(targets, fog) set fog = null endloop endfunction private function conditions takes nothing returns boolean if GetSpellAbilityId() == SPELLID then call actions(GetTriggerUnit()) endif return false endfunction //=========================================================================== private function init takes nothing returns nothing local trigger t = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( t, Condition( function conditions) ) endfunction endscope