Files
VnUtest/garrysmod/gamemodes/militaryrp/plugins/weapon_kits/sv_plugin.lua
2026-03-31 10:27:04 +03:00

70 lines
1.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
local PLUGIN = PLUGIN
util.AddNetworkString("ixKitMenu")
util.AddNetworkString("ixKitSync")
util.AddNetworkString("ixKitClaim")
function PLUGIN:SaveData()
self:SetData(self.kits)
end
function PLUGIN:LoadData()
self.kits = self:GetData() or {}
end
function PLUGIN:SyncKits(client)
net.Start("ixKitSync")
net.WriteTable(self.kits)
if (client) then
net.Send(client)
else
net.Broadcast()
end
end
function PLUGIN:PlayerLoadedCharacter(client, character)
self:SyncKits(client)
end
net.Receive("ixKitClaim", function(len, client)
local character = client:GetCharacter()
if (!character) then return end
local weaponClass = net.ReadString()
local kit = PLUGIN.kits[weaponClass]
if (!kit) then return end
-- Проверка группы
local allowedGroups = {
["superadmin"] = true,
["sponsor"] = true,
["prem"] = true
}
if (!allowedGroups[client:GetUserGroup()]) then
client:Notify("У вас нет доступа.")
return
end
-- Проверка КД на персонаже
local cooldowns = character:GetData("kit_cooldowns", {})
local lastClaim = cooldowns[weaponClass] or 0
local remaining = (lastClaim + kit.cooldown) - os.time()
if (remaining > 0) then
client:Notify("Откат еще " .. math.ceil(remaining / 60) .. " мин.")
return
end
-- Выдача
client:Give(weaponClass)
client:SelectWeapon(weaponClass)
-- Установка КД
cooldowns[weaponClass] = os.time()
character:SetData("kit_cooldowns", cooldowns)
client:Notify("Вы получили кит: " .. kit.name)
end)