Запретить профам брать определенное оружие

Как сделать НПТО? для професий

Чтобы не могли брать определёный оружия

брать откуда? из спавн меню? из магазина? использовать spawned_weapon энтити?

Ну типо гражданину нельзя брать пистолеты что бы в чат писалось Вы не можете взять пистолет за професию гражданин

самый простой вариант - детоурнуть Player:Give

local PLAYER = FindMetaTable("Player")
PLAYER._Give = PLAYER._Give or PLAYER.Give

ffunction PLAYER:Give(class, noAmmo)
	local wep = self:_Give(class, noAmmo)

	local blacklist = RPExtraTeams[self:Team()].weapons_blacklist
	if blacklist and table.HasValue(blacklist, class) then
		self:DropWeapon(wep)
		self:ChatPrint("Вы не можете взять это оружие за данную профессию.")
	end

	return wep
end

Пример настройки профессии:

TEAM_CITIZEN = DarkRP.createJob("Citizen", {
    color = Color(20, 150, 20, 255),
    model = {
        "models/player/Group01/Female_01.mdl",
        "models/player/Group01/Female_02.mdl",
        "models/player/Group01/Female_03.mdl",
        "models/player/Group01/Female_04.mdl",
        "models/player/Group01/Female_06.mdl",
        "models/player/group01/male_01.mdl",
        "models/player/Group01/Male_02.mdl",
        "models/player/Group01/male_03.mdl",
        "models/player/Group01/Male_04.mdl",
        "models/player/Group01/Male_05.mdl",
        "models/player/Group01/Male_06.mdl",
        "models/player/Group01/Male_07.mdl",
        "models/player/Group01/Male_08.mdl",
        "models/player/Group01/Male_09.mdl"
    },
    description = [[The Citizen is the most basic level of society you can hold besides being a hobo. You have no specific role in city life.]],
    weapons = {},
    command = "citizen",
    max = 0,
    salary = GAMEMODE.Config.normalsalary,
    admin = 0,
    vote = false,
    hasLicense = false,
    candemote = false,
    category = "Citizens",
    weapons_blacklist = {"weapon_pistol", "weapon_357"} -- профа не может брать 9mm pistol и .357 magnum в руки
})

при попытке взять запрещённое оружие оно будет выпадать из рук и игрок получит уведомление в чат.

1 лайк
local blocked = {
	["tfa_pistol"] = true,
	["tfa_rifle"] = true
}

hook.Add("PlayerCanPickupWeapon", "Block.Citizens", function(ply, wep)
	local jt = ply:getJobTable()
	if not jt.block_weapons then
		return
	end
	local class = wep:GetClass()
	if blocked[class] then
		DarkRP.notify(ply, 1, 4, "Вы не можете поднять это оружие.")
		return false
	end
end)

В нужных профессиях нужно прописать block_weapons = true

не сработает с spawned_weapon:Use, инвентарями и пр.

Со spawned_weapon - сработает, как и со стандартным оружием. Про инвентари не шарю. Везде разный код

хм, и в правду - не доглядел.