mirror of
https://github.com/ErikasKontenis/SabrehavenServer.git
synced 2025-04-30 09:39:20 +02:00
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
|