как сделать чтобы только у госсов было: объявление в розыск, ордер, снять розыск
Короче, создай файлик луа для серверных скриптов типа lua/autorun/server/sv_custom_cmenu.lua
И туда впихни мой старый код:
-- Функция для проверки, является ли игрок полицейским
local function IsCop(ply)
return ply:Team() == TEAM_POLICE -- Замените TEAM_POLICE на идентификатор профессии полицейского на вашем сервере
end
-- Добавляем опции в CMenu
hook.Add("OnContextMenuOpen", "AddPoliceOptionsToContextMenu", function()
local ply = LocalPlayer()
if IsCop(ply) then
local function AddOption(name, func)
local option = DermaMenu()
option:AddOption(name, func)
option:Open()
end
-- Добавляем опцию "Объявление в розыск"
AddOption("Объявление в розыск", function()
-- Здесь добавьте код для объявления в розыск
end)
-- Добавляем опцию "Ордер"
AddOption("Ордер", function()
-- Здесь добавьте код для выдачи ордера
end)
-- Добавляем опцию "Снять розыск"
AddOption("Снять розыск", function()
-- Здесь добавьте код для снятия розыска
end)
end
end)
Теперь тебе нужно добавить код, который будет выполняться при выборе этих опций в С менюшке. Для этого используй серверные скрипты. Например код для объявления в розыск, выдачи ордера и снятия розыска (чтобы логика была):
Создавай файл по примеру выше и туда вот эту залупку:
-- Объявление в розыск
local function DeclareBounty()
-- Реализуйте вашу логику объявления в розыск
print("Объявление в розыск вызвано")
end
-- Выдача ордера
local function IssueWarrant()
-- Реализуйте вашу логику выдачи ордера
print("Ордер выдан")
end
-- Снятие розыска
local function RemoveBounty()
-- Реализуйте вашу логику снятия розыска
print("Розыск снят")
end
-- Используйте уже добавленные опции
hook.Add("OnContextMenuOpen", "AddPoliceOptionsToContextMenu", function()
local ply = LocalPlayer()
if ply:IsValid() and ply:Team() == TEAM_POLICE then
local menu = DermaMenu()
menu:AddOption("Объявление в розыск", DeclareBounty)
menu:AddOption("Ордер", IssueWarrant)
menu:AddOption("Снять розыск", RemoveBounty)
menu:Open()
end
end)
Ну и все, ток убедись что идентификатор профессии полицейского (например, TEAM_POLICE
) правильно указан в коде. Можешь найти его в файле профессий.