This repository has been archived on 2023-09-02. You can view files and clone it, but cannot push or open issues or pull requests.
csh/cheats/glow.py

83 lines
2.7 KiB
Python
Raw Permalink Normal View History

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):
2023-04-01 16:11:56 +02:00
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
2023-03-31 18:52:22 +02:00
2023-05-05 16:04:06 +02:00
self.__color = Color4f(1.0, 0.0, 0.0, 0.8)
2023-03-31 21:58:07 +02:00
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
2023-05-05 16:04:06 +02:00
glow_obj_manager = self.find_uint(client, offset["dwGlowObjectManager"])
2023-03-31 18:52:22 +02:00
def cheat():
# Loop all entities
for i in range(1, 32): # 0 is world
2023-05-05 16:04:06 +02:00
entity = int(
mem.read_uint(
client + offset["dwEntityList"] + i * offset["entity_size"]
)
)
2023-03-31 18:52:22 +02:00
# Ignore if entity doesn't exist
if not entity:
continue
# Ignore allies
2023-05-05 16:04:06 +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
2023-05-05 16:04:06 +02:00
i = (
int(mem.read_int(entity + offset["m_iGlowIndex"]))
* offset["glow_obj_size"]
)
2023-03-31 18:52:22 +02:00
# Change color glow
2023-05-05 16:04:06 +02:00
if self.__color.r > 0.0:
mem.write_float(
glow_obj_manager + i + offset["glow_R"], self.__color.r
)
if self.__color.g > 0.0:
mem.write_float(
glow_obj_manager + i + offset["glow_G"], self.__color.g
)
if self.__color.b > 0.0:
mem.write_float(
glow_obj_manager + i + offset["glow_B"], self.__color.b
)
if self.__color.a > 0.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
2023-05-05 16:04:06 +02:00
mem.write_bool(glow_obj_manager + i + offset["GOM_visible"], True)
2023-03-31 18:52:22 +02:00
self.hack_loop(cheat)