50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
 | 
						|
 
 | 
						|
    local bundleTypes = {
 | 
						|
        [6506] = { -- red christmas bundle
 | 
						|
            6503
 | 
						|
        },
 | 
						|
        [6507] = { -- blue christmas bundle
 | 
						|
            6504
 | 
						|
        },
 | 
						|
        [6508] = { -- green christmas bundle
 | 
						|
            6502
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    local common = {
 | 
						|
        {6569, 15}, {3598, 20}, {3599, 10}, {3586, 10}, {3585, 5}, 6500, 6501, 6489, 6387
 | 
						|
    }
 | 
						|
   
 | 
						|
    local targetItem = bundleTypes[item.itemid]
 | 
						|
    if not targetItem then
 | 
						|
        return true
 | 
						|
    end
 | 
						|
   
 | 
						|
    targetItem = common
 | 
						|
 | 
						|
    -- In case there's going to be more than one unique item per bundle
 | 
						|
    for i = 1, #bundleTypes[item.itemid] do
 | 
						|
        table.insert(targetItem, bundleTypes[item.itemid][i])
 | 
						|
    end
 | 
						|
   
 | 
						|
    local rewards = {}
 | 
						|
    repeat
 | 
						|
        local count = 1
 | 
						|
        local rand = math.random(#targetItem)
 | 
						|
        local gift = targetItem[rand]
 | 
						|
        if type(gift) == "table" then
 | 
						|
            count = gift[2]
 | 
						|
            gift = gift[1]
 | 
						|
        end
 | 
						|
        rewards[#rewards + 1] = {gift, count}
 | 
						|
        table.remove(targetItem, rand)
 | 
						|
    until #rewards == 7
 | 
						|
 
 | 
						|
    for i = 1, #rewards do
 | 
						|
        player:addItem(rewards[i][1], rewards[i][2])
 | 
						|
    end
 | 
						|
    item:remove(1)
 | 
						|
    fromPosition:sendMagicEffect(CONST_ME_GIFT_WRAPS)
 | 
						|
    return true
 | 
						|
end |