2019-01-16 17:16:38 -05:00

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