rendered paste bodyfunction ApplyReciepeOnUnit takes unit uUnit,integer iFirstItemType,integer iSecondItemType,integer iThirdItemType,integer iFourthItemType,integer iResultItemType,integer iReciepeLenght,integer x returns boolean
local effect eReciepeEffect
local item i
if(iReciepeLenght==2)then
if(UnitHasItemOfTypeBJ(uUnit,iFirstItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iSecondItemType))then
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iFirstItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iSecondItemType))
set eReciepeEffect=AddSpecialEffectTargetUnitBJ("origin",uUnit,"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
set i = UnitAddItemByIdSwapped( iResultItemType, uUnit )
call SetItemUserData( i, x )
call DestroyEffect(eReciepeEffect)
return true
endif
endif
endif
if(iReciepeLenght==3)then
if(UnitHasItemOfTypeBJ(uUnit,iFirstItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iSecondItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iThirdItemType))then
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iFirstItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iSecondItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iThirdItemType))
set eReciepeEffect=AddSpecialEffectTargetUnitBJ("origin",uUnit,"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
set i = UnitAddItemByIdSwapped( iResultItemType, uUnit )
if (iResultItemType == 'I01E')then
call SetPlayerTechResearchedSwap( 'R00G', 1, GetOwningPlayer(GetManipulatingUnit()) )
endif
call SetItemUserData( i, x )
call DestroyEffect(eReciepeEffect)
return true
endif
endif
endif
endif
if(iReciepeLenght==4)then
if(UnitHasItemOfTypeBJ(uUnit,iFirstItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iSecondItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iThirdItemType))then
if(UnitHasItemOfTypeBJ(uUnit,iFourthItemType))then
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iFirstItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iSecondItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iThirdItemType))
call RemoveItem(GetItemOfTypeFromUnitBJ(uUnit,iFourthItemType))
set eReciepeEffect=AddSpecialEffectTargetUnitBJ("origin",uUnit,"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
set i = UnitAddItemById(uUnit,iResultItemType)
call SetItemUserData( i, x )
call DestroyEffect(eReciepeEffect)
return true
endif
endif
endif
endif
endif
return false
endfunction
function Trig_Item_ApplyReciepe_Actions takes nothing returns nothing
local unit uTriggeringUnit=GetTriggerUnit()
local integer x=1
local integer y=udg_Rezept_menge
loop
exitwhen x>y
if(ApplyReciepeOnUnit(uTriggeringUnit,udg_Rezept_Item1[x],udg_Rezept_Item2[x],udg_Rezept_Item3[x],udg_Rezept_Item4[x],udg_Rezept_Item5[x],udg_Rezept_lange[x],x))then
set x=x+1
endif
set x=x+1
endloop
endfunction
function InitTrig_Aufheben takes nothing returns nothing
set gg_trg_Aufheben=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Aufheben,EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerAddAction(gg_trg_Aufheben,function Trig_Item_ApplyReciepe_Actions)
endfunction