Preloading Items

Exide

I am amazingly focused right now!
Reaction score
448
Hi.
I'm having trouble preloading items.
I figured that it would be enough to give them to a preplaced unit, and remove them from the unit, when given to him.
Since I have quite a few items I made an index list:

JASS:

function Trig_Item_Index_Actions takes nothing returns nothing
    set udg_ItemIntegerIndex[0] = 'I000'
    set udg_ItemIntegerIndex[1] = 'I001'
    set udg_ItemIntegerIndex[2] = 'I002'
    set udg_ItemIntegerIndex[3] = 'I003'
    set udg_ItemIntegerIndex[4] = 'I004'
    set udg_ItemIntegerIndex[5] = 'I005'
    set udg_ItemIntegerIndex[6] = 'I006'
    set udg_ItemIntegerIndex[7] = 'I007'
    set udg_ItemIntegerIndex[8] = 'I008'
    set udg_ItemIntegerIndex[9] = 'I009'
    set udg_ItemIntegerIndex[10] = 'I00A'
    set udg_ItemIntegerIndex[11] = 'I00B'
    set udg_ItemIntegerIndex[12] = 'I00C'
    set udg_ItemIntegerIndex[13] = 'I00D'
    set udg_ItemIntegerIndex[14] = 'I00E'
    set udg_ItemIntegerIndex[15] = 'I00F'
    set udg_ItemIntegerIndex[16] = 'I00G'
    set udg_ItemIntegerIndex[17] = 'I00H'
    set udg_ItemIntegerIndex[18] = 'I00I'
    set udg_ItemIntegerIndex[19] = 'I00J'
    set udg_ItemIntegerIndex[20] = 'I00K'
    set udg_ItemIntegerIndex[21] = 'I00L'
    set udg_ItemIntegerIndex[22] = 'I00M'
    set udg_ItemIntegerIndex[23] = 'I00N'

endfunction

//===========================================================================
function InitTrig_Item_Index takes nothing returns nothing
    set gg_trg_Item_Index = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Item_Index, function Trig_Item_Index_Actions )
endfunction


JASS:

function Trig_Count_Items_Actions takes nothing returns nothing
    local integer i = 0
    
    loop
        exitwhen i == 100
        if (udg_ItemIntegerIndex<i> != null) then
            set udg_NumberOfItems = udg_NumberOfItems + 1
        endif
        set i = i + 1
    endloop

endfunction

//===========================================================================
function InitTrig_Count_Items takes nothing returns nothing
    set gg_trg_Count_Items = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Count_Items, function Trig_Count_Items_Actions )
endfunction
</i>


JASS:

function Trig_Preload_Items_Actions takes nothing returns nothing
    local unit u = udg_PreloadUnit
    local integer i = 0
    local integer end = udg_NumberOfItems
    
    loop
        exitwhen i &gt; end
        call UnitAddItemById(u, udg_ItemIntegerIndex<i>)
        call RemoveItem(UnitItemInSlot(u, 1))
        set i = i + 1
    endloop
    
    set u = null
endfunction

//===========================================================================
function InitTrig_Preload_Items takes nothing returns nothing
    set gg_trg_Preload_Items = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Preload_Items, function Trig_Preload_Items_Actions )
endfunction
</i>


First trigger = index, nothing weird.
Second trigger = Counts items in the index list.
Third trigger applies the items to the PreloadUnit, and removes them straight away.

The problem is, the PreloadUnit isn't removed properly (removed it at the end of Third trigger). So I tried to take out those actions from that trigger, and put them in a trigger that has the event: Elapsed time = 1 sec. When I do that, the unit is removed, but for some strange reason all the items end up on the ground where the unit used to stand. :confused:

Ideas on how to fix this (or a better way to preload the items) are greatly appriciated.


EDIT: Problem Solved. I used a Hero instead, and it worked. (Strange, since the normal unit had an inventory, but whatever..)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top