Files
wnsrc/gamemodes/darkrp/plugins/bettergas/meta/sh_player.lua

76 lines
2.1 KiB
Lua
Raw Normal View History

2024-08-04 22:55:00 +03:00
--[[
| 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 pairs = pairs
local math = math
local ix = ix
local playerMeta = FindMetaTable("Player")
function playerMeta:HasGasmask()
local character = self:GetCharacter()
if (!character) then return false end
local inventory = character:GetInventory()
if (!inventory) then return false end
local clothingItems = inventory:GetItems(true)
for _, v in pairs(clothingItems) do
if (v.isGasmask and v:GetData("equip")) then
return true
end
end
end
function playerMeta:GetFilterItem()
if (!self:HasGasmask()) then return nil end
local itemID = self:GetCharacter():GetFilterItem()
if (ix.item.instances[itemID]) then
return ix.item.instances[itemID]
end
end
function playerMeta:GetFilterQuality()
local filter = self:GetFilterItem()
if (!filter) then return 0 end
if (filter.GetFilterQuality) then
return filter:GetFilterQuality()
else
return filter.filterQuality or 0.1
end
end
function playerMeta:GetFilterValue()
local filter = self:GetFilterItem()
if (!filter) then return 0 end
return filter:GetData("filterValue", filter.maxFilterValue)
end
function playerMeta:UpdateFilterValue(amount)
local filter = self:GetFilterItem()
if (!filter) then return end
local oldValue = filter:GetData("filterValue", filter.maxFilterValue)
filter:SetData("filterValue", math.Clamp(oldValue - amount, 0, filter.maxFilterValue))
if (ix.option.Get(self, "gasNotificationWarnings") and
oldValue >= filter.filterDecayStart * filter.maxFilterValue) then
if (filter:GetData("filterValue") == 0) then
self:NotifyLocalized("filterOut")
elseif (filter:GetData("filterValue") < filter.filterDecayStart * filter.maxFilterValue) then
self:NotifyLocalized("filterDecay")
end
end
end