mirror of
https://github.com/ErikasKontenis/SabrehavenServer.git
synced 2025-10-14 14:44:55 +02:00
Full Distribution
This commit is contained in:
59
data/talkactions/scripts/create_item.lua
Normal file
59
data/talkactions/scripts/create_item.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
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
|
Reference in New Issue
Block a user