mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
60 lines
2.0 KiB
Lua
60 lines
2.0 KiB
Lua
|
|
--[[
|
||
|
|
| This file was obtained through the combined efforts
|
||
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
||
|
|
|
|
||
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
||
|
|
|
|
||
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||
|
|
--]]
|
||
|
|
|
||
|
|
|
||
|
|
local PLUGIN = PLUGIN
|
||
|
|
|
||
|
|
ix.log.AddType("rationsToggleDispenser", function(client, bOn)
|
||
|
|
return string.format("%s a mis un distributeur de rations %s.", client:Name(), bOn and "actif" or "non-actif")
|
||
|
|
end)
|
||
|
|
|
||
|
|
ix.log.AddType("rationsCoupon", function(client, amount)
|
||
|
|
return string.format("%s a utilisé un coupon dans un distributeur de rations, gagnant %d crédits.", client:Name(), amount)
|
||
|
|
end)
|
||
|
|
|
||
|
|
ix.log.AddType("rationsDispensing", function(client, amount, wages, ration)
|
||
|
|
return string.format("%s a acquis sa ration, gagnant %d crédits, %d salaires et une %s ration.", client:Name(), amount, wages, ration)
|
||
|
|
end)
|
||
|
|
|
||
|
|
function PLUGIN:ClientNextUsageTick(client)
|
||
|
|
local character = client:GetCharacter()
|
||
|
|
if (!character) then return end
|
||
|
|
if (client:IsAFK()) then return end
|
||
|
|
|
||
|
|
for _, v in ipairs(character:GetInventory():GetItemsByUniqueID("id_card")) do
|
||
|
|
if (v:GetData("active") == false) then continue end
|
||
|
|
|
||
|
|
local progress = v:GetData("nextRationTime", 60 * ix.config.Get("rationInterval"))
|
||
|
|
v:SetData("nextRationTime", progress + 1)
|
||
|
|
end
|
||
|
|
|
||
|
|
if (!client:IsVortigaunt()) then return end
|
||
|
|
for _, v in pairs(character:GetInventory():GetItems()) do
|
||
|
|
if (v.uniqueID != "vortigaunt_slave_collar" and v.uniqueID != "vortigaunt_slave_collar_fake") then continue end
|
||
|
|
local progress = v:GetData("nextRationTime", 60 * ix.config.Get("rationInterval"))
|
||
|
|
v:SetData("nextRationTime", progress + 1)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function PLUGIN:PlayerLoadedCharacter(client, character)
|
||
|
|
local uniqueID = "ixDispenserTimer" .. client:SteamID64()
|
||
|
|
|
||
|
|
if timer.Exists(uniqueID) then
|
||
|
|
timer.Remove(uniqueID)
|
||
|
|
end
|
||
|
|
|
||
|
|
timer.Create(uniqueID, PLUGIN.TIMER_DELAY, 0, function()
|
||
|
|
if (IsValid(client)) then
|
||
|
|
PLUGIN:ClientNextUsageTick(client)
|
||
|
|
else
|
||
|
|
timer.Remove(uniqueID)
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
end
|