Files
mmkrp_2026/gamemodes/darkrp/entities/weapons/pocket/shared.lua
2026-03-15 14:54:49 +03:00

147 lines
3.0 KiB
Lua

AddCSLuaFile()
if SERVER then
AddCSLuaFile("cl_menu.lua")
include("sv_init.lua")
end
if CLIENT then
include("cl_menu.lua")
end
SWEP.PrintName = "Pocket"
SWEP.Slot = 1
SWEP.SlotPos = 1
SWEP.DrawAmmo = false
SWEP.DrawCrosshair = true
SWEP.Base = "weapon_cs_base2"
SWEP.Author = "DarkRP Developers"
SWEP.Instructions = "Left click to pick up\nRight click to drop\nReload to open the menu"
SWEP.Contact = ""
SWEP.Purpose = ""
SWEP.IsDarkRPPocket = true
SWEP.IconLetter = ""
SWEP.ViewModelFOV = 62
SWEP.ViewModelFlip = false
SWEP.AnimPrefix = "rpg"
SWEP.WorldModel = ""
SWEP.Spawnable = true
SWEP.AdminOnly = true
SWEP.Category = "DarkRP (Utility)"
SWEP.Primary.ClipSize = -1
SWEP.Primary.DefaultClip = 0
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = ""
SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = 0
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = ""
function SWEP:Initialize()
self:SetHoldType("normal")
end
function SWEP:Deploy()
return true
end
function SWEP:DrawWorldModel() end
function SWEP:PreDrawViewModel(vm)
return true
end
function SWEP:Holster()
if not SERVER then return true end
local Owner = self:GetOwner()
Owner:DrawViewModel(true)
Owner:DrawWorldModel(true)
return true
end
function SWEP:PrimaryAttack()
self:SetNextPrimaryFire(CurTime() + 0.2)
if not SERVER then return end
local Owner = self:GetOwner()
if not IsValid(Owner) then return end
local ent = Owner:GetEyeTrace().Entity
local canPickup, message = hook.Call("canPocket", GAMEMODE, Owner, ent)
if not canPickup then
if message then DarkRP.notify(Owner, 1, 4, message) end
return
end
Owner:addPocketItem(ent)
end
function SWEP:SecondaryAttack()
if not SERVER then return end
local Owner = self:GetOwner()
if not IsValid(Owner) then return end
local maxK = 0
for k in pairs(Owner:getPocketItems()) do
if k < maxK then continue end
maxK = k
end
if maxK == 0 then
DarkRP.notify(Owner, 1, 4, DarkRP.getPhrase("pocket_no_items"))
return
end
if SERVER then
local canPickup, message = hook.Call("canDropPocketItem", nil, Owner, maxK, Owner.darkRPPocket[maxK])
if canPickup == false then
if message then DarkRP.notify(Owner, 1, 4, message) end
return
end
end
Owner:dropPocketItem(maxK)
end
function SWEP:Reload()
if CLIENT then
DarkRP.openPocketMenu()
end
if SERVER and game.SinglePlayer() then
net.Start("DarkRP_PocketMenu")
net.Send(self:GetOwner())
end
end
local meta = FindMetaTable("Player")
DarkRP.stub{
name = "getPocketItems",
description = "Get a player's pocket items.",
parameters = {
},
returns = {
{
name = "items",
description = "A table containing crucial information about the items in the pocket.",
type = "table"
}
},
metatable = meta,
realm = "Shared"
}