This commit is contained in:
lifestorm
2024-08-04 23:12:27 +03:00
parent 0e770b2b49
commit ba1fc01b16
7084 changed files with 2173495 additions and 14 deletions

View File

@@ -0,0 +1,113 @@
--[[
| 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
ITEM.name = "Container"
ITEM.description = "Container."
ITEM.category = "Containers"
ITEM.model = "models/props_junk/wood_crate001a.mdl"
ITEM.width = 1
ITEM.height = 1
ITEM.colorAppendix = {["red"] = "Contact an admin to convert this into a container. Requires a group of minimum 5 members.", ["blue"] = "We have a limit of 2 small OR 1 medium personal container per player.\nGroups may also get 3 large containers."}
ITEM.maxStackSize = 1
if (CLIENT) then
function ITEM:PaintOver(item, width, height)
local client = LocalPlayer()
local info = client:GetLocalVar("containerToPlaceInfo")
if (info and info.itemID == item.id) then
surface.SetDrawColor(110, 255, 110, 100)
surface.DrawRect(width - 14, height - 14, 8, 8)
end
end
else
function ITEM:OnTransferred(oldInv, newInv)
local oldOwner = oldInv.GetOwner and oldInv:GetOwner() or nil
local oldOwnerInfo = IsValid(oldOwner) and oldOwner:GetLocalVar("containerToPlaceInfo")
if (oldOwnerInfo and oldOwnerInfo.itemID == self.id) then
oldOwner:SetLocalVar("containerToPlaceInfo", nil)
end
end
end
ITEM:Hook("drop", function(item)
local client = item.player
local info = IsValid(client) and client:GetLocalVar("containerToPlaceInfo")
if (info and info.itemID == item.id) then
client:SetLocalVar("containerToPlaceInfo", nil)
end
end)
ITEM.functions.Place = {
name = "Place",
tip = "placeTip",
icon = "icon16/arrow_down.png",
OnRun = function(item)
local client = item.player
local entity = item.entity
if (IsValid(entity)) then
local clientPos = client:GetPos()
local entityPos = entity:GetPos()
if (clientPos:DistToSqr(entityPos) <= 100 * 100) then
PLUGIN:CreateContainer(client, entity:GetPos(), entity:GetAngles(), item.model, item.name, item.invType)
return
else
client:Notify("Сontainer item is too far!")
end
else
local info = {}
info.itemID = item.id
info.name = item.name
info.model = item.model
client:SetLocalVar("containerToPlaceInfo", info)
client:SelectWeapon("ix_keys")
end
return false
end,
OnCanRun = function(item)
local client = item.player
return isstring(item.model) and isstring(item.invType) and
IsValid(client) and !client:GetLocalVar("containerToPlaceInfo") and
hook.Run("CanPlayerEquipItem", client, item) != false
end
}
ITEM.functions.PlaceCancel = {
name = "Cancel Place",
tip = "placeCancelTip",
icon = "icon16/arrow_up.png",
OnRun = function(item)
local client = item.player
client:SetLocalVar("containerToPlaceInfo", nil)
return false
end,
OnCanRun = function(item)
local client = item.player
local info = IsValid(client) and client:GetLocalVar("containerToPlaceInfo")
return isstring(item.model) and isstring(item.invType) and
!IsValid(item.entity) and info != nil and info.itemID == item.id and
hook.Run("CanPlayerUnequipItem", client, item) != false
end
}