afisakov
You can change this now in User CP.
- Reaction score
- 37
The basic premise of this trigger is to keep upgrading a gem, it has up to 21 levels and can be raised by fusing with a lvl 1, 2 or 3 gem.
The trigger:
I attempted to test by trying to fuse lvl 1 and 2 gems and it did not do anything.
The build premise: identify item picked up as level 1,2 or 3 gem. remove it. then check for highest level gem in player inventory - if none assign 0.
set gem level fint1 (highest gem) + fint2 (level of manipulating gem)
remove fint1 gem and give the new gem.
What actually happens: I pick up 2 lvl 2 and a lvl 1 gem and all 3 sit in my inventory, no fusion.
Not sure what step I messed up
The trigger:
Code:
function reggems takes nothing returns nothing
set gem[1]='I04U'
set gem[2]='I04V'
set gem[3]='I04W'
set gem[4]='I04X'
set gem[5]='I04Y'
set gem[6]='I04Z'
set gem[7]='I050'
set gem[8]='I051'
set gem[9]='I052'
set gem[10]='I053'
set gem[11]='I054'
set gem[12]='I055'
set gem[13]='I056'
set gem[14]='I057'
set gem[15]='I058'
set gem[16]='I059'
set gem[17]='I05B'
set gem[18]='I05A'
set gem[19]='I05C'
set gem[20]='I05D'
set gem[21]='I05E'
endfunction
function Trig_Item_Fusion_L3_Actions takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
set fint2=0
if GetItemTypeId(GetManipulatedItem())==gem[3] then
set fint2=3
elseif GetItemTypeId(GetManipulatedItem())==gem[2] then
set fint2=2
elseif GetItemTypeId(GetManipulatedItem())==gem[1] then
set fint2=1
endif
if fint2==0 then
return
else
call RemoveItem(GetManipulatedItem())
endif
set fint1=21
loop
set fint1=fint1-1
exitwhen UnitHasItemOfTypeBJ(GetTriggerUnit(),gem[fint1]) or fint1==0
endloop
if fint2==1 then
set fint3=fint1+1
elseif fint2==3 then
set fint3=fint1+3
elseif fint2==2 then
set fint3=fint1+2
endif
call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),gem[fint1]))
call AddSpecialEffectTargetUnitBJ("origin",GetTriggerUnit(),"Abilities\\Spells\\Items\\AIlm\\AIlmTarget.mdl")
call DestroyEffectBJ(GetLastCreatedEffectBJ())
call UnitAddItemById(GetTriggerUnit(),gem[fint3])
call EnableTrigger(GetTriggeringTrigger())
endfunction
function InitTrig_Item_Fusion_L3 takes nothing returns nothing
set gg_trg_Item_Fusion_L3=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Item_Fusion_L3,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddAction(gg_trg_Item_Fusion_L3,function Trig_Item_Fusion_L3_Actions)
call reggems()
endfunction
I attempted to test by trying to fuse lvl 1 and 2 gems and it did not do anything.
The build premise: identify item picked up as level 1,2 or 3 gem. remove it. then check for highest level gem in player inventory - if none assign 0.
set gem level fint1 (highest gem) + fint2 (level of manipulating gem)
remove fint1 gem and give the new gem.
What actually happens: I pick up 2 lvl 2 and a lvl 1 gem and all 3 sit in my inventory, no fusion.
Not sure what step I messed up