60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
function onSay(player, words, param)
 | 
						|
	if not player:getGroup():getAccess() then
 | 
						|
		return true
 | 
						|
	end
 | 
						|
 | 
						|
	if player:getAccountType() < ACCOUNT_TYPE_GOD then
 | 
						|
		return false
 | 
						|
	end
 | 
						|
 | 
						|
	local split = param:split(",")
 | 
						|
 | 
						|
	local itemType = ItemType(split[1])
 | 
						|
	if itemType:getId() == 0 then
 | 
						|
		itemType = ItemType(tonumber(split[1]))
 | 
						|
		if itemType:getId() == 0 then
 | 
						|
			player:sendCancelMessage("There is no item with that id or name.")
 | 
						|
			return false
 | 
						|
		end
 | 
						|
	end
 | 
						|
 | 
						|
	local keynumber = 0
 | 
						|
	local count = tonumber(split[2])
 | 
						|
	if count ~= nil then
 | 
						|
		if itemType:isStackable() then
 | 
						|
			count = math.min(10000, math.max(1, count))
 | 
						|
		elseif itemType:isKey() then
 | 
						|
			keynumber = count
 | 
						|
			count = 1
 | 
						|
		elseif not itemType:hasSubType() then
 | 
						|
			count = math.min(100, math.max(1, count))
 | 
						|
		else
 | 
						|
			count = math.max(1, count)
 | 
						|
		end
 | 
						|
	else
 | 
						|
		count = 1
 | 
						|
	end
 | 
						|
 | 
						|
	local result = player:addItem(itemType:getId(), count)
 | 
						|
	if result ~= nil then
 | 
						|
		if not itemType:isStackable() then
 | 
						|
			if type(result) == "table" then
 | 
						|
				for _, item in ipairs(result) do
 | 
						|
					if itemType:isKey() then
 | 
						|
						item:setAttribute(ITEM_ATTRIBUTE_KEYNUMBER, keynumber)
 | 
						|
					end
 | 
						|
					item:decay()
 | 
						|
				end
 | 
						|
			else
 | 
						|
				if itemType:isKey() then
 | 
						|
					result:setAttribute(ITEM_ATTRIBUTE_KEYNUMBER, keynumber)
 | 
						|
				end
 | 
						|
				result:decay()
 | 
						|
			end
 | 
						|
		end
 | 
						|
 | 
						|
		player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
 | 
						|
	end
 | 
						|
	return false
 | 
						|
end
 |