Как сделать НПТО? для професий
Чтобы не могли брать определёный оружия
Как сделать НПТО? для професий
Чтобы не могли брать определёный оружия
брать откуда? из спавн меню? из магазина? использовать 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 в руки
})
при попытке взять запрещённое оружие оно будет выпадать из рук и игрок получит уведомление в чат.
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 - сработает, как и со стандартным оружием. Про инвентари не шарю. Везде разный код
хм, и в правду - не доглядел.