Files
wnsrc/gamemodes/sandbox/entities/weapons/gmod_tool/stools/lvshealthshieldeditor.lua

128 lines
3.3 KiB
Lua
Raw Normal View History

2024-08-05 18:40:29 +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/
--]]
TOOL.Category = "LVS"
TOOL.Name = "#tool.lvshealthshieldeditor.name"
TOOL.Command = nil
TOOL.ConfigName = ""
TOOL.ClientConVar[ "maxshield" ] = 0
TOOL.ClientConVar[ "maxhealth" ] = 5000
if CLIENT then
language.Add( "tool.lvshealthshieldeditor.name", "Max Health & Shield Editor" )
language.Add( "tool.lvshealthshieldeditor.desc", "A tool used to edit Max Health & Shield on LVS-Vehicles" )
language.Add( "tool.lvshealthshieldeditor.0", "Left click on a LVS-Vehicle to set Max Health, Right click to set Max Shield, Reload to reset." )
language.Add( "tool.lvshealthshieldeditor.1", "Left click on a LVS-Vehicle to set Max Health, Right click to set Max Shield, Reload to reset." )
language.Add( "tool.lvshealthshieldeditor.maxshield", "Max Shield" )
language.Add( "tool.lvshealthshieldeditor.maxhealth", "Max Health" )
end
function TOOL:LeftClick( trace )
local ent = trace.Entity
if not IsValid( ent ) then return false end
if not ent.LVS and not ent.LFS then return end
if not ent.OGMaxHealth then
ent.OGMaxHealth = ent.MaxHealth
end
ent.MaxHealth = self:GetClientNumber( "maxhealth" )
ent:SetHP( ent.MaxHealth )
return true
end
function TOOL:RightClick( trace )
local ent = trace.Entity
if not IsValid( ent ) then return false end
if not ent.LVS and not ent.LFS then return end
if not ent.OGMaxShield then
ent.OGMaxShield = ent.MaxShield
end
ent.MaxShield = self:GetClientNumber( "maxshield" )
ent:SetShield( ent.MaxShield )
return true
end
function TOOL:Reload( trace )
local ent = trace.Entity
if not IsValid( ent ) then return false end
if not ent.LVS and not ent.LFS then return end
if ent.OGMaxHealth then
ent.MaxHealth = ent.OGMaxHealth
end
if ent.OGMaxShield then
ent.MaxShield = ent.OGMaxShield
end
ent:SetHP( ent.MaxHealth )
ent:SetShield( ent.MaxShield )
return true
end
function TOOL:Think()
if SERVER then return end
local ply = LocalPlayer()
local tr = ply:GetEyeTrace()
local ent = tr.Entity
if not IsValid( ent ) then return end
if not ent.LVS and not ent.LFS then return end
local Text = "Health: "..tostring( math.Round( ent:GetHP(), 0 ) ).."/"..tostring( ent.MaxHealth )
if ent:GetShield() > 0 then
Text = Text.."\nShield: "..tostring( math.Round( ent:GetShield(), 0 ) ).."/"..tostring( ent.MaxShield )
end
AddWorldTip( ent:EntIndex(), Text, SysTime() + 0.05, ent:GetPos(), ent )
end
function TOOL.BuildCPanel( panel )
panel:AddControl( "Header", { Text = "#tool.lvshealthshieldeditor.name", Description = "#tool.lvshealthshieldeditor.desc" } )
panel:AddControl( "Slider",
{
Label = "#tool.lvshealthshieldeditor.maxhealth",
Type = "Int",
Min = "1",
Max = "50000",
Command = "lvshealthshieldeditor_maxhealth",
Help = false
})
panel:AddControl( "Slider",
{
Label = "#tool.lvshealthshieldeditor.maxshield",
Type = "Int",
Min = "0",
Max = "50000",
Command = "lvshealthshieldeditor_maxshield",
Help = false
})
panel:AddControl( "Label", { Text = "NOTE: Value in Edit-Properties menu will still be the same, because they can not be updated after the vehicle is spawned!" } )
end