Here is a more efficient way to fuse the gems together Intended to replace Item_Fusion, Item_Fusion_L2, and Item_Fusion_L3
Code
function reggems takes nothing returns nothing set udg_gem[1]='I04U' set udg_gem[2]='I04V' set udg_gem[3]='I04W' set udg_gem[4]='I04X' set udg_gem[5]='I04Y' set udg_gem[6]='I04Z' set udg_gem[7]='I050' set udg_gem[8]='I051' set udg_gem[9]='I052' set udg_gem[10]='I053' set udg_gem[11]='I054' set udg_gem[12]='I055' set udg_gem[13]='I056' set udg_gem[14]='I057' set udg_gem[15]='I058' set udg_gem[16]='I059' set udg_gem[17]='I05B' set udg_gem[18]='I05A' set udg_gem[19]='I05C' set udg_gem[20]='I05D' set udg_gem[21]='I05E' endfunction function Trig_Item_Fusion_Actions takes nothing returns nothing local integer i local integer ngem local integer crgem call DisableTrigger(GetTriggeringTrigger()) set ngem=0 if GetItemTypeId(GetManipulatedItem())==udg_gem[3] then set ngem=3 elseif GetItemTypeId(GetManipulatedItem())==udg_gem[2] then set ngem=2 elseif GetItemTypeId(GetManipulatedItem())==udg_gem[1] then set ngem=1 endif if ngem==0 then call EnableTrigger(GetTriggeringTrigger()) return else call RemoveItem(GetManipulatedItem()) endif set i=21 loop set i=i-1 exitwhen UnitHasItemOfTypeBJ(GetTriggerUnit(),udg_gem[i]) or i==0 endloop if ngem==3 and i<5 then set crgem=i+3 elseif (ngem==2 and i<12) or (ngem==3 and i<16) then set crgem=i+2 elseif ngem>0 then set crgem=i+1 endif if crgem!=ngem then call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),udg_gem[i])) call AddSpecialEffectTargetUnitBJ("origin",GetTriggerUnit(),"Abilities\\Spells\\Items\\AIlm\\AIlmTarget.mdl") call DestroyEffectBJ(GetLastCreatedEffectBJ()) endif call UnitAddItemById(GetTriggerUnit(),udg_gem[crgem]) call EnableTrigger(GetTriggeringTrigger()) endfunction function InitTrig_Item_Fusion takes nothing returns nothing set gg_trg_Item_Fusion=CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Item_Fusion,EVENT_PLAYER_UNIT_PICKUP_ITEM) call TriggerAddAction(gg_trg_Item_Fusion,function Trig_Item_Fusion_Actions) call reggems() endfunction
I wrote it when I was modifying 1.16 with a friend and got annoyed at how long the origila trigger was. Goes all the way from gem fragment to final articact and allows you to more freely adjust how much "credit" a lvl2 gem gives Hope it helps
P.S. udg_gem is an integer array, has to be created under variables before using this trigger renamed from gem[ to udg_gem[ in trigger to account for this
Message edited by afis - Friday, 2017-05-05, 9:25 PM