All pastes #926459 Raw Edit

Zeug

public text v1 · immutable
·published 2008-03-03 18:41 UTC
rendered paste body
function ApplyReciepeOnUnit takes unit uUnit,integer iFirstItemType,integer iSecondItemType,integer iThirdItemType,integer iFourthItemType,integer iResultItemType,integer iReciepeLenght 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 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 )
					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 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_XXXNumberOfRecipesXXX
	loop
		exitwhen x>y
		if(ApplyReciepeOnUnit(uTriggeringUnit,udg_XXXItem1XXX[x],udg_XXXItem2XXX[x],udg_XXXItem3XXX[x],udg_XXXItem4XXX[x],udg_XXXItem5XXX[x],udg_XXXRequiredItemsXXX[x],x))then
			set x=x+1
		endif
		set x=x+1
	endloop
endfunction

function InitTrig_XXXTriggerNameXXX takes nothing returns nothing
	set gg_trg_XXXTriggerNameXXX=CreateTrigger()
	call TriggerRegisterAnyUnitEventBJ(gg_trg_XXXTriggerNameXXX,EVENT_PLAYER_UNIT_PICKUP_ITEM)
	call TriggerAddAction(gg_trg_XXXTriggerNameXXX,function Trig_Item_ApplyReciepe_Actions)
endfunction