SWEP.AdminOnly = true
Так оружие смогут заспавнить только те, у кого ply:IsAdmin()
вернёт true
.
Равносильно вот этому, но только для одного оружия:
hook.Add( 'PlayerGiveSWEP', 'BlockPlayerSWEPs', function( ply, class, swep )
if ( not ply:IsAdmin() ) then
return false
end
end )
Если хочешь сделать более гибкую настройку, можешь написать что-то в духе этого:
это не сделает “щиток” в спавн меню
local accessTable = {
['weapon_class_1'] = {
['admin'] = true,
['moderator'] = true
},
['weapon_class_2'] = {
['superadmin'] = true,
['admin'] = true
}
}
local function canSpawn(ply, class)
if not accessTable[class] then
return true -- разрешить спавн оружия, т.к. его нет в таблице
end
if not accessTable[class][ply:GetUserGroup()] then -- такой группы нет в списке, запрещаем
return false
end
return true -- разрешаем, чел крутой и может спавнить
end
-- Два хука, потому-что это гмод.
hook.Add( 'PlayerGiveSWEP', 'BlockPlayerSWEPs', canSpawn ) -- На выдачу себе
hook.Add( 'PlayerSpawnSWEP', 'BlockPlayerSWEPs', canSpawn ) -- На спавн в мире (?)
-- Этот пример будет работать в обратную сторону, указанные группы НЕ смогут спавнить указанные оружия.
local accessTable = {
['weapon_class_1'] = {
['admin'] = true,
['moderator'] = true
},
['weapon_class_2'] = {
['superadmin'] = true,
['admin'] = true
}
}
local function canSpawn(ply, class)
if accessTable[class] and accessTable[class][ply:GetUserGroup()] then
return false
end
return true
end
-- Два хука, потому-что это гмод.
hook.Add( 'PlayerGiveSWEP', 'BlockPlayerSWEPs', canSpawn ) -- На выдачу себе
hook.Add( 'PlayerSpawnSWEP', 'BlockPlayerSWEPs', canSpawn ) -- На спавн в мире (?)
Более подробно об хуках: