landsandboat/scripts/commands/setbag.lua

59 lines
2.1 KiB
Lua

-----------------------------------
-- func: setbag
-- desc: Sets the players bag size
-----------------------------------
---@type TCommand
local commandObj = {}
local bagparam =
{
{ bagsize = 30, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_I },
{ bagsize = 35, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_II },
{ bagsize = 40, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_III },
{ bagsize = 45, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_IV },
{ bagsize = 50, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_V },
{ bagsize = 55, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_VI },
{ bagsize = 60, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_VII },
{ bagsize = 65, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_VIII },
{ bagsize = 70, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_IX },
{ bagsize = 75, questid = xi.quest.id.jeuno.THE_GOBBIEBAG_PART_X },
{ bagsize = 80, questid = nil },
}
commandObj.cmdprops =
{
permission = 1,
parameters = 'i'
}
local function error(player, msg)
player:printToPlayer(msg)
player:printToPlayer('!bagsize <30-80 and multiple of 5>')
end
commandObj.onTrigger = function(player, bagsize)
-- Validate bag amount
if bagsize < 30 or bagsize > 80 or (bagsize % 5 ~= 0) then
error(player, 'Invalid bag size.')
return
end
local currentBagSize = player:getContainerSize(xi.inv.INVENTORY)
local adjustment = bagsize - currentBagSize
for i = 1, 10 do
if bagsize > bagparam[i].bagsize then
player:completeQuest(xi.questLog.JEUNO, bagparam[i].questid)
else
player:delQuest(xi.questLog.JEUNO, bagparam[i].questid)
end
end
-- Inform player and set bag size
player:printToPlayer(string.format('Old Bag Size: %u', currentBagSize))
player:printToPlayer(string.format('New Bag Size: %u', bagsize))
player:changeContainerSize(xi.inv.INVENTORY, adjustment)
player:changeContainerSize(xi.inv.MOGSATCHEL, adjustment)
end
return commandObj