mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
63 lines
1.6 KiB
Lua
63 lines
1.6 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
local PLUGIN = PLUGIN
|
|
|
|
ix.config.Add("PickupDispenserMaxItems", 8, "Pickup Dispenser - Max unique items purchased.", nil, {
|
|
data = {min = 1, max = 8, decimals = 0},
|
|
category = "Terminal de collecte"
|
|
})
|
|
|
|
ix.char.RegisterVar("purchasedItems", {
|
|
default = {},
|
|
isLocal = true,
|
|
bNoDisplay = true,
|
|
field = "purchasedItems",
|
|
fieldType = ix.type.string,
|
|
OnSet = function(character, itemID, amount)
|
|
if (!itemID) then
|
|
ErrorNoHalt("Attempted to set purchased items but no item uniqueID was specified!")
|
|
return
|
|
end
|
|
|
|
local items = character:GetPurchasedItems()
|
|
if !istable(amount) and !string.find(itemID, "letter") then
|
|
if amount then
|
|
items[itemID] = (items[itemID] or 0) + amount
|
|
else
|
|
if items[itemID] > 0 then
|
|
items[itemID] = items[itemID] - 1
|
|
|
|
if items[itemID] == 0 then
|
|
items[itemID] = nil
|
|
end
|
|
else
|
|
return
|
|
end
|
|
end
|
|
else
|
|
if items[itemID] then items[itemID] = nil end
|
|
items[itemID] = amount
|
|
end
|
|
|
|
if (IsValid(character:GetPlayer())) then
|
|
net.Start("ixCharacterVarChanged")
|
|
net.WriteUInt(character:GetID(), 32)
|
|
net.WriteString("purchasedItems")
|
|
net.WriteType(character.vars.purchasedItems)
|
|
net.Send(character:GetPlayer())
|
|
end
|
|
|
|
character.vars.purchasedItems = items
|
|
end,
|
|
OnGet = function(character)
|
|
return character.vars.purchasedItems or {}
|
|
end
|
|
}) |