local m_vecVelocity = client.GetNetvar("DT_BasePlayer", "m_vecVelocity[0]")
local m_iHealth = client.GetNetvar("DT_BasePlayer", "m_iHealth")
local m_fFlags = client.GetNetvar("DT_BasePlayer", "m_fFlags")
local m_bPinPulled = client.GetNetvar("DT_BaseCSGrenade", "m_bPinPulled")
local m_fThrowTime = client.GetNetvar("DT_BaseCSGrenade", "m_fThrowTime")
ui.Checkbox("enable", "en", false)
ui.Checkbox("inverter", "in", false)
--ui.SliderInt("Mainsides", "mainside", -360, 360, 21)
ui.SliderInt("sides", "side", -360, 360, 174)
ui.SliderInt("angle", "ang", -180, 180, 73)
ui.SliderInt("angle2", "ang2", -180, 180, -108)
ui.SliderInt("lag", "la", 0, 50, 4)
ui.SliderInt("lag2", "la2", 0, 50, 9)
ui.SliderInt("IN_sides", "iside", -360, 360, 174)
ui.SliderInt("IN_lag", "ila", 0, 50, 9)
ui.SliderInt("IN_lag2", "ila2", 0, 50,4)
ui.SliderInt("IN_angle", "iang", -180, 180, 108)
ui.SliderInt("IN_angle2", "iang2", -180, 180, 85)
function hasbit(x, p)
return x % (p + p) >= p
end
local g_inverse = false
local clicked = false
local pressed = false
local l = 1
local function handle_clicks()
if pressed then clicked = false end
if client.IsKeyPressed(0x46) then if not pressed then clicked = true end pressed = true -- кнопка свапа 0x46 это (f) client.IsKeyPressed(0x46) брать кнопки из https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
else pressed = false clicked = false end
end
local function aa(UserCmd)
handle_clicks()
local choked = clientstate.GetChokedCommands()
local localPlayer = entitylist.GetLocalPlayer()
if not localPlayer:IsValidPtr() then return end
if localPlayer:GetPropInt(m_iHealth) < 1 then return end
local weapon = localPlayer:GetWeapon()
if not weapon:IsValidPtr() then return end
if weapon:IsGrenade() then
local throwTime = weapon:GetPropFloat(m_fThrowTime)
if not weapon:GetPropBool(m_bPinPulled) then
if throwTime > 0 then
return
end
end
if hasbit(cmd.buttons, 1) or hasbit(cmd.buttons, 2048) then
if throwTime > 0 then
return
end
end
end
if clicked then
g_inverse = not g_inverse
end
if hasbit(UserCmd.buttons, 32) then
return
end
if hasbit(UserCmd.buttons, 1) then
return
end
---UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("mainside")
if not ui.GetBool("in") then
if g_inverse then
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("side")
else
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iside")
end
else
if l == 1 then
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("side")
else
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iside")
end
end
UserCmd.viewangles.pitch = 80
if ui.GetBool("en") then
if client.IsKeyPressed(0x54) then
if choked<=1 then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + ui.GetInt("ang")
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + ui.GetInt("ang2")
end
else
if not ui.GetBool("in") then
if g_inverse then
if choked<= ui.GetInt("la") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("ang")
else
if choked<= ui.GetInt("la2") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("ang2")
end
end
else
if choked<= ui.GetInt("ila") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iang")
else
if choked<= ui.GetInt("ila2") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iang2")
end
end
end
else
if l == 1 then
if choked<= ui.GetInt("la") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("ang")
else
if choked<= ui.GetInt("la2") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("ang2")
end
end
else
if choked<= ui.GetInt("ila") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw + 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iang")
else
if choked<= ui.GetInt("ila2") then
client.SetSendPacket(false)
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - 180
UserCmd.viewangles.yaw = UserCmd.viewangles.yaw - ui.GetInt("iang2")
end
end
end
end
end
end
if l == 1 then l = 2 else l = 1 end
end
client.RegisterCallback("CreateMovement", aa)