local ds = info.fatality.desync
table.len = function(t)
local i = 0; for _ in pairs(t) do i = i + 1; end
; return i;
end
local kbv = function(tbl, value)
for key, val in pairs(tbl) do
if val.identifier == value then
return key
end
end
return nil
end
local infotab = {
font = {},
render = {
{
identifier = "script",
text = "# Script.lua",
color = render.color("#FFFFFF")
},
{
identifier = "username",
text = "> username: username",
color = render.color("#FFFFFF")
},
{
identifier = "version",
text = "> version: stable",
color = render.color("#BFE3B4")
},
{
identifier = "playerinfo",
text = "> player info: ",
color = render.color("#CBC3E3")
},
{
identifier = "desync",
text = "> desync side: desync amount:",
color = render.color("#ABD7EB")
}
}
}
local get_state = function ()
local ent = entities.get_entity(engine.get_local_player())
local air = ent:get_prop("m_hGroundEntity") == -1
local slowwalk = info.fatality.in_slowwalk
local x = ent:get_prop("m_vecVelocity[0]")
local y = ent:get_prop("m_vecVelocity[1]")
local z = ent:get_prop("m_vecVelocity[2]")
local speed = math.sqrt(x ^ 2 + y ^ 2 + z ^ 2)
if air then
return "AIR"
elseif slowwalk and speed > 5 then
return "SLOWWALK"
elseif speed > 5 then
return "MOVING"
end
return "STANDING"
end
infotab.font.size = 11
infotab.font.obj = render.create_font("verdana.ttf", infotab.font.size, render.font_flag_outline)
local ss = {}
ss.x, ss.y = render.get_screen_size()
function on_paint()
local lp = entities.get_entity(engine.get_local_player())
if not lp then
return;
end
infotab.render[kbv(infotab.render, "playerinfo")].text = "> player info: "..get_state()
infotab.render[kbv(infotab.render, "desync")].text = "> desync amount: "..math.floor(ds*58+.5)
local indent = 0
for index, value in pairs(infotab.render) do
render.text(
infotab.font.obj,
5,
ss.y / 2 - (table.len(infotab.render) / 2 - indent) * infotab.font.size,
value.text,
value.color
)
indent = indent + 1
end
end
function on_run_command(cmd)
ds = info.fatality.desync
end