my code:
--!nocheck
local Inventory = {}
local RS = game:GetService("ReplicatedStorage")
local DataModule = require(RS.Modules.Main:WaitForChild("PlayerData"))
--sets item quantity to locked or to not exceed a value.
function Inventory.setQuantityLocked(p: Player, itemName: string, maxValue)
local data: {} = DataModule.GetData(p) -- get player data
local inventory: {} = data["Inventory"]
local TargetItem = inventory[tostring(itemName)]
if not TargetItem then
return
end
if TargetItem["Quantity"] then
--math.min restricts the amount of objects
TargetItem["Quantity"] = math.min(TargetItem["Quantity"], maxValue)
else
TargetItem["Quantity"] = maxValue
end
end
function Inventory.addItem(p: Player, itemName: string, amount: number)
local data: {} = DataModule.GetData(p)
if not data or typeof(itemName) ~= "string" then
return
end
local inventory: {} = data["Inventory"]
if not inventory then
return
end
local TargetItem: table = inventory[itemName]
if TargetItem then
--[[
TargetItem["Quantity"] = (TargetItem["Quantity"] or 0) + amount
]]
TargetItem["Quantity"] = (TargetItem["Quantity"] or 0) + amount
print(TargetItem)
else
inventory[itemName] = {
["Quantity"] = amount,
}
end
end
function Inventory.removeItemAmount(p: Player, itemName: string, amount: number)
local data: {} = DataModule.GetData(p)
local inventory: {} = data["Inventory"]
local TargetItem = inventory[tostring(itemName)]
--Not a string
if not data or typeof(itemName) ~= "string" then
return
end
if not TargetItem or TargetItem["Quantity"] < amount then
return
end
TargetItem["Quantity"] -= amount
print(TargetItem)
if TargetItem["Quantity"] <= 0 then
inventory[itemName] = nil
print(itemName .. " has been removed.")
end
end
-- Completley deletes an item from the
function Inventory.AnnihilateItem(p: Player, itemName: string)
local data: {} = DataModule.GetData(p)
local inventory: {} = data["Inventory"]
local TargetItem = inventory[tostring(itemName)]
if not data or not TargetItem then
return
end
TargetItem = nil
print("Removed item", TargetItem)
return
end
function Inventory.getInventory(p)
local data: {} = DataModule.GetData(p)
local inventory: {} = data["Inventory"]
return inventory
end
return Inventory
Hi, Iām a relativley experienced creator on the roblox platform and i have a question about scripting. I am trying to find ways to get items/boost items from just from the table name and and values.
Any ways to do this or should i try a different approach?