2023-03-31 18:52:22 +02:00
|
|
|
from hack import Hack
|
2023-03-31 21:58:07 +02:00
|
|
|
from utils import Color4f
|
2023-03-31 18:52:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
class Glow(Hack):
|
|
|
|
def __init__(self) -> None:
|
|
|
|
super().__init__()
|
|
|
|
|
2023-03-31 21:58:07 +02:00
|
|
|
self.__color = Color4f(1., 0., 0., .8)
|
|
|
|
|
2023-03-31 18:52:22 +02:00
|
|
|
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 glow object manager
|
|
|
|
glow_obj_manager = self.find_uint(
|
|
|
|
client, offset["dwGlowObjectManager"])
|
|
|
|
|
|
|
|
def cheat():
|
|
|
|
# Loop all entities
|
|
|
|
for i in range(1, 32): # 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
|
2023-03-31 18:56:02 +02:00
|
|
|
if mem.read_int(entity + offset["m_iTeamNum"]) == mem.read_int(local_player + offset["m_iTeamNum"]):
|
2023-03-31 18:52:22 +02:00
|
|
|
continue
|
|
|
|
|
|
|
|
# Ignore dormant
|
|
|
|
if mem.read_bool(entity + offset["m_bDormant"]):
|
|
|
|
continue
|
|
|
|
|
|
|
|
# Check if ennemy is alive
|
|
|
|
if mem.read_int(entity + offset["m_lifeState"]):
|
|
|
|
continue
|
|
|
|
|
|
|
|
# Space between values
|
|
|
|
i = mem.read_int(
|
|
|
|
entity + offset["m_iGlowIndex"]) * offset["glow_obj_size"]
|
|
|
|
|
|
|
|
# Change color glow
|
2023-03-31 21:58:07 +02:00
|
|
|
if self.__color.r > 0.:
|
|
|
|
mem.write_float(glow_obj_manager + i +
|
|
|
|
offset["glow_R"], self.__color.r)
|
|
|
|
if self.__color.g > 0.:
|
|
|
|
mem.write_float(glow_obj_manager + i +
|
|
|
|
offset["glow_G"], self.__color.g)
|
|
|
|
if self.__color.b > 0.:
|
|
|
|
mem.write_float(glow_obj_manager + i +
|
|
|
|
offset["glow_B"], self.__color.b)
|
|
|
|
if self.__color.a > 0.:
|
|
|
|
mem.write_float(glow_obj_manager + i +
|
|
|
|
offset["glow_A"], self.__color.a)
|
2023-03-31 18:52:22 +02:00
|
|
|
|
|
|
|
# Render when not visible
|
|
|
|
mem.write_bool(glow_obj_manager + i + offset["GOM_wall"], True)
|
|
|
|
|
|
|
|
# Render when visible
|
|
|
|
mem.write_bool(glow_obj_manager + i +
|
|
|
|
offset["GOM_visible"], True)
|
|
|
|
|
|
|
|
self.hack_loop(cheat)
|