mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
76
gamemodes/ixhl2rp/plugins/bettergas/meta/sh_player.lua
Normal file
76
gamemodes/ixhl2rp/plugins/bettergas/meta/sh_player.lua
Normal file
@@ -0,0 +1,76 @@
|
||||
--[[
|
||||
| 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
|
||||
Reference in New Issue
Block a user