Files
wnsrc/gamemodes/ixhl2rp/plugins/fatigue_system/libs/sv_character.lua
lifestorm c6d9b6f580 Upload
2024-08-05 18:40:29 +03:00

64 lines
1.4 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.char.RegisterVar("energy", {
field = "energy",
fieldType = ix.type.number,
default = 100,
isLocal = true,
bNoDisplay = true,
OnSet = function(self, newEnergy, bNoNetwork)
newEnergy = newEnergy and math.max(newEnergy, 0) or 0
if (self.vars.energy == newEnergy) then
return false
end
self.vars.energy = newEnergy
if (!bNoNetwork) then
net.Start("ixCharacterVarChanged")
net.WriteUInt(self:GetID(), 32)
net.WriteString("energy")
net.WriteType(self.vars.energy)
net.Send(self:GetPlayer())
end
--hook.Run("CharacterVarChanged", self, key, oldVar, value)
return true
end
})
do
local charMeta = ix.meta.character
function charMeta:ShiftEnergy(energyShift, maxBonusEnergy, bNoNetwork)
maxBonusEnergy = maxBonusEnergy or 0
local newEnergy = self:GetEnergy()
local maxEnergy = 100 + maxBonusEnergy
if (energyShift > 0) then
if (newEnergy >= maxEnergy) then
return false
end
newEnergy = math.min(newEnergy + energyShift, maxEnergy)
else
newEnergy = newEnergy + energyShift
end
return self:SetEnergy(newEnergy, energyBonusMax, bNoNetwork)
end
end