# Drop items by id:
drop_items_by_id_list = (6405, 2584)

queue = {}

# Private function
def checkDropQueue(x, y, z):
	if script.IsLocationFree(x, y, z) == 1:
		if len(queue) > 0: # there are items in queue, try to drop them
			for slot, itemId in queue.items():
				if script.GetItemInSlot(slot) == itemId:
					if script.DropItem(slot, 0) == 'ok':
						script.StatusMessage('Dropping item from queue.')
						queue.pop(slot) # Deletes item from queue
						break
				else:
					script.StatusMessage('Deleted item from queue.')
					queue.pop(slot) # Deletes item from queue, because it's not in slot.
	

def onScriptActivation():
	script.PZChecksForDrop(0) # allow to drop items in protection zone

def onChangeLocation(x, y, z):
	checkDropQueue(x, y, z)

def onReceiveAddItemToBackpack(slot, itemId):
	if itemId in drop_items_by_id_list:
		if script.DropItem(slot, 1) == 'no_room':
			script.StatusMessage('No room! Adding to queue.')
			queue[slot] = itemId # add item to queue and drop it later
		