add sborka
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user