add glow (wallhack)
This commit is contained in:
parent
b37b4de2f7
commit
bdbecc758c
1 changed files with 58 additions and 2 deletions
60
main.py
60
main.py
|
@ -22,7 +22,12 @@ class Hack():
|
||||||
serial_data = loads(hazedumper_data.text)
|
serial_data = loads(hazedumper_data.text)
|
||||||
|
|
||||||
return serial_data["signatures"] | serial_data["netvars"] | {
|
return serial_data["signatures"] | serial_data["netvars"] | {
|
||||||
"entity_size": 0x10
|
"entity_size": 0x10,
|
||||||
|
"glow_obj_size": 0x38,
|
||||||
|
"glow_R": 0x8,
|
||||||
|
"glow_G": 0xC,
|
||||||
|
"glow_B": 0x10,
|
||||||
|
"glow_A": 0x14
|
||||||
}
|
}
|
||||||
|
|
||||||
def _find_process(self, verbose: bool = False) -> Pymem:
|
def _find_process(self, verbose: bool = False) -> Pymem:
|
||||||
|
@ -134,11 +139,12 @@ class Cheat(Hack):
|
||||||
local_team = self.find_uint(local_player, offset["m_iTeamNum"])
|
local_team = self.find_uint(local_player, offset["m_iTeamNum"])
|
||||||
|
|
||||||
def cheat():
|
def cheat():
|
||||||
# Show ennemies
|
# Loop all entities
|
||||||
for i in range(1, 64): # 0 is world
|
for i in range(1, 64): # 0 is world
|
||||||
entity = mem.read_uint(
|
entity = mem.read_uint(
|
||||||
client + offset["dwEntityList"] + i * offset["entity_size"])
|
client + offset["dwEntityList"] + i * offset["entity_size"])
|
||||||
|
|
||||||
|
# Ignore if entity doesn't exist
|
||||||
if not entity:
|
if not entity:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -154,6 +160,56 @@ class Cheat(Hack):
|
||||||
|
|
||||||
self.hack_loop(cheat)
|
self.hack_loop(cheat)
|
||||||
|
|
||||||
|
def glow(self) -> None:
|
||||||
|
# Aliases
|
||||||
|
mem = self.pm
|
||||||
|
offset = self.offsets
|
||||||
|
|
||||||
|
# Get module address
|
||||||
|
client = self.find_module("client")
|
||||||
|
|
||||||
|
# Get local player
|
||||||
|
local_player = self.find_uint(client, offset["dwLocalPlayer"])
|
||||||
|
|
||||||
|
# Get local team
|
||||||
|
local_team = self.find_uint(local_player, offset["m_iTeamNum"])
|
||||||
|
|
||||||
|
# Get glow object manager
|
||||||
|
glow_obj_manager = self.find_uint(
|
||||||
|
client, offset["dwGlowObjectManager"])
|
||||||
|
|
||||||
|
def cheat():
|
||||||
|
# Loop all entities
|
||||||
|
for i in range(1, 64): # 0 is world
|
||||||
|
entity = mem.read_uint(
|
||||||
|
client + offset["dwEntityList"] + i * offset["entity_size"])
|
||||||
|
|
||||||
|
# Ignore if entity doesn't exist
|
||||||
|
if not entity:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Ignore allies
|
||||||
|
if mem.read_uint(entity + offset["m_iTeamNum"]) == local_team:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Space between values
|
||||||
|
i = mem.read_int(
|
||||||
|
entity + offset["m_iGlowIndex"]) * offset["glow_obj_size"]
|
||||||
|
|
||||||
|
# Change color glow
|
||||||
|
mem.write_float(glow_obj_manager + i + offset["glow_R"], 1.)
|
||||||
|
mem.write_float(glow_obj_manager + i + offset["glow_G"], 0.)
|
||||||
|
mem.write_float(glow_obj_manager + i + offset["glow_B"], 0.)
|
||||||
|
mem.write_float(glow_obj_manager + i + offset["glow_A"], 1.)
|
||||||
|
|
||||||
|
# Render when not visible
|
||||||
|
mem.write_bool(glow_obj_manager + i + 0x27, True)
|
||||||
|
|
||||||
|
# Render when visible
|
||||||
|
mem.write_bool(glow_obj_manager + i + 0x28, True)
|
||||||
|
|
||||||
|
self.hack_loop(cheat)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Cheat
|
# Cheat
|
||||||
|
|
Reference in a new issue