• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Enormous item!

Status
Not open for further replies.
Hi all!
When I use that code:
JASS:
function Trig_MedalOfAgiToRec_Conditions takes nothing returns boolean
    return GetItemTypeId(GetManipulatedItem()) == 'I004'
endfunction

function Trig_MedalOfAgiToRec_Actions takes nothing returns nothing
    local unit u = GetManipulatingUnit()
    local integer i = ItemInUnitSlot('I004',u)
    local item itm = CreateItem('I005',GetUnitX(u),GetUnitY(u))
    call UnitAddItem(u,itm)
    call UnitRemoveItem(u,UnitItemInSlot(u,i-1))
    set u = null
    set itm = null
endfunction

//===========================================================================
function InitTrig_MedalOfAgiToRec takes nothing returns nothing
    set gg_trg_MedalOfAgiToRec = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_MedalOfAgiToRec,EVENT_PLAYER_UNIT_PICKUP_ITEM)
    call TriggerAddCondition(gg_trg_MedalOfAgiToRec,Condition(function Trig_MedalOfAgiToRec_Conditions))
    call TriggerAddAction(gg_trg_MedalOfAgiToRec,function Trig_MedalOfAgiToRec_Actions)
endfunction
to replace one item type to another, it replaces but creates one more item on on hero's feet!
How to fix that?
 
UnitRemoveItem() is Hero - Drop item from hero, it's not Item - Remove item.
Use this:
JASS:
function Trig_MedalOfAgiToRec_Conditions takes nothing returns boolean
    return GetItemTypeId(GetManipulatedItem()) == 'I004'
endfunction

function Trig_MedalOfAgiToRec_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local item m = GetManipulatedItem()
    local item itm = CreateItem('I005',GetUnitX(u),GetUnitY(u))
    call RemoveItem(m)
    call UnitAddItem(u,itm)
    set u = null
    set itm = null
    set m = null
endfunction

//===========================================================================
function InitTrig_MedalOfAgiToRec takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_PICKUP_ITEM)
    call TriggerAddCondition(t,Condition(function Trig_MedalOfAgiToRec_Conditions))
    call TriggerAddAction(t,function Trig_MedalOfAgiToRec_Actions)
endfunction
 
Status
Not open for further replies.
Top