WIP: add no_recoil

This commit is contained in:
Mylloon 2023-03-30 15:55:36 +02:00
parent eabeb3d7d3
commit c947570ddb
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

68
main.py
View file

@ -267,6 +267,74 @@ class Cheat(Hack):
self.hack_loop(cheat)
def no_recoil(self) -> None:
# Aliases
mem = self.pm
offset = self.offsets
# Get module addresses
client = self.find_module("client")
engine = self.find_module("engine")
# Get local player
local_player = self.find_uint(client, offset["dwLocalPlayer"])
old_punch_x = 0.
old_punch_y = 0.
def cheat():
# TODO: Reduce read/write call
# Check if player is shooting
if mem.read_int(local_player + offset["m_iShotsFired"]):
client_state = mem.read_uint(engine + offset["dwClientState"])
# 4 = offset of integer
# view angle
view_angles_x = mem.read_float(
client_state + offset["dwClientState_ViewAngles"])
view_angles_y = mem.read_float(
client_state + offset["dwClientState_ViewAngles"] + 4)
server_mult = 2.
# recoil
aim_punch_x = mem.read_float(
client_state + offset["m_aimPunchAngle"]) * server_mult
aim_punch_y = mem.read_float(
client_state + offset["m_aimPunchAngle"] + 4) * server_mult
# New angles
new_angle_x = view_angles_x + old_punch_x - aim_punch_x
new_angle_y = view_angles_y + old_punch_y - aim_punch_y
# Sanity check
if new_angle_x > 89.:
new_angle_x = 89.
if new_angle_x < -89.:
new_angle_x = -89
while (new_angle_y > 180.):
new_angle_y -= 360.
while (new_angle_y < -180.):
new_angle_y += 360.
# Cancel recoil
mem.write_float(
client_state + offset["dwClientState_ViewAngles"], new_angle_x)
mem.write_float(
client_state + offset["dwClientState_ViewAngles"] + 4, new_angle_y)
old_punch_x = aim_punch_x
old_punch_y = aim_punch_y
else:
# Not spraying
old_punch_x = 0.
old_punch_y = 0.
self.hack_loop(cheat)
if __name__ == "__main__":
# Cheat