From c3c3399ca094897dee94a63a9f039c1f7438882d Mon Sep 17 00:00:00 2001 From: ALittlePatate <48603993+ALittlePatate@users.noreply.github.com> Date: Wed, 24 Feb 2021 12:50:03 +0100 Subject: [PATCH] Add files via upload --- classes/features_check.py | 291 ++++ classes/features_reads.py | 123 ++ classes/get_netvars.py | 19 + classes/key_listen.py | 42 + classes/last.py | 14 + classes/netvar_manager.py | 110 ++ classes/netvars.json | 2657 +++++++++++++++++++++++++++++++++++++ classes/read_config.py | 55 + classes/read_last.py | 9 + classes/recv_classes.py | 72 + classes/ui.py | 889 +++++++++++++ classes/write_config.py | 66 + 12 files changed, 4347 insertions(+) create mode 100644 classes/features_check.py create mode 100644 classes/features_reads.py create mode 100644 classes/get_netvars.py create mode 100644 classes/key_listen.py create mode 100644 classes/last.py create mode 100644 classes/netvar_manager.py create mode 100644 classes/netvars.json create mode 100644 classes/read_config.py create mode 100644 classes/read_last.py create mode 100644 classes/recv_classes.py create mode 100644 classes/ui.py create mode 100644 classes/write_config.py diff --git a/classes/features_check.py b/classes/features_check.py new file mode 100644 index 0000000..1f7e9da --- /dev/null +++ b/classes/features_check.py @@ -0,0 +1,291 @@ +from multiprocessing import * +import multiprocessing + +import sys, time +import importlib +sys.path.insert(1, "classes/") +from features_reads import read + +sys.path.insert(1, "utils/") +from glow import glow +from chams import chams +from chams_reset import chams_reset +from aimbot import aimbot +from rcs import rcs +from triggerbot import triggerbot +from rapidfire import rapidfire +from silent import silent +from crosshair_hack import crosshair_hack +from thirdperson import thirdperson +from fov import fov +from fov_reset import fov_reset +from hitsound import hitsound +from soundesp import sound_esp +from noflash import noflash +from noflash_reset import noflash_reset +from bhop_rage import bhop_rage +from bhop_legit import bhop_legit +from money import money +from money_reset import money_reset +from radar import radar +from radar_reset import radar_reset +from fake_lag import fake_lag + +class check : + def __init__(self) : + + self.is_running() + + def is_running(self) : + glow_switch = False + chams_switch = False + chams_reset_switch = False + aimbot_switch = False + rcs_switch = False + triggerbot_switch = False + rapidfire_switch = False + silent_aim_switch = False + crosshair_switch = False + thirdperson_switch = False + fov_switch = False + fov_reset_switch = False + hitsound_switch = False + soundesp_switch = False + noflash_switch = False + noflash_reset_switch = False + bhop_rage_switch = False + bhop_legit_switch = False + show_money_switch = False + show_money_reset_switch = False + radar_switch = False + radar_reset_switch = False + fake_lag_switch = False + + while True : + try : + + read() + + + if check.glow_active and glow_switch == False : + multiprocessing.freeze_support() + t_glow = Process(target = glow) + t_glow.start() + glow_switch = True + + elif not check.glow_active and glow_switch == True: + t_glow.terminate() + glow_switch = False + + if check.chams_active and chams_switch == False : + if chams_reset_switch == True : + t_chams_reset.terminate() + chams_reset_switch = False + + multiprocessing.freeze_support() + t_chams = Process(target = chams) + t_chams.start() + chams_switch = True + + elif not check.chams_active and chams_switch == True: + t_chams.terminate() + multiprocessing.freeze_support() + t_chams_reset = Process(target = chams_reset) + t_chams_reset.start() + chams_reset_switch = True + chams_switch = False + + if check.aimbot and aimbot_switch == False : + multiprocessing.freeze_support() + t_aimbot = Process(target = aimbot) + t_aimbot.start() + aimbot_switch = True + + elif not check.aimbot and aimbot_switch == True: + t_aimbot.terminate() + aimbot_switch = False + + if check.rcs and rcs_switch == False : + multiprocessing.freeze_support() + t_rcs = Process(target = rcs) + t_rcs.start() + rcs_switch = True + + elif not check.rcs and rcs_switch == True: + t_rcs.terminate() + rcs_switch = False + + if check.triggerbot and triggerbot_switch == False : + multiprocessing.freeze_support() + t_triggerbot = Process(target = triggerbot) + t_triggerbot.start() + triggerbot_switch = True + + elif not check.triggerbot and triggerbot_switch == True: + t_triggerbot.terminate() + triggerbot_switch = False + + if check.rapid_fire and rapidfire_switch == False : + multiprocessing.freeze_support() + t_rapid_fire = Process(target = rapidfire) + t_rapid_fire.start() + rapidfire_switch = True + + elif not check.rapid_fire and rapidfire_switch == True: + t_rapid_fire.terminate() + rapidfire_switch = False + + if check.silent_aim and silent_aim_switch == False : + multiprocessing.freeze_support() + t_silent_aim = Process(target = silent) + t_silent_aim.start() + silent_aim_switch = True + + elif not check.silent_aim and silent_aim_switch == True: + t_silent_aim.terminate() + silent_aim_switch = False + + if check.crosshair and crosshair_switch == False : + multiprocessing.freeze_support() + t_crosshair = Process(target = crosshair_hack) + t_crosshair.start() + crosshair_switch = True + + elif not check.crosshair and crosshair_switch == True: + t_crosshair.terminate() + crosshair_switch = False + + if check.third_person and thirdperson_switch == False : + multiprocessing.freeze_support() + t_thirdperson = Process(target = thirdperson) + t_thirdperson.start() + thirdperson_switch = True + + elif not check.third_person and thirdperson_switch == True: + t_thirdperson.terminate() + thirdperson_switch = False + + if check.fov and fov_switch == False : + if fov_reset_switch == True : + t_fov_reset.terminate() + fov_reset_switch = False + + multiprocessing.freeze_support() + t_fov = Process(target = fov) + t_fov.start() + fov_switch = True + + elif not check.fov and fov_switch == True: + t_fov.terminate() + multiprocessing.freeze_support() + t_fov_reset = Process(target = fov_reset) + t_fov_reset.start() + fov_reset_switch = True + fov_switch = False + + if check.hitsound and hitsound_switch == False : + multiprocessing.freeze_support() + t_hitsound = Process(target = hitsound) + t_hitsound.start() + hitsound_switch = True + + elif not check.hitsound and hitsound_switch == True: + t_hitsound.terminate() + hitsound_switch = False + + if check.sound_esp and soundesp_switch == False : + multiprocessing.freeze_support() + t_soundesp = Process(target = sound_esp) + t_soundesp.start() + soundesp_switch = True + + elif not check.sound_esp and soundesp_switch == True: + t_soundesp.terminate() + soundesp_switch = False + + if check.no_flash and noflash_switch == False : + if noflash_reset_switch == True : + t_noflash_reset.terminate() + noflash_reset_switch = False + + multiprocessing.freeze_support() + t_noflash = Process(target = noflash) + t_noflash.start() + noflash_switch = True + + elif not check.no_flash and noflash_switch == True: + t_noflash.terminate() + multiprocessing.freeze_support() + t_noflash_reset = Process(target = noflash_reset) + t_noflash_reset.start() + noflash_reset_switch = True + noflash_switch = False + + if check.bhop_rage and bhop_rage_switch == False : + multiprocessing.freeze_support() + t_bhop_rage = Process(target = bhop_rage) + t_bhop_rage.start() + bhop_rage_switch = True + + elif not check.bhop_rage and bhop_rage_switch == True: + t_bhop_rage.terminate() + bhop_rage_switch = False + + if check.bhop_legit and bhop_legit_switch == False : + multiprocessing.freeze_support() + t_bhop_legit = Process(target = bhop_legit) + t_bhop_legit.start() + bhop_legit_switch = True + + elif not check.bhop_legit and bhop_legit_switch == True: + t_bhop_legit.terminate() + bhop_legit_switch = False + + if check.show_money and show_money_switch == False : + if show_money_reset_switch == True : + t_show_money_reset.terminate() + show_money_reset_switch = False + + multiprocessing.freeze_support() + t_show_money = Process(target = money) + t_show_money.start() + show_money_switch = True + + elif not check.show_money and show_money_switch == True: + t_show_money.terminate() + multiprocessing.freeze_support() + t_show_money_reset = Process(target = money_reset) + t_show_money_reset.start() + show_money_reset_switch = True + show_money_switch = False + + if check.radar and radar_switch == False : + if radar_reset_switch == True : + t_radar_reset.terminate() + radar_reset_switch = False + + multiprocessing.freeze_support() + t_radar = Process(target = radar) + t_radar.start() + radar_switch = True + + elif not check.radar and radar_switch == True: + t_radar.terminate() + multiprocessing.freeze_support() + t_radar_reset = Process(target = radar_reset) + t_radar_reset.start() + radar_reset_switch = True + radar_switch = False + + if check.fake_lag and fake_lag_switch == False : + multiprocessing.freeze_support() + t_fake_lag = Process(target = fake_lag) + t_fake_lag.start() + fake_lag_switch = True + + elif not check.fake_lag and fake_lag_switch == True: + t_fake_lag.terminate() + fake_lag_switch = False + + except Exception as e: + print(e) diff --git a/classes/features_reads.py b/classes/features_reads.py new file mode 100644 index 0000000..965bb51 --- /dev/null +++ b/classes/features_reads.py @@ -0,0 +1,123 @@ +from configparser import ConfigParser +import features_check + +class read() : + def __init__(self, *args) : + config = ConfigParser() + + while True : + try : + with open("configs/last/last.txt", "r") as f : + for line in f : + last = line + + config.read('configs/'+last) + + if args : + if args[0] == "glow" : + features_check.check.glow_active = config.getboolean('VISUALS', 'glow_active') + features_check.check.glow_health_based = config.getboolean('VISUALS', 'glow_health_based') + features_check.check.glow_ennemies = config.getboolean('VISUALS', 'glow_ennemies') + features_check.check.ennemies_glow_color = config.get('VISUALS', 'ennemies_glow_color') + features_check.check.glow_allies = config.getboolean('VISUALS', 'glow_allies') + features_check.check.allies_glow_color = config.get('VISUALS', 'allies_glow_color') + return + + elif args[0] == "chams" : + features_check.check.chams_active = config.getboolean('VISUALS', 'chams_active') + features_check.check.chams_health_based = config.getboolean('VISUALS', 'chams_health_based') + features_check.check.chams_ennemies = config.getboolean('VISUALS', 'chams_ennemies') + features_check.check.ennemies_chams_color = config.get('VISUALS', 'ennemies_chams_color') + features_check.check.chams_allies = config.getboolean('VISUALS', 'chams_allies') + features_check.check.allies_chams_color = config.get('VISUALS', 'allies_chams_color') + return + + elif args[0] == "aim" : + features_check.check.aimbot = config.getboolean('AIM', 'aimbot') + features_check.check.aimbot_key = config.get('AIM', 'aimbot_key') + features_check.check.silent_aim = config.getboolean('AIM', 'silent_aim') + features_check.check.silent_aim_key = config.get('AIM', 'silent_aim_key') + features_check.check.crosshair = config.getboolean('AIM', 'crosshair') + return + + elif args[0] == "rcs" : + features_check.check.rcs = config.getboolean('AIM', 'rcs') + features_check.check.rcs_perfect = config.getfloat('AIM', 'rcs_perfect') + + elif args[0] == "triggerbot" : + features_check.check.triggerbot = config.getboolean('AIM', 'triggerbot') + features_check.check.t_delay = config.getfloat('AIM', 't_delay') + features_check.check.triggerbot_key = config.get('AIM', 'triggerbot_key') + + elif args[0] == "rapid fire" : + features_check.check.rapid_fire = config.getboolean('AIM', 'rapid_fire') + features_check.check.rapid_fire_key = config.get('AIM', 'rapid_fire_key') + + elif args[0] == "misc" : + features_check.check.third_person = config.getboolean('MISC', 'third_person') + features_check.check.thirdperson_key = config.get('MISC', 'thirdperson_key') + features_check.check.fov = config.getboolean('MISC', 'fov') + features_check.check.fov_value = config.getfloat('MISC', 'fov_value') + features_check.check.hitsound = config.getboolean('MISC', 'hitsound') + features_check.check.sound = config.get('MISC', 'sound') + features_check.check.sound_esp = config.getboolean('MISC', 'sound_esp') + features_check.check.no_flash = config.getboolean('MISC', 'no_flash') + features_check.check.bhop_rage = config.getboolean('MISC', 'bhop_rage') + features_check.check.bhop_legit = config.getboolean('MISC', 'bhop_legit') + features_check.check.show_money = config.getboolean('MISC', 'show_money') + features_check.check.radar = config.getboolean('MISC', 'radar') + features_check.check.fake_lag = config.getboolean('MISC', 'fake_lag') + features_check.check.fake_lag_value = config.getfloat('MISC', 'fake_lag_value') + + + + #VISUALS + features_check.check.glow_active = config.getboolean('VISUALS', 'glow_active') + features_check.check.glow_health_based = config.getboolean('VISUALS', 'glow_health_based') + features_check.check.glow_ennemies = config.getboolean('VISUALS', 'glow_ennemies') + features_check.check.ennemies_glow_color = config.get('VISUALS', 'ennemies_glow_color') + features_check.check.glow_allies = config.getboolean('VISUALS', 'glow_allies') + features_check.check.allies_glow_color = config.get('VISUALS', 'allies_glow_color') + features_check.check.chams_active = config.getboolean('VISUALS', 'chams_active') + features_check.check.chams_health_based = config.getboolean('VISUALS', 'chams_health_based') + features_check.check.chams_ennemies = config.getboolean('VISUALS', 'chams_ennemies') + features_check.check.ennemies_chams_color = config.get('VISUALS', 'ennemies_chams_color') + features_check.check.chams_allies = config.getboolean('VISUALS', 'chams_allies') + features_check.check.allies_chams_color = config.get('VISUALS', 'allies_chams_color') + + #AIM + features_check.check.aimbot = config.getboolean('AIM', 'aimbot') + features_check.check.aimbot_key = config.get('AIM', 'aimbot_key') + features_check.check.rcs = config.getboolean('AIM', 'rcs') + features_check.check.rcs_perfect = config.getfloat('AIM', 'rcs_perfect') + features_check.check.triggerbot = config.getboolean('AIM', 'triggerbot') + features_check.check.t_delay = config.getfloat('AIM', 't_delay') + features_check.check.triggerbot_key = config.get('AIM', 'triggerbot_key') + features_check.check.rapid_fire = config.getboolean('AIM', 'rapid_fire') + features_check.check.rapid_fire_key = config.get('AIM', 'rapid_fire_key') + features_check.check.silent_aim = config.getboolean('AIM', 'silent_aim') + features_check.check.silent_aim_key = config.get('AIM', 'silent_aim_key') + features_check.check.crosshair = config.getboolean('AIM', 'crosshair') + + #MISC + features_check.check.third_person = config.getboolean('MISC', 'third_person') + features_check.check.thirdperson_key = config.get('MISC', 'thirdperson_key') + features_check.check.fov = config.getboolean('MISC', 'fov') + features_check.check.fov_value = config.getfloat('MISC', 'fov_value') + features_check.check.hitsound = config.getboolean('MISC', 'hitsound') + features_check.check.sound = config.get('MISC', 'sound') + features_check.check.sound_esp = config.getboolean('MISC', 'sound_esp') + features_check.check.no_flash = config.getboolean('MISC', 'no_flash') + features_check.check.bhop_rage = config.getboolean('MISC', 'bhop_rage') + features_check.check.bhop_legit = config.getboolean('MISC', 'bhop_legit') + features_check.check.show_money = config.getboolean('MISC', 'show_money') + features_check.check.radar = config.getboolean('MISC', 'radar') + features_check.check.fake_lag = config.getboolean('MISC', 'fake_lag') + features_check.check.fake_lag_value = config.getfloat('MISC', 'fake_lag_value') + + #SETTINGS + features_check.check.ui_color = config.get('SETTINGS', 'ui_color') + return + + except Exception as e: + pass \ No newline at end of file diff --git a/classes/get_netvars.py b/classes/get_netvars.py new file mode 100644 index 0000000..765f31b --- /dev/null +++ b/classes/get_netvars.py @@ -0,0 +1,19 @@ +from netvar_manager import NetvarsManager +import pymem +import pymem.process + +class get_netvars() : + def __init__(self) : + pm = pymem.Pymem("csgo.exe") + netvars_manager = NetvarsManager(pm) + out_file = "classes/netvars.json" + if out_file: + with open(out_file, 'w+') as fp: + netvars_manager.dump_netvars( + fp, + json_format=out_file.endswith('.json') + ) + else: + netvars_manager.dump_netvars() + + pm.close_process() \ No newline at end of file diff --git a/classes/key_listen.py b/classes/key_listen.py new file mode 100644 index 0000000..d286de4 --- /dev/null +++ b/classes/key_listen.py @@ -0,0 +1,42 @@ +from pynput import mouse +from pynput.keyboard import Key, Listener +from pynput import keyboard +from functools import partial + +class listen : + def clean_listeners(self) : + listen.key_listen.stop() + listen.mouse_listener.stop() + + def on_press_key(self, key) : + listen.key_key = key + listen.clean_listeners(self) + + def on_click(self, x, y, button, pressed) : + listen.button_button = button + listen.clean_listeners(self) + + def key(self) : + listen.key_key = None + listen.button_button = None + + listen.key_listen = keyboard.Listener(on_press=partial(listen.on_press_key, Key)) + listen.key_listen.start() + + listen.mouse_listener = mouse.Listener(on_click=partial(listen.on_click, mouse.Button)) + listen.mouse_listener.start() + + while True : + try : + if listen.key_key : + return listen.key_key + + except : + pass + + try : + if listen.button_button : + return listen.button_button + + except : + pass \ No newline at end of file diff --git a/classes/last.py b/classes/last.py new file mode 100644 index 0000000..fee47dd --- /dev/null +++ b/classes/last.py @@ -0,0 +1,14 @@ +class last : + def read(self) : + with open("configs/last/last.txt", "r") as f : + for line in f : + last = line + + return last + + def write(self, name) : + with open("configs/last/last.txt", "a") as f : + f.seek(0) + f.truncate() + f.write(name) + f.close() \ No newline at end of file diff --git a/classes/netvar_manager.py b/classes/netvar_manager.py new file mode 100644 index 0000000..a0be332 --- /dev/null +++ b/classes/netvar_manager.py @@ -0,0 +1,110 @@ +import re +import sys +import json +from typing import Union +from pymem.process import module_from_name +from recv_classes import ClientClass + + +__all__ = ['NetvarsManager'] + + +class NetvarsManager: + def __init__(self, pm): + """Creates a new NetvarManager and dumps the netvars. + + :param csgo_handle: Handle of the csgo.exe process. + :type csgo_handle: `pymem.Pymem` + """ + client_handle = module_from_name( + pm.process_handle, 'client.dll' + ) + client_bytes = pm.read_bytes( + client_handle.lpBaseOfDll, client_handle.SizeOfImage + ) + world_decal = re.search(rb'DT_TEWorldDecal', client_bytes).start() + world_decal += client_handle.lpBaseOfDll + all_classes = pm.read_int(client_bytes.find( + world_decal.to_bytes(4, 'little') + ) + 0x2B + client_handle.lpBaseOfDll) + self._client_classes = all_classes + self._handle = pm + self._netvars_dict = dict() + self._dump_netvars_internal() + + def get_netvar( + self, + table_name: str, + prop_name: str + ) -> Union[int, None]: + """Returns netvar's offset by the given data. If can't find a netvar + then returns None. + + :param table_name: Name of the table where is a prop placed in. + :param prop_name: Name of the prop you want to get. + :return: Prop's offset. + """ + return self._netvars_dict.get(table_name, dict()).get(prop_name) + + def dump_netvars(self, out_file=sys.stdout, json_format=False) -> None: + """Dumps netvars, in a plain or json format. If you want to save dump + into a file then you should pass a file-like object to `out_file` + argument. + + :param out_file: File (or stdout) where we should save the dump. + :param json_format: If you need to save the dump in a json format. + """ + if json_format: + out_file.write(json.dumps(self._netvars_dict, indent=4)) + return + for table in self._netvars_dict.keys(): + out_file.write(table + '\n') + max_name_len = len(sorted( + self._netvars_dict[table].keys(), reverse=True, + key=lambda x: len(x) + )[0]) + for table_name, prop_offset in self._netvars_dict[table].items(): + out_file.write('\t{0:<{1}} 0x{2:08x}\n'.format( + table_name, max_name_len, prop_offset + )) + + def _dump_table(self, table) -> None: + table_name = table.get_table_name() + for i in range(table.get_max_props()): + prop = table.get_prop(i) + prop_name = prop.get_name() + if prop_name.isnumeric(): # Some shitty prop. + continue + prop_offest = prop.get_offset() + table_existed_data = self._netvars_dict.get(table_name, dict()) + table_existed_data.update({prop_name: prop_offest}) + self._netvars_dict.update( + {table_name: table_existed_data} + ) + try: + data_table = prop.get_data_table() + if not data_table: + continue + except Exception: + continue + else: + try: + self._dump_table(data_table) + except Exception: + continue + + def _dump_netvars_internal(self) -> None: + client_class = ClientClass( + self._handle.read_int(self._client_classes + 0x10), + self._handle + ) + while client_class is not None: + try: + table = client_class.get_table() + table_name = table.get_table_name() + if not table_name: + break + except Exception: + break + self._dump_table(table) + client_class = client_class.get_next_class() \ No newline at end of file diff --git a/classes/netvars.json b/classes/netvars.json new file mode 100644 index 0000000..5066e54 --- /dev/null +++ b/classes/netvars.json @@ -0,0 +1,2657 @@ +{ + "DT_TEWorldDecal": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_nIndex": 28 + }, + "DT_TESpriteSpray": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecDirection": 28, + "m_nModelIndex": 40, + "m_fNoise": 48, + "m_nCount": 52, + "m_nSpeed": 44 + }, + "DT_TESprite": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_nModelIndex": 28, + "m_fScale": 32, + "m_nBrightness": 36 + }, + "DT_TESparks": { + "baseclass": 0, + "m_nMagnitude": 28, + "m_nTrailLength": 32, + "m_vecDir": 36 + }, + "DT_TEParticleSystem": { + "baseclass": 0, + "m_vecOrigin[0]": 16, + "m_vecOrigin[1]": 20, + "m_vecOrigin[2]": 24 + }, + "DT_TESmoke": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_nModelIndex": 28, + "m_fScale": 32, + "m_nFrameRate": 36 + }, + "DT_TEShowLine": { + "baseclass": 0, + "m_vecEnd": 28 + }, + "DT_TEProjectedDecal": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_angRotation": 28, + "m_flDistance": 40, + "m_nIndex": 44 + }, + "DT_FEPlayerDecal": { + "baseclass": 0, + "m_nUniqueID": 2520, + "m_unAccountID": 2524, + "m_unTraceID": 2528, + "m_rtGcTime": 2532, + "m_vecEndPos": 2536, + "m_vecStart": 2548, + "m_vecRight": 2560, + "m_vecNormal": 2572, + "m_nEntity": 2588, + "m_nPlayer": 2584, + "m_nHitbox": 2592, + "m_nTintID": 2596, + "m_flCreationTime": 2600, + "m_nVersion": 2604, + "m_ubSignature": 2605 + }, + "DT_BaseEntity": { + "AnimTimeMustBeFirst": 0, + "m_flSimulationTime": 616, + "m_cellbits": 116, + "m_cellX": 124, + "m_cellY": 128, + "m_cellZ": 132, + "m_vecOrigin": 312, + "m_angRotation": 300, + "m_nModelIndex": 600, + "m_fEffects": 240, + "m_nRenderMode": 603, + "m_nRenderFX": 602, + "m_clrRender": 112, + "m_iTeamNum": 244, + "m_iPendingTeamNum": 248, + "m_CollisionGroup": 1140, + "m_flElasticity": 768, + "m_flShadowCastDistance": 928, + "m_hOwnerEntity": 332, + "m_hEffectEntity": 2456, + "moveparent": 328, + "m_iParentAttachment": 748, + "m_iName": 340, + "movetype": 0, + "movecollide": 0, + "m_Collision": 800, + "m_iTextureFrameIndex": 2444, + "m_bSimulatedEveryTick": 2362, + "m_bAnimatedEveryTick": 2363, + "m_bAlternateSorting": 2364, + "m_bSpotted": 2365, + "m_bSpottedBy": 2366, + "m_bSpottedByMask": 2432, + "m_bIsAutoaimTarget": 96, + "m_fadeMinDist": 756, + "m_fadeMaxDist": 760, + "m_flFadeScale": 764, + "m_nMinCPULevel": 2440, + "m_nMaxCPULevel": 2441, + "m_nMinGPULevel": 2442, + "m_nMaxGPULevel": 2443, + "m_flUseLookAtAngle": 716, + "m_flLastMadeNoiseTime": 32, + "m_flMaxFallVelocity": 220, + "m_bEligibleForScreenHighlight": 2489 + }, + "DT_AnimTimeMustBeFirst": { + "m_flAnimTime": 608 + }, + "DT_CollisionProperty": { + "m_vecMins": 8, + "m_vecMaxs": 20, + "m_nSolidType": 34, + "m_usSolidFlags": 32, + "m_nSurroundType": 42, + "m_triggerBloat": 35, + "m_vecSpecifiedSurroundingMins": 44, + "m_vecSpecifiedSurroundingMaxs": 56 + }, + "DT_TEPlayerDecal": { + "baseclass": 0, + "m_vecOrigin": 20, + "m_vecStart": 32, + "m_vecRight": 44, + "m_nEntity": 56, + "m_nPlayer": 16, + "m_nHitbox": 60 + }, + "DT_TEPhysicsProp": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_angRotation[0]": 28, + "m_angRotation[1]": 32, + "m_angRotation[2]": 36, + "m_vecVelocity": 40, + "m_nModelIndex": 52, + "m_nFlags": 60, + "m_nSkin": 56, + "m_nEffects": 64, + "m_clrRender": 68 + }, + "DT_TEMuzzleFlash": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecAngles": 28, + "m_flScale": 40, + "m_nType": 44 + }, + "DT_TELargeFunnel": { + "baseclass": 0, + "m_nModelIndex": 28, + "m_nReversed": 32 + }, + "DT_TEKillPlayerAttachments": { + "baseclass": 0, + "m_nPlayer": 16 + }, + "DT_TEImpact": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecNormal": 28, + "m_iType": 40, + "m_ucFlags": 44 + }, + "DT_TEGlowSprite": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_nModelIndex": 28, + "m_fScale": 32, + "m_fLife": 36, + "m_nBrightness": 40 + }, + "DT_TEShatterSurface": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecAngles": 28, + "m_vecForce": 40, + "m_vecForcePos": 52, + "m_flWidth": 64, + "m_flHeight": 68, + "m_flShardSize": 72, + "m_nSurfaceType": 80, + "m_uchFrontColor[0]": 84, + "m_uchFrontColor[1]": 85, + "m_uchFrontColor[2]": 86, + "m_uchBackColor[0]": 87, + "m_uchBackColor[1]": 88, + "m_uchBackColor[2]": 89 + }, + "DT_TEFootprintDecal": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecDirection": 28, + "m_nEntity": 52, + "m_nIndex": 56, + "m_chMaterialType": 60 + }, + "DT_TEFizz": { + "baseclass": 0, + "m_nEntity": 16, + "m_nModelIndex": 20, + "m_nDensity": 24, + "m_nCurrent": 28 + }, + "DT_TEExplosion": { + "baseclass": 0, + "m_nModelIndex": 28, + "m_fScale": 32, + "m_nFrameRate": 36, + "m_nFlags": 40, + "m_vecNormal": 44, + "m_chMaterialType": 56, + "m_nRadius": 60, + "m_nMagnitude": 64 + }, + "DT_TEEnergySplash": { + "m_vecPos": 16, + "m_vecDir": 28, + "m_bExplosive": 40 + }, + "DT_TEEffectDispatch": { + "baseclass": 0, + "m_EffectData": 16 + }, + "DT_EffectData": { + "m_vOrigin.x": 0, + "m_vOrigin.y": 4, + "m_vOrigin.z": 8, + "m_vStart.x": 12, + "m_vStart.y": 16, + "m_vStart.z": 20, + "m_vAngles": 36, + "m_vNormal": 24, + "m_fFlags": 48, + "m_flMagnitude": 64, + "m_flScale": 60, + "m_nAttachmentIndex": 72, + "m_nSurfaceProp": 76, + "m_iEffectName": 100, + "m_nMaterial": 80, + "m_nDamageType": 84, + "m_nHitBox": 88, + "entindex": 0, + "m_nOtherEntIndex": 92, + "m_nColor": 96, + "m_flRadius": 68, + "m_bPositionsAreRelativeToEntity": 97 + }, + "DT_TEDynamicLight": { + "baseclass": 0, + "m_vecOrigin": 16, + "r": 32, + "g": 36, + "b": 40, + "exponent": 44, + "m_fRadius": 28, + "m_fTime": 48, + "m_fDecay": 52 + }, + "DT_TEDecal": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecStart": 28, + "m_nEntity": 40, + "m_nHitbox": 44, + "m_nIndex": 48 + }, + "DT_TEClientProjectile": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_vecVelocity": 28, + "m_nModelIndex": 40, + "m_nLifeTime": 44, + "m_hOwner": 48 + }, + "DT_TEBubbleTrail": { + "baseclass": 0, + "m_vecMins": 16, + "m_vecMaxs": 28, + "m_nModelIndex": 44, + "m_flWaterZ": 40, + "m_nCount": 48, + "m_fSpeed": 52 + }, + "DT_TEBubbles": { + "baseclass": 0, + "m_vecMins": 16, + "m_vecMaxs": 28, + "m_nModelIndex": 44, + "m_fHeight": 40, + "m_nCount": 48, + "m_fSpeed": 52 + }, + "DT_TEBSPDecal": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_nEntity": 28, + "m_nIndex": 32 + }, + "DT_TEBreakModel": { + "baseclass": 0, + "m_vecOrigin": 16, + "m_angRotation[0]": 28, + "m_angRotation[1]": 32, + "m_angRotation[2]": 36, + "m_vecSize": 40, + "m_vecVelocity": 52, + "m_nModelIndex": 68, + "m_nRandomization": 64, + "m_nCount": 72, + "m_fTime": 76, + "m_nFlags": 80 + }, + "DT_TEBloodStream": { + "baseclass": 0, + "m_vecDirection": 28, + "r": 40, + "g": 44, + "b": 48, + "a": 52, + "m_nAmount": 56 + }, + "DT_TEBloodSprite": { + "m_vecOrigin": 16, + "m_vecDirection": 28, + "r": 40, + "g": 44, + "b": 48, + "a": 52, + "m_nSprayModel": 60, + "m_nDropModel": 56, + "m_nSize": 64 + }, + "DT_TEBeamSpline": { + "m_nPoints": 208, + "m_vecPoints[0]": 16, + "m_vecPoints": 0 + }, + "DT_TEBeamRingPoint": { + "baseclass": 0, + "m_vecCenter": 76, + "m_flStartRadius": 88, + "m_flEndRadius": 92 + }, + "DT_BaseBeam": { + "m_nModelIndex": 16, + "m_nHaloIndex": 20, + "m_nStartFrame": 24, + "m_nFrameRate": 28, + "m_fLife": 32, + "m_fWidth": 36, + "m_fEndWidth": 40, + "m_nFadeLength": 44, + "m_fAmplitude": 48, + "m_nSpeed": 68, + "r": 52, + "g": 56, + "b": 60, + "a": 64, + "m_nFlags": 72 + }, + "DT_TEBeamRing": { + "baseclass": 0, + "m_nStartEntity": 76, + "m_nEndEntity": 80 + }, + "DT_TEBeamPoints": { + "baseclass": 0, + "m_vecStartPoint": 76, + "m_vecEndPoint": 88 + }, + "DT_TEBeamLaser": { + "baseclass": 0, + "m_nStartEntity": 76, + "m_nEndEntity": 80 + }, + "DT_TEBeamFollow": { + "baseclass": 0, + "m_iEntIndex": 76 + }, + "DT_TEBeamEnts": { + "baseclass": 0, + "m_nStartEntity": 76, + "m_nEndEntity": 80 + }, + "DT_TEBeamEntPoint": { + "baseclass": 0, + "m_nStartEntity": 76, + "m_nEndEntity": 80, + "m_vecStartPoint": 84, + "m_vecEndPoint": 96 + }, + "DT_TEArmorRicochet": { + "baseclass": 0 + }, + "DT_TEMetalSparks": { + "m_vecPos": 16, + "m_vecDir": 28 + }, + "DT_SteamJet": { + "baseclass": 0, + "m_SpreadSpeed": 2756, + "m_Speed": 2760, + "m_StartSize": 2764, + "m_EndSize": 2768, + "m_Rate": 2772, + "m_JetLength": 2776, + "m_bEmit": 2780, + "m_bFaceLeft": 2788, + "m_nType": 2784, + "m_spawnflags": 2792, + "m_flRollSpeed": 2796 + }, + "DT_BaseParticleEntity": { + "baseclass": 0 + }, + "DT_SmokeStack": { + "baseclass": 0, + "m_SpreadSpeed": 2836, + "m_Speed": 2840, + "m_StartSize": 2844, + "m_EndSize": 2848, + "m_Rate": 2852, + "m_JetLength": 2856, + "m_bEmit": 2860, + "m_flBaseSpread": 2864, + "m_flTwist": 2948, + "m_flRollSpeed": 3008, + "m_iMaterialModel": 2952, + "m_AmbientLight.m_vPos": 2868, + "m_AmbientLight.m_vColor": 2880, + "m_AmbientLight.m_flIntensity": 2892, + "m_DirLight.m_vPos": 2896, + "m_DirLight.m_vColor": 2908, + "m_DirLight.m_flIntensity": 2920, + "m_vWind": 2936 + }, + "DT_DustTrail": { + "baseclass": 0, + "m_SpawnRate": 2756, + "m_Color": 2760, + "m_ParticleLifetime": 2776, + "m_StopEmitTime": 2784, + "m_MinSpeed": 2788, + "m_MaxSpeed": 2792, + "m_MinDirectedSpeed": 2796, + "m_MaxDirectedSpeed": 2800, + "m_StartSize": 2804, + "m_EndSize": 2808, + "m_SpawnRadius": 2812, + "m_bEmit": 2828, + "m_Opacity": 2772 + }, + "DT_FireTrail": { + "baseclass": 0, + "m_nAttachment": 2756, + "m_flLifetime": 2760 + }, + "DT_SporeTrail": { + "baseclass": 0, + "m_flSpawnRate": 2764, + "m_vecEndColor": 2752, + "m_flParticleLifetime": 2768, + "m_flStartSize": 2772, + "m_flEndSize": 2776, + "m_flSpawnRadius": 2780, + "m_bEmit": 2796 + }, + "DT_SporeExplosion": { + "baseclass": 0, + "m_flSpawnRate": 2756, + "m_flParticleLifetime": 2760, + "m_flStartSize": 2764, + "m_flEndSize": 2768, + "m_flSpawnRadius": 2772, + "m_bEmit": 2780, + "m_bDontRemove": 2781 + }, + "DT_RocketTrail": { + "baseclass": 0, + "m_SpawnRate": 2756, + "m_StartColor": 2760, + "m_EndColor": 2772, + "m_ParticleLifetime": 2788, + "m_StopEmitTime": 2792, + "m_MinSpeed": 2796, + "m_MaxSpeed": 2800, + "m_StartSize": 2804, + "m_EndSize": 2808, + "m_SpawnRadius": 2812, + "m_bEmit": 2828, + "m_nAttachment": 2832, + "m_Opacity": 2784, + "m_bDamaged": 2829, + "m_flFlareScale": 2848 + }, + "DT_SmokeTrail": { + "baseclass": 0, + "m_SpawnRate": 2756, + "m_StartColor": 2760, + "m_EndColor": 2772, + "m_ParticleLifetime": 2788, + "m_StopEmitTime": 2792, + "m_MinSpeed": 2796, + "m_MaxSpeed": 2800, + "m_MinDirectedSpeed": 2804, + "m_MaxDirectedSpeed": 2808, + "m_StartSize": 2812, + "m_EndSize": 2816, + "m_SpawnRadius": 2820, + "m_bEmit": 2836, + "m_nAttachment": 2840, + "m_Opacity": 2784 + }, + "DT_PropVehicleDriveable": { + "baseclass": 0, + "m_hPlayer": 10628, + "m_nSpeed": 10632, + "m_nRPM": 10636, + "m_flThrottle": 10640, + "m_nBoostTimeLeft": 10644, + "m_nHasBoost": 10648, + "m_nScannerDisabledWeapons": 10652, + "m_nScannerDisabledVehicle": 10656, + "m_bEnterAnimOn": 10688, + "m_bExitAnimOn": 10689, + "m_bUnableToFire": 10765, + "m_vecEyeExitEndpoint": 10752, + "m_bHasGun": 10764, + "m_vecGunCrosshair": 10696 + }, + "DT_BaseAnimating": { + "baseclass": 0, + "m_nSequence": 10428, + "m_nForceBone": 9868, + "m_vecForce": 9856, + "m_nSkin": 2588, + "m_nBody": 2592, + "m_nHitboxSet": 2556, + "m_flModelScale": 10056, + "m_flPoseParameter": 10100, + "m_flPlaybackRate": 2584, + "m_flEncodedController": 2644, + "m_bClientSideAnimation": 10396, + "m_bClientSideFrameReset": 9920, + "m_bClientSideRagdoll": 633, + "m_nNewSequenceParity": 2628, + "m_nResetEventsParity": 2632, + "m_nMuzzleFlashParity": 2660, + "m_hLightingOrigin": 10564, + "serveranimdata": 0, + "m_flFrozen": 9976, + "m_ScaleType": 10060, + "m_bSuppressAnimSounds": 10570, + "m_nHighlightColorR": 2616, + "m_nHighlightColorG": 2620, + "m_nHighlightColorB": 2624 + }, + "DT_ServerAnimationData": { + "m_flCycle": 2580 + }, + "DT_ParticleSmokeGrenade": { + "baseclass": 0, + "m_flSpawnTime": 2772, + "m_FadeStartTime": 2776, + "m_FadeEndTime": 2780, + "m_MinColor": 2788, + "m_MaxColor": 2800, + "m_CurrentStage": 2756 + }, + "DT_ParticleFire": { + "m_vOrigin": 2764, + "m_vDirection": 2776 + }, + "DT_MovieExplosion": { + "baseclass": 0 + }, + "DT_TEGaussExplosion": { + "baseclass": 0, + "m_nType": 28, + "m_vecDirection": 32 + }, + "DT_QuadraticBeam": { + "baseclass": 0, + "m_targetPosition": 2520, + "m_controlPosition": 2532, + "m_scrollRate": 2544, + "m_flWidth": 2548 + }, + "DT_Embers": { + "baseclass": 0, + "m_nDensity": 2520, + "m_nLifetime": 2524, + "m_nSpeed": 2528, + "m_bEmit": 2532 + }, + "DT_EnvWind": { + "baseclass": 0, + "m_EnvWindShared": 2520 + }, + "DT_EnvWindShared": { + "m_iMinWind": 12, + "m_iMaxWind": 16, + "m_iMinGust": 24, + "m_iMaxGust": 28, + "m_flMinGustDelay": 32, + "m_flMaxGustDelay": 36, + "m_iGustDirChange": 44, + "m_iWindSeed": 8, + "m_iInitialWindDir": 108, + "m_flInitialWindSpeed": 112, + "m_flStartTime": 4, + "m_flGustDuration": 40 + }, + "DT_Precipitation": { + "baseclass": 0, + "m_nPrecipType": 2560 + }, + "DT_PrecipitationBlocker": { + "baseclass": 0 + }, + "DT_NextBot": { + "baseclass": 0 + }, + "DT_BaseCombatCharacter": { + "baseclass": 0, + "bcc_localdata": 0, + "bcc_nonlocaldata": 0, + "m_LastHitGroup": 11636, + "m_hActiveWeapon": 12024, + "m_flTimeOfLastInjury": 12028, + "m_nRelativeDirectionOfLastInjury": 12032, + "m_hMyWeapons": 11768, + "m_hMyWearables": 12036 + }, + "DT_BaseFlex": { + "baseclass": 0, + "m_flexWeight": 10792, + "m_blinktoggle": 11220, + "m_viewtarget": 10736 + }, + "DT_BaseAnimatingOverlay": { + "baseclass": 0, + "overlay_vars": 0 + }, + "DT_OverlayVars": { + "m_AnimOverlay": 0 + }, + "_ST_m_AnimOverlay_15": { + "lengthproxy": 0 + }, + "_LPT_m_AnimOverlay_15": { + "lengthprop15": 0 + }, + "DT_BCCLocalPlayerExclusive": { + "m_flNextAttack": 11632 + }, + "DT_BCCNonLocalPlayerExclusive": { + "m_hMyWeapons": 11768 + }, + "DT_WearableItem": { + "baseclass": 0 + }, + "DT_EconEntity": { + "baseclass": 0, + "m_AttributeManager": 11648, + "m_OriginalOwnerXuidLow": 12736, + "m_OriginalOwnerXuidHigh": 12740, + "m_nFallbackPaintKit": 12744, + "m_nFallbackSeed": 12748, + "m_flFallbackWear": 12752, + "m_nFallbackStatTrak": 12756 + }, + "DT_AttributeContainer": { + "m_hOuter": 28, + "m_ProviderType": 36, + "m_iReapplyProvisionParity": 24, + "m_Item": 64 + }, + "DT_ScriptCreatedItem": { + "m_iItemDefinitionIndex": 490, + "m_iEntityLevel": 496, + "m_iItemIDHigh": 512, + "m_iItemIDLow": 516, + "m_iAccountID": 520, + "m_iEntityQuality": 492, + "m_bInitialized": 532, + "m_szCustomName": 636, + "m_NetworkedDynamicAttributesForDemos": 608 + }, + "DT_AttributeList": { + "m_Attributes": 0 + }, + "_ST_m_Attributes_32": { + "lengthproxy": 0 + }, + "_LPT_m_Attributes_32": { + "lengthprop32": 0 + }, + "DT_BaseAttributableItem": { + "baseclass": 0, + "m_AttributeManager": 11648, + "m_OriginalOwnerXuidLow": 12736, + "m_OriginalOwnerXuidHigh": 12740, + "m_nFallbackPaintKit": 12744, + "m_nFallbackSeed": 12748, + "m_flFallbackWear": 12752, + "m_nFallbackStatTrak": 12756 + }, + "DT_WeaponZoneRepulsor": { + "baseclass": 0 + }, + "DT_WeaponCSBaseGun": { + "baseclass": 0, + "m_zoomLevel": 13264, + "m_iBurstShotsRemaining": 13268 + }, + "DT_WeaponCSBase": { + "baseclass": 0, + "m_weaponMode": 13080, + "m_fAccuracyPenalty": 13104, + "m_fLastShotTime": 13224, + "m_iRecoilIndex": 13120, + "m_flRecoilIndex": 13124, + "m_hPrevOwner": 13188, + "m_bBurstMode": 13128, + "m_flPostponeFireReadyTime": 13132, + "m_bReloadVisuallyComplete": 13136, + "m_bSilencerOn": 13137, + "m_flDoneSwitchingSilencer": 13140, + "m_iOriginalTeamNumber": 13148, + "m_iIronSightMode": 13252 + }, + "DT_BaseCombatWeapon": { + "baseclass": 0, + "LocalWeaponData": 0, + "LocalActiveWeaponData": 0, + "m_iViewModelIndex": 12864, + "m_iWorldModelIndex": 12868, + "m_iWorldDroppedModelIndex": 12872, + "m_iState": 12888, + "m_hOwner": 12848, + "m_iClip1": 12900, + "m_iClip2": 12904, + "m_iPrimaryReserveAmmoCount": 12908, + "m_iSecondaryReserveAmmoCount": 12912, + "m_hWeaponWorldModel": 12884, + "m_iNumEmptyAttacks": 12880 + }, + "DT_LocalWeaponData": { + "m_iPrimaryAmmoType": 12892, + "m_iSecondaryAmmoType": 12896, + "m_nViewModelIndex": 12852, + "m_bFlipViewModel": 12996, + "m_iWeaponOrigin": 13000, + "m_iWeaponModule": 12876 + }, + "DT_LocalActiveWeaponData": { + "m_flNextPrimaryAttack": 12856, + "m_flNextSecondaryAttack": 12860, + "m_nNextThinkTick": 252, + "m_flTimeWeaponIdle": 12916 + }, + "DT_WeaponXM1014": { + "baseclass": 0, + "m_reloadState": 13268 + }, + "DT_WeaponTaser": { + "baseclass": 0, + "m_fFireTime": 13296 + }, + "DT_WeaponTablet": { + "baseclass": 0, + "m_flUpgradeExpirationTime[0]": 13272, + "m_flUpgradeExpirationTime": 0, + "m_vecLocalHexFlags[0]": 13288, + "m_vecLocalHexFlags": 0, + "m_nContractKillGridIndex": 13456, + "m_nContractKillGridHighResIndex": 13460, + "m_bTabletReceptionIsBlocked": 13464, + "m_flScanProgress": 13468, + "m_flBootTime": 13472, + "m_flShowMapTime": 13476, + "m_vecNotificationIds[0]": 13492, + "m_vecNotificationIds": 0, + "m_vecNotificationTimestamps[0]": 13524, + "m_vecNotificationTimestamps": 0, + "m_vecPlayerPositionHistory[0]": 13560, + "m_vecPlayerPositionHistory": 0, + "m_nLastPurchaseIndex": 13556, + "m_vecNearestMetalCratePos": 13480 + }, + "DT_Snowball": { + "baseclass": 0 + }, + "DT_BaseCSGrenade": { + "baseclass": 0, + "m_bRedraw": 13264, + "m_bIsHeldByPlayer": 13265, + "m_bPinPulled": 13266, + "m_fThrowTime": 13268, + "m_bLoopingSoundPlaying": 13272, + "m_flThrowStrength": 13276 + }, + "DT_SmokeGrenade": { + "baseclass": 0 + }, + "DT_WeaponShield": { + "baseclass": 0 + }, + "DT_WeaponSG552": { + "baseclass": 0 + }, + "DT_SensorGrenade": { + "baseclass": 0 + }, + "DT_WeaponSawedoff": { + "baseclass": 0, + "m_reloadState": 13268 + }, + "DT_WeaponNOVA": { + "baseclass": 0, + "m_reloadState": 13268 + }, + "DT_IncendiaryGrenade": { + "baseclass": 0 + }, + "DT_MolotovGrenade": { + "baseclass": 0 + }, + "DT_WeaponMelee": { + "baseclass": 0, + "m_flThrowAt": 13264 + }, + "DT_WeaponM3": { + "baseclass": 0, + "m_reloadState": 13268 + }, + "DT_WeaponKnifeGG": { + "baseclass": 0 + }, + "DT_WeaponKnife": { + "baseclass": 0 + }, + "DT_HEGrenade": { + "baseclass": 0 + }, + "DT_Flashbang": { + "baseclass": 0 + }, + "DT_WeaponFists": { + "baseclass": 0, + "m_bPlayingUninterruptableAct": 13264 + }, + "DT_WeaponElite": { + "baseclass": 0 + }, + "DT_DecoyGrenade": { + "baseclass": 0 + }, + "DT_WeaponDEagle": { + "baseclass": 0 + }, + "DT_WeaponUSP": { + "baseclass": 0 + }, + "DT_WeaponM249": { + "baseclass": 0 + }, + "DT_WeaponUMP45": { + "baseclass": 0 + }, + "DT_WeaponTMP": { + "baseclass": 0 + }, + "DT_WeaponTec9": { + "baseclass": 0 + }, + "DT_WeaponSSG08": { + "baseclass": 0 + }, + "DT_WeaponSG556": { + "baseclass": 0 + }, + "DT_WeaponSG550": { + "baseclass": 0 + }, + "DT_WeaponScout": { + "baseclass": 0 + }, + "DT_WeaponSCAR20": { + "baseclass": 0 + }, + "DT_WeaponSCAR17": { + "baseclass": 0 + }, + "DT_WeaponP90": { + "baseclass": 0 + }, + "DT_WeaponP250": { + "baseclass": 0 + }, + "DT_WeaponP228": { + "baseclass": 0 + }, + "DT_WeaponNegev": { + "baseclass": 0 + }, + "DT_WeaponMP9": { + "baseclass": 0 + }, + "DT_WeaponMP7": { + "baseclass": 0 + }, + "DT_WeaponMP5Navy": { + "baseclass": 0 + }, + "DT_WeaponMag7": { + "baseclass": 0 + }, + "DT_WeaponMAC10": { + "baseclass": 0 + }, + "DT_WeaponM4A1": { + "baseclass": 0 + }, + "DT_WeaponHKP2000": { + "baseclass": 0 + }, + "DT_WeaponGlock": { + "baseclass": 0 + }, + "DT_WeaponGalilAR": { + "baseclass": 0 + }, + "DT_WeaponGalil": { + "baseclass": 0 + }, + "DT_WeaponG3SG1": { + "baseclass": 0 + }, + "DT_WeaponFiveSeven": { + "baseclass": 0 + }, + "DT_WeaponFamas": { + "baseclass": 0 + }, + "DT_WeaponBizon": { + "baseclass": 0 + }, + "DT_WeaponAWP": { + "baseclass": 0 + }, + "DT_WeaponAug": { + "baseclass": 0 + }, + "DT_WeaponAK47": { + "baseclass": 0 + }, + "DT_WeaponC4": { + "baseclass": 0, + "m_bStartedArming": 13296, + "m_bBombPlacedAnimation": 13304, + "m_fArmedTime": 13300, + "m_bShowC4LED": 13305, + "m_bIsPlantingViaUse": 13306 + }, + "DT_WeaponBumpMine": { + "baseclass": 0 + }, + "DT_BumpMineProjectile": { + "baseclass": 0, + "m_nParentBoneIndex": 10708, + "m_vecParentBonePos": 10712, + "m_bArmed": 10724 + }, + "DT_BaseGrenade": { + "baseclass": 0, + "m_flDamage": 10648, + "m_DmgRadius": 10628, + "m_bIsLive": 10625, + "m_hThrower": 10656, + "m_vecVelocity": 276, + "m_fFlags": 260 + }, + "DT_WeaponBreachCharge": { + "baseclass": 0 + }, + "DT_BreachChargeProjectile": { + "baseclass": 0, + "m_bShouldExplode": 10704, + "m_weaponThatThrewMe": 10708, + "m_nParentBoneIndex": 10712, + "m_vecParentBonePos": 10716 + }, + "DT_WeaponBaseItem": { + "baseclass": 0, + "m_bRedraw": 13276 + }, + "DT_SnowballProjectile": { + "baseclass": 0 + }, + "DT_BaseCSGrenadeProjectile": { + "baseclass": 0, + "m_vInitialVelocity": 10704, + "m_nBounces": 10716, + "m_nExplodeEffectIndex": 10720, + "m_nExplodeEffectTickBegin": 10724, + "m_vecExplodeEffectOrigin": 10728 + }, + "DT_SnowballPile": { + "baseclass": 0 + }, + "DT_SmokeGrenadeProjectile": { + "baseclass": 0, + "m_bDidSmokeEffect": 10772, + "m_nSmokeEffectTickBegin": 10768 + }, + "DT_SensorGrenadeProjectile": { + "baseclass": 0 + }, + "DT_MolotovProjectile": { + "baseclass": 0, + "m_bIsIncGrenade": 10768 + }, + "DT_Item_Healthshot": { + "baseclass": 0 + }, + "DT_ItemDogtags": { + "baseclass": 0, + "m_OwningPlayer": 13376, + "m_KillingPlayer": 13380 + }, + "DT_Item": { + "baseclass": 0, + "m_bShouldGlow": 12848 + }, + "DT_DecoyProjectile": { + "baseclass": 0 + }, + "DT_PhysPropRadarJammer": { + "baseclass": 0 + }, + "DT_PhysicsPropMultiplayer": { + "baseclass": 0, + "m_iPhysicsMode": 10692, + "m_fMass": 10696, + "m_collisionMins": 10700, + "m_collisionMaxs": 10712 + }, + "DT_PhysicsProp": { + "baseclass": 0, + "m_bAwake": 10656, + "m_spawnflags": 712 + }, + "DT_BreakableProp": { + "baseclass": 0, + "m_qPreferredPlayerCarryAngles": 10628, + "m_bClientPhysics": 10640 + }, + "DT_PhysPropWeaponUpgrade": { + "baseclass": 0 + }, + "DT_PhysPropAmmoBox": { + "baseclass": 0 + }, + "DT_PhysPropLootCrate": { + "baseclass": 0, + "m_bRenderInPSPM": 10740, + "m_bRenderInTablet": 10741, + "m_iHealth": 256, + "m_iMaxHealth": 10744 + }, + "DT_ItemCash": { + "baseclass": 0 + }, + "DT_EnvGasCanister": { + "baseclass": 0, + "m_flFlightSpeed": 10740, + "m_flLaunchTime": 10744, + "m_vecParabolaDirection": 10764, + "m_flFlightTime": 10736, + "m_flWorldEnterTime": 10776, + "m_flInitialZSpeed": 10748, + "m_flZAcceleration": 10752, + "m_flHorizSpeed": 10756, + "m_bLaunchedFromWithinWorld": 10760, + "m_vecImpactPosition": 10676, + "m_vecStartPosition": 10688, + "m_vecEnterWorldPosition": 10700, + "m_vecDirection": 10712, + "m_vecStartAngles": 10724, + "m_vecSkyboxOrigin": 10780, + "m_flSkyboxScale": 10792, + "m_bInSkybox": 10796, + "m_bDoImpactEffects": 10797, + "m_bLanded": 10624, + "m_hSkyboxCopy": 10664, + "m_nMyZoneIndex": 10800, + "m_vecOrigin": 312, + "m_vecOrigin[2]": 320 + }, + "DT_Dronegun": { + "baseclass": 0, + "m_vecAttentionTarget": 10624, + "m_vecTargetOffset": 10636, + "m_iHealth": 256, + "m_bHasTarget": 10648 + }, + "DT_ParadropChopper": { + "baseclass": 0, + "m_vecOrigin": 312, + "m_vecOrigin[2]": 320, + "m_hCallingPlayer": 10640 + }, + "DT_SurvivalSpawnChopper": { + "baseclass": 0, + "m_vecOrigin": 312, + "m_vecOrigin[2]": 320 + }, + "DT_BRC4Target": { + "baseclass": 0, + "m_bBrokenOpen": 10628, + "m_flRadius": 10632 + }, + "DT_InfoMapRegion": { + "baseclass": 0, + "m_flRadius": 2520, + "m_szLocToken": 2524 + }, + "DT_FireCrackerBlast": { + "baseclass": 0 + }, + "DT_Inferno": { + "baseclass": 0, + "m_fireXDelta": 2532, + "m_fireYDelta": 2932, + "m_fireZDelta": 3332, + "m_bFireIsBurning": 3732, + "m_nFireEffectTickBegin": 5044, + "m_fireCount": 5032 + }, + "DT_CChicken": { + "baseclass": 0, + "m_jumpedThisFrame": 10728, + "m_leader": 10732 + }, + "DT_DynamicProp": { + "baseclass": 0, + "m_bUseHitboxesForRenderBox": 10660, + "m_flGlowMaxDist": 10692, + "m_bShouldGlow": 10696, + "m_clrGlow": 10697, + "m_nGlowStyle": 10704 + }, + "DT_Drone": { + "baseclass": 0, + "m_hMoveToThisEntity": 10712, + "m_hDeliveryCargo": 10716, + "m_bPilotTakeoverAllowed": 10720, + "m_hPotentialCargo": 10724, + "m_hCurrentPilot": 10728, + "m_vecTagPositions[0]": 10732, + "m_vecTagPositions": 0, + "m_vecTagIncrements[0]": 11020, + "m_vecTagIncrements": 0 + }, + "DT_FootstepControl": { + "baseclass": 0, + "m_source": 2576, + "m_destination": 2592 + }, + "DT_BaseTrigger": { + "baseclass": 0, + "m_bClientSidePredicted": 2568, + "m_spawnflags": 712 + }, + "DT_BaseToggle": { + "baseclass": 0, + "m_vecFinalDest": 2540, + "m_movementType": 2552, + "m_flMoveTargetTime": 2556 + }, + "DT_CSGameRulesProxy": { + "baseclass": 0, + "cs_gamerules_data": 0 + }, + "DT_CSGameRules": { + "m_bFreezePeriod": 32, + "m_bMatchWaitingForResume": 65, + "m_bWarmupPeriod": 33, + "m_fWarmupPeriodEnd": 36, + "m_fWarmupPeriodStart": 40, + "m_bTerroristTimeOutActive": 44, + "m_bCTTimeOutActive": 45, + "m_flTerroristTimeOutRemaining": 48, + "m_flCTTimeOutRemaining": 52, + "m_nTerroristTimeOuts": 56, + "m_nCTTimeOuts": 60, + "m_bTechnicalTimeOut": 64, + "m_iRoundTime": 68, + "m_gamePhase": 96, + "m_totalRoundsPlayed": 100, + "m_nOvertimePlaying": 104, + "m_timeUntilNextPhaseStarts": 92, + "m_flCMMItemDropRevealStartTime": 2168, + "m_flCMMItemDropRevealEndTime": 2172, + "m_fRoundStartTime": 76, + "m_bGameRestart": 84, + "m_flRestartRoundTime": 80, + "m_flGameStartTime": 88, + "m_iHostagesRemaining": 108, + "m_bAnyHostageReached": 112, + "m_bMapHasBombTarget": 113, + "m_bMapHasRescueZone": 114, + "m_bMapHasBuyZone": 115, + "m_bIsQueuedMatchmaking": 116, + "m_nQueuedMatchmakingMode": 120, + "m_bIsValveDS": 124, + "m_bIsQuestEligible": 2177, + "m_bLogoMap": 125, + "m_bPlayAllStepSoundsOnServer": 126, + "m_iNumGunGameProgressiveWeaponsCT": 128, + "m_iNumGunGameProgressiveWeaponsT": 132, + "m_iSpectatorSlotCount": 136, + "m_bBombDropped": 2468, + "m_bBombPlanted": 2469, + "m_iRoundWinStatus": 2472, + "m_eRoundWinReason": 2476, + "m_flDMBonusStartTime": 1108, + "m_flDMBonusTimeLength": 1112, + "m_unDMBonusWeaponLoadoutSlot": 1116, + "m_bDMBonusActive": 1118, + "m_bTCantBuy": 2480, + "m_bCTCantBuy": 2481, + "m_flGuardianBuyUntilTime": 2484, + "m_iMatchStats_RoundResults": 2488, + "m_iMatchStats_PlayersAlive_T": 2728, + "m_iMatchStats_PlayersAlive_CT": 2608, + "m_GGProgressiveWeaponOrderCT": 140, + "m_GGProgressiveWeaponOrderT": 380, + "m_GGProgressiveWeaponKillUpgradeOrderCT": 620, + "m_GGProgressiveWeaponKillUpgradeOrderT": 860, + "m_MatchDevice": 1100, + "m_bHasMatchStarted": 1104, + "m_TeamRespawnWaveTimes": 2848, + "m_flNextRespawnWave": 2976, + "m_nNextMapInMapgroup": 1120, + "m_nEndMatchMapGroupVoteTypes": 3112, + "m_nEndMatchMapGroupVoteOptions": 3152, + "m_nEndMatchMapVoteWinner": 3192, + "m_bIsDroppingItems": 2176, + "m_iActiveAssassinationTargetMissionID": 3104, + "m_fMatchStartTime": 72, + "m_szTournamentEventName": 1124, + "m_szTournamentEventStage": 1384, + "m_szTournamentPredictionsTxt": 1904, + "m_nTournamentPredictionsPct": 2164, + "m_szMatchStatTxt": 1644, + "m_nGuardianModeWaveNumber": 2180, + "m_nGuardianModeSpecialKillsRemaining": 2184, + "m_nGuardianModeSpecialWeaponNeeded": 2188, + "m_nHalloweenMaskListSeed": 2464, + "m_numGlobalGiftsGiven": 2200, + "m_numGlobalGifters": 2204, + "m_numGlobalGiftsPeriodSeconds": 2208, + "m_arrFeaturedGiftersAccounts": 2212, + "m_arrFeaturedGiftersGifts": 2228, + "m_arrProhibitedItemIndices": 2244, + "m_numBestOfMaps": 2460, + "m_arrTournamentActiveCasterAccounts": 2444, + "m_iNumConsecutiveCTLoses": 3196, + "m_iNumConsecutiveTerroristLoses": 3200, + "m_SurvivalRules": 3328, + "m_RetakeRules": 5056 + }, + "DT_SurvivalGameRules": { + "m_vecPlayAreaMins": 0, + "m_vecPlayAreaMaxs": 12, + "m_iPlayerSpawnHexIndices": 24, + "m_SpawnTileState": 280, + "m_flSpawnSelectionTimeStart": 504, + "m_flSpawnSelectionTimeEnd": 508, + "m_flSpawnSelectionTimeLoadout": 512, + "m_spawnStage": 516, + "m_flTabletHexOriginX": 520, + "m_flTabletHexOriginY": 524, + "m_flTabletHexSize": 528, + "m_roundData_playerXuids": 536, + "m_roundData_playerPositions": 1056, + "m_roundData_playerTeams": 1316, + "m_SurvivalGameRuleDecisionTypes": 1576, + "m_SurvivalGameRuleDecisionValues": 1640, + "m_flSurvivalStartTime": 1704 + }, + "DT_RetakeGameRules": { + "m_nMatchSeed": 248, + "m_bBlockersPresent": 252, + "m_bRoundInProgress": 253, + "m_iFirstSecondHalfRound": 256, + "m_iBombSite": 260 + }, + "DT_WeaponCubemap": { + "baseclass": 0 + }, + "DT_WeaponCycler": { + "baseclass": 0 + }, + "DT_TEPlantBomb": { + "m_vecOrigin": 20, + "m_iPlayer": 16, + "m_option": 32 + }, + "DT_TEFireBullets": { + "m_vecOrigin": 24, + "m_vecAngles[0]": 36, + "m_vecAngles[1]": 40, + "m_iWeaponID": 52, + "m_weapon": 48, + "m_iMode": 56, + "m_iSeed": 60, + "m_iPlayer": 16, + "m_fInaccuracy": 64, + "m_fSpread": 72, + "m_nItemDefIndex": 20, + "m_iSoundType": 76, + "m_flRecoilIndex": 68 + }, + "DT_TERadioIcon": { + "baseclass": 0, + "m_iAttachToClient": 16 + }, + "DT_PlantedC4": { + "baseclass": 0, + "m_bBombTicking": 10624, + "m_nBombSite": 10628, + "m_flC4Blow": 10640, + "m_flTimerLength": 10644, + "m_flDefuseLength": 10664, + "m_flDefuseCountDown": 10668, + "m_bBombDefused": 10672, + "m_hBombDefuser": 10676 + }, + "DT_CSTeam": { + "baseclass": 0 + }, + "DT_Team": { + "m_iTeamNum": 2920, + "m_bSurrendered": 2924, + "m_scoreTotal": 2880, + "m_scoreFirstHalf": 2884, + "m_scoreSecondHalf": 2888, + "m_scoreOvertime": 2892, + "m_iClanID": 2904, + "m_szTeamname": 2540, + "m_szClanTeamname": 2572, + "m_szTeamFlagImage": 2604, + "m_szTeamLogoImage": 2612, + "m_szTeamMatchStat": 2620, + "m_nGGLeaderEntIndex_CT": 2896, + "m_nGGLeaderEntIndex_T": 2900, + "m_numMapVictories": 2928, + "player_array_element": 0, + "\"player_array\"": 0 + }, + "DT_CSPlayerResource": { + "baseclass": 0, + "m_iPlayerC4": 5724, + "m_iPlayerVIP": 5728, + "m_bHostageAlive": 5756, + "m_isHostageFollowingSomeone": 5768, + "m_iHostageEntityIDs": 5780, + "m_bombsiteCenterA": 5732, + "m_bombsiteCenterB": 5744, + "m_hostageRescueX": 5828, + "m_hostageRescueY": 5844, + "m_hostageRescueZ": 5860, + "m_iMVPs": 5876, + "m_iArmor": 6268, + "m_bHasHelmet": 6201, + "m_bHasDefuser": 6136, + "m_iScore": 6528, + "m_iCompetitiveRanking": 6788, + "m_iCompetitiveWins": 7048, + "m_iCompetitiveRankType": 7308, + "m_iCompTeammateColor": 7376, + "m_iLifetimeStart": 7636, + "m_iLifetimeEnd": 7896, + "m_bControllingBot": 8156, + "m_iControlledPlayer": 8224, + "m_iControlledByPlayer": 8484, + "m_iBotDifficulty": 17064, + "m_szClan": 17324, + "m_nCharacterDefIndex": 18364, + "m_iTotalCashSpent": 18624, + "m_iGunGameLevel": 18884, + "m_iCashSpentThisRound": 19144, + "m_nEndMatchNextMapVotes": 27272, + "m_bEndMatchNextMapAllVoted": 27532, + "m_nActiveCoinRank": 19404, + "m_nMusicID": 19664, + "m_nPersonaDataPublicLevel": 19924, + "m_nPersonaDataPublicCommendsLeader": 20184, + "m_nPersonaDataPublicCommendsTeacher": 20444, + "m_nPersonaDataPublicCommendsFriendly": 20704, + "m_bHasCommunicationAbuseMute": 20964, + "m_szCrosshairCodes": 21029, + "m_iMatchStats_Kills_Total": 23304, + "m_iMatchStats_5k_Total": 24604, + "m_iMatchStats_4k_Total": 24344, + "m_iMatchStats_3k_Total": 24084, + "m_iMatchStats_Damage_Total": 24864, + "m_iMatchStats_EquipmentValue_Total": 25124, + "m_iMatchStats_KillReward_Total": 25384, + "m_iMatchStats_LiveTime_Total": 25644, + "m_iMatchStats_Deaths_Total": 23824, + "m_iMatchStats_Assists_Total": 23564, + "m_iMatchStats_HeadShotKills_Total": 25904, + "m_iMatchStats_Objective_Total": 26164, + "m_iMatchStats_CashEarned_Total": 26424, + "m_iMatchStats_UtilityDamage_Total": 26684, + "m_iMatchStats_EnemiesFlashed_Total": 26944 + }, + "DT_PlayerResource": { + "m_iPing": 2856, + "m_iKills": 3116, + "m_iAssists": 3376, + "m_iDeaths": 3636, + "m_bConnected": 2788, + "m_iTeam": 3896, + "m_iPendingTeam": 4156, + "m_bAlive": 4416, + "m_iHealth": 4484, + "m_iCoachingTeam": 4744 + }, + "DT_CSPlayer": { + "baseclass": 0, + "cslocaldata": 0, + "csnonlocaldata": 0, + "csteamdata": 0, + "m_angEyeAngles[0]": 45948, + "m_angEyeAngles[1]": 45952, + "m_iAddonBits": 41844, + "m_iPrimaryAddon": 41848, + "m_iSecondaryAddon": 41852, + "m_iThrowGrenadeCounter": 14700, + "m_bWaitForNoAttack": 14704, + "m_bIsRespawningForDMBonus": 14705, + "m_iPlayerState": 14636, + "m_iAccount": 45924, + "m_iStartAccount": 41892, + "m_totalHitsOnServer": 41896, + "m_bInBombZone": 14696, + "m_bInBuyZone": 14697, + "m_bInNoDefuseArea": 14698, + "m_bKilledByTaser": 14721, + "m_iMoveState": 14724, + "m_iClass": 45940, + "m_ArmorValue": 45944, + "m_angEyeAngles": 45948, + "m_bHasDefuser": 45960, + "m_bNightVisionOn": 41881, + "m_bHasNightVision": 41882, + "m_bInHostageRescueZone": 45961, + "m_bIsDefusing": 14640, + "m_bIsGrabbingHostage": 14641, + "m_iBlockingUseActionInProgress": 14644, + "m_bIsScoped": 14632, + "m_bIsWalking": 14633, + "m_nIsAutoMounting": 15000, + "m_bResumeZoom": 14634, + "m_fImmuneToGunGameDamageTime": 14652, + "m_bGunGameImmunity": 14660, + "m_bHasMovedSinceSpawn": 14661, + "m_bMadeFinalGunGameProgressiveKill": 14662, + "m_iGunGameProgressiveWeaponIndex": 14664, + "m_iNumGunGameTRKillPoints": 14668, + "m_iNumGunGameKillsWithCurrentWeapon": 14672, + "m_iNumRoundKills": 14676, + "m_fMolotovUseTime": 14688, + "m_fMolotovDamageTime": 14692, + "m_szArmsModel": 14731, + "m_hCarriedHostage": 41976, + "m_hCarriedHostageProp": 41980, + "m_bIsRescuing": 14648, + "m_flGroundAccelLinearFracLastTime": 41888, + "m_bCanMoveDuringFreezePeriod": 14728, + "m_isCurrentGunGameLeader": 14729, + "m_isCurrentGunGameTeamLeader": 14730, + "m_flGuardianTooFarDistFrac": 14708, + "m_flDetectedByEnemySensorTime": 14712, + "m_bIsPlayerGhost": 14997, + "m_iMatchStats_Kills": 42084, + "m_iMatchStats_Damage": 42204, + "m_iMatchStats_EquipmentValue": 42324, + "m_iMatchStats_MoneySaved": 42444, + "m_iMatchStats_KillReward": 42564, + "m_iMatchStats_LiveTime": 42684, + "m_iMatchStats_Deaths": 42804, + "m_iMatchStats_Assists": 42924, + "m_iMatchStats_HeadShotKills": 43044, + "m_iMatchStats_Objective": 43164, + "m_iMatchStats_CashEarned": 43284, + "m_iMatchStats_UtilityDamage": 43404, + "m_iMatchStats_EnemiesFlashed": 43524, + "m_rank": 45880, + "m_passiveItems": 45904, + "m_bHasParachute": 45904, + "m_unMusicID": 45908, + "m_bHasHelmet": 45932, + "m_bHasHeavyArmor": 45933, + "m_nHeavyAssaultSuitCooldownRemaining": 45936, + "m_flFlashDuration": 42016, + "m_flFlashMaxAlpha": 42012, + "m_iProgressBarDuration": 41856, + "m_flProgressBarStartTime": 41860, + "m_hRagdoll": 41964, + "m_hPlayerPing": 41968, + "m_cycleLatch": 46220, + "m_unCurrentEquipmentValue": 45872, + "m_unRoundStartEquipmentValue": 45874, + "m_unFreezetimeEndEquipmentValue": 45876, + "m_bIsControllingBot": 47609, + "m_bHasControlledBotThisRound": 47624, + "m_bCanControlObservedBot": 47610, + "m_iControlledBotEntIndex": 47612, + "m_vecAutomoveTargetEnd": 15016, + "m_flAutoMoveStartTime": 15032, + "m_flAutoMoveTargetTime": 15036, + "m_bIsAssassinationTarget": 47608, + "m_bHud_MiniScoreHidden": 45994, + "m_bHud_RadarHidden": 45995, + "m_nLastKillerIndex": 45996, + "m_nLastConcurrentKilled": 46000, + "m_nDeathCamMusic": 46004, + "m_bIsHoldingLookAtWeapon": 47393, + "m_bIsLookingAtWeapon": 47392, + "m_iNumRoundKillsHeadshots": 14680, + "m_unTotalRoundDamageDealt": 14684, + "m_flLowerBodyYawTarget": 14992, + "m_bStrafing": 14996, + "m_flThirdpersonRecoil": 47512, + "m_bHideTargetID": 47516, + "m_bIsSpawnRappelling": 41901, + "m_vecSpawnRappellingRopeOrigin": 41904, + "m_nSurvivalTeam": 41920, + "m_hSurvivalAssassinationTarget": 41924, + "m_flHealthShotBoostExpirationTime": 41928, + "m_flLastExoJumpTime": 15040, + "m_vecPlayerPatchEconIndices": 47472 + }, + "DT_BasePlayer": { + "baseclass": 0, + "localdata": 0, + "pl": 12752, + "m_iFOV": 12772, + "m_iFOVStart": 12776, + "m_flFOVTime": 12808, + "m_iDefaultFOV": 13100, + "m_hZoomOwner": 12876, + "m_afPhysicsFlags": 13036, + "m_hVehicle": 13040, + "m_hUseEntity": 13096, + "m_hGroundEntity": 336, + "m_iHealth": 256, + "m_lifeState": 607, + "m_iAmmo": 11640, + "m_iBonusProgress": 12864, + "m_iBonusChallenge": 12868, + "m_flMaxspeed": 12872, + "m_fFlags": 260, + "m_iObserverMode": 13176, + "m_bActiveCameraMan": 13180, + "m_bCameraManXRay": 13181, + "m_bCameraManOverview": 13182, + "m_bCameraManScoreBoard": 13183, + "m_uCameraManGraphs": 13184, + "m_iDeathPostEffect": 13172, + "m_hObserverTarget": 13196, + "m_hViewModel[0]": 13048, + "m_hViewModel": 0, + "m_iCoachingTeam": 12112, + "m_szLastPlaceName": 13748, + "m_vecLadderNormal": 12848, + "m_ladderSurfaceProps": 12800, + "m_ubEFNoInterpParity": 13784, + "m_hPostProcessCtrl": 14248, + "m_hColorCorrectionCtrl": 14252, + "m_PlayerFog.m_hCtrl": 14260, + "m_vphysicsCollisionState": 12892, + "m_hViewEntity": 13116, + "m_bShouldDrawPlayerWhileUsingViewEntity": 13120, + "m_flDuckAmount": 12204, + "m_flDuckSpeed": 12208, + "m_nWaterLevel": 606 + }, + "DT_LocalPlayerExclusive": { + "m_Local": 12220, + "m_vecViewOffset[0]": 264, + "m_vecViewOffset[1]": 268, + "m_vecViewOffset[2]": 272, + "m_flFriction": 324, + "m_fOnTarget": 13092, + "m_nTickBase": 13360, + "m_nNextThinkTick": 252, + "m_hLastWeapon": 13044, + "m_vecVelocity[0]": 276, + "m_vecVelocity[1]": 280, + "m_vecVelocity[2]": 284, + "m_vecBaseVelocity": 288, + "m_hConstraintEntity": 13124, + "m_vecConstraintCenter": 13128, + "m_flConstraintRadius": 13140, + "m_flConstraintWidth": 13144, + "m_flConstraintSpeedFactor": 13148, + "m_bConstraintPastRadius": 13152, + "m_flDeathTime": 13252, + "m_flNextDecalTime": 13256, + "m_fForceTeam": 13260, + "m_flLaggedMovementValue": 13716, + "m_hTonemapController": 12748 + }, + "DT_Local": { + "m_chAreaBits": 4, + "m_chAreaPortalBits": 36, + "m_iHideHUD": 72, + "m_flFOVRate": 68, + "m_bDucked": 136, + "m_bDucking": 137, + "m_flLastDuckTime": 140, + "m_bInDuckJump": 144, + "m_nDuckTimeMsecs": 76, + "m_nDuckJumpTimeMsecs": 80, + "m_nJumpTimeMsecs": 84, + "m_flFallVelocity": 88, + "m_viewPunchAngle": 100, + "m_aimPunchAngle": 112, + "m_aimPunchAngleVel": 124, + "m_bDrawViewmodel": 145, + "m_bWearingSuit": 146, + "m_bPoisoned": 147, + "m_flStepSize": 96, + "m_bAllowAutoMovement": 148, + "m_skybox3d.scale": 308, + "m_skybox3d.origin": 312, + "m_skybox3d.area": 324, + "m_skybox3d.fog.enable": 396, + "m_skybox3d.fog.blend": 397, + "m_skybox3d.fog.dirPrimary": 332, + "m_skybox3d.fog.colorPrimary": 344, + "m_skybox3d.fog.colorSecondary": 348, + "m_skybox3d.fog.start": 360, + "m_skybox3d.fog.end": 364, + "m_skybox3d.fog.maxdensity": 372, + "m_skybox3d.fog.HDRColorScale": 404, + "m_audio.localSound[0]": 412, + "m_audio.localSound[1]": 424, + "m_audio.localSound[2]": 436, + "m_audio.localSound[3]": 448, + "m_audio.localSound[4]": 460, + "m_audio.localSound[5]": 472, + "m_audio.localSound[6]": 484, + "m_audio.localSound[7]": 496, + "m_audio.soundscapeIndex": 508, + "m_audio.localBits": 512, + "m_audio.entIndex": 516 + }, + "DT_PlayerState": { + "deadflag": 4 + }, + "DT_CSLocalPlayerExclusive": { + "m_vecOrigin": 312, + "m_vecOrigin[2]": 320, + "m_flStamina": 41864, + "m_iDirection": 41868, + "m_iShotsFired": 41872, + "m_nNumFastDucks": 41876, + "m_bDuckOverride": 41880, + "m_flVelocityModifier": 41884, + "m_bPlayerDominated": 46228, + "m_bPlayerDominatingMe": 46293, + "m_iWeaponPurchasesThisRound": 46360, + "m_unActiveQuestId": 45864, + "m_nQuestProgressReason": 45868, + "m_iRetakesOffering": 48292, + "m_iRetakesOfferingCard": 48296, + "m_bRetakesHasDefuseKit": 48300, + "m_bRetakesMVPLastRound": 48301, + "m_iRetakesMVPBoostItem": 48304, + "m_RetakesMVPBoostExtraUtility": 48308 + }, + "DT_CSNonLocalPlayerExclusive": { + "m_vecOrigin": 312, + "m_vecOrigin[2]": 320 + }, + "DT_CSTeamExclusive": { + "m_iWeaponPurchasesThisMatch": 43644, + "m_EquippedLoadoutItemDefIndices": 45652 + }, + "DT_PlayerPing": { + "baseclass": 0, + "m_hPlayer": 2532, + "m_hPingedEntity": 2536, + "m_iType": 2540, + "m_bUrgent": 2548, + "m_szPlaceName": 2549 + }, + "DT_CSRagdoll": { + "m_vecOrigin": 312, + "m_vecRagdollOrigin": 10764, + "m_hPlayer": 10736, + "m_nModelIndex": 600, + "m_nForceBone": 9868, + "m_vecForce": 9856, + "m_vecRagdollVelocity": 10752, + "m_iDeathPose": 10776, + "m_iDeathFrame": 10780, + "m_iTeamNum": 244, + "m_bClientSideAnimation": 10396, + "m_flDeathYaw": 10784, + "m_flAbsYaw": 10788 + }, + "DT_TEPlayerAnimEvent": { + "m_hPlayer": 16, + "m_iEvent": 20, + "m_nData": 24 + }, + "DT_CHostage": { + "baseclass": 0, + "m_isRescued": 12080, + "m_jumpedThisFrame": 12081, + "m_iHealth": 256, + "m_iMaxHealth": 12056, + "m_lifeState": 607, + "m_fFlags": 260, + "m_nHostageState": 12084, + "m_flRescueStartTime": 12088, + "m_flGrabSuccessTime": 12092, + "m_flDropStartTime": 12096, + "m_vel": 12068, + "m_leader": 12064 + }, + "DT_HostageCarriableProp": { + "baseclass": 0 + }, + "DT_HandleTest": { + "baseclass": 0, + "m_Handle": 2520, + "m_bSendHandle": 2524 + }, + "DT_TeamplayRoundBasedRulesProxy": { + "baseclass": 0, + "teamplayroundbased_gamerules_data": 0 + }, + "DT_TeamplayRoundBasedRules": { + "m_iRoundState": 40, + "m_bInWaitingForPlayers": 56, + "m_iWinningTeam": 48, + "m_bInOvertime": 44, + "m_bInSetup": 45, + "m_bSwitchedTeamsThisRound": 46, + "m_bAwaitingReadyRestart": 57, + "m_flRestartRoundTime": 60, + "m_flMapResetTime": 64, + "m_flNextRespawnWave": 68, + "m_TeamRespawnWaveTimes": 232, + "m_bTeamReady": 196, + "m_bStopWatch": 228 + }, + "DT_SpriteTrail": { + "baseclass": 0, + "m_flLifeTime": 4212, + "m_flStartWidth": 4216, + "m_flEndWidth": 4220, + "m_flStartWidthVariance": 4224, + "m_flTextureRes": 4228, + "m_flMinFadeLength": 4232, + "m_vecSkyboxOrigin": 4236, + "m_flSkyboxScale": 4248 + }, + "DT_Sprite": { + "baseclass": 0, + "m_hAttachedToEntity": 2536, + "m_nAttachment": 2540, + "m_flScaleTime": 2568, + "m_flSpriteScale": 2564, + "m_flSpriteFramerate": 2544, + "m_flGlowProxySize": 2576, + "m_flHDRColorScale": 2580, + "m_flFrame": 2548, + "m_flBrightnessTime": 2560, + "m_nBrightness": 2556, + "m_bWorldSpaceScale": 2572 + }, + "DT_SpriteOriented": { + "baseclass": 0 + }, + "DT_Ragdoll_Attached": { + "baseclass": 0, + "m_boneIndexAttached": 11448, + "m_ragdollAttachedObjectIndex": 11444, + "m_attachmentPointBoneSpace": 11408, + "m_attachmentPointRagdollSpace": 11432 + }, + "DT_Ragdoll": { + "baseclass": 0, + "m_ragAngles[0]": 10912, + "m_ragAngles": 0, + "m_ragPos[0]": 10624, + "m_ragPos": 0, + "m_hUnragdoll": 11388, + "m_flBlendWeight": 11392, + "m_nOverlaySequence": 11400 + }, + "DT_PropCounter": { + "baseclass": 0, + "m_flDisplayValue": 10624 + }, + "DT_PredictedViewModel": { + "baseclass": 0 + }, + "DT_BaseViewModel": { + "m_nModelIndex": 600, + "m_hWeapon": 10696, + "m_nSkin": 2588, + "m_nBody": 2592, + "m_nSequence": 10428, + "m_nViewModelIndex": 10688, + "m_flPlaybackRate": 2584, + "m_fEffects": 240, + "m_nAnimationParity": 10692, + "m_hOwner": 10700, + "m_nNewSequenceParity": 2628, + "m_nResetEventsParity": 2632, + "m_nMuzzleFlashParity": 2660, + "m_bShouldIgnoreOffsetAndAccuracy": 10640 + }, + "DT_PoseController": { + "baseclass": 0, + "m_hProps": 2520, + "m_chPoseIndex": 2536, + "m_bPoseValueParity": 2540, + "m_fPoseValue": 2544, + "m_fInterpolationTime": 2548, + "m_bInterpolationWrap": 2552, + "m_fCycleFrequency": 2556, + "m_nFModType": 2560, + "m_fFModTimeOffset": 2564, + "m_fFModRate": 2568, + "m_fFModAmplitude": 2572 + }, + "DT_GrassBurn": { + "baseclass": 0, + "m_flGrassBurnClearTime": 2520 + }, + "DT_InfoLadderDismount": { + "baseclass": 0 + }, + "DT_FuncLadder": { + "baseclass": 0, + "m_vecPlayerMountPositionTop": 2552, + "m_vecPlayerMountPositionBottom": 2564, + "m_vecLadderDir": 2520, + "m_bFakeLadder": 2577 + }, + "DT_TEFoundryHelpers": { + "baseclass": 0, + "m_iEntity": 16 + }, + "DT_DetailController": { + "m_flFadeStartDist": 2520, + "m_flFadeEndDist": 2524 + }, + "DT_DangerZone": { + "baseclass": 0, + "m_vecDangerZoneOriginStartedAt": 2520, + "m_flBombLaunchTime": 2532, + "m_flExtraRadius": 2536, + "m_flExtraRadiusStartTime": 2540, + "m_flExtraRadiusTotalLerpTime": 2544, + "m_nDropOrder": 2548, + "m_iWave": 2552 + }, + "DT_DangerZoneController": { + "baseclass": 0, + "m_bDangerZoneControllerEnabled": 2520, + "m_bMissionControlledExplosions": 2521, + "m_flStartTime": 2548, + "m_flFinalExpansionTime": 2552, + "m_vecEndGameCircleStart": 2524, + "m_vecEndGameCircleEnd": 2536, + "m_DangerZones": 2556, + "m_flWaveEndTimes": 2724, + "m_hTheFinalZone": 2744 + }, + "DT_WorldVguiText": { + "baseclass": 0, + "m_bEnabled": 2520, + "m_szDisplayText": 2521, + "m_szDisplayTextOption": 3033, + "m_szFont": 3289, + "m_iTextPanelWidth": 3360, + "m_clrText": 3353 + }, + "DT_World": { + "baseclass": 0, + "m_flWaveHeight": 2520, + "m_WorldMins": 2524, + "m_WorldMaxs": 2536, + "m_bStartDark": 2548, + "m_flMaxOccludeeArea": 2552, + "m_flMinOccluderArea": 2556, + "m_flMaxPropScreenSpaceWidth": 2564, + "m_flMinPropScreenSpaceWidth": 2560, + "m_iszDetailSpriteMaterial": 2576, + "m_bColdWorld": 2568, + "m_iTimeOfDay": 2572 + }, + "DT_WaterLODControl": { + "baseclass": 0, + "m_flCheapWaterStartDistance": 2520, + "m_flCheapWaterEndDistance": 2524 + }, + "DT_WaterBullet": { + "baseclass": 0 + }, + "DT_MapVetoPickController": { + "baseclass": 0, + "m_nDraftType": 2536, + "m_nTeamWinningCoinToss": 2540, + "m_nTeamWithFirstChoice": 2544, + "m_nVoteMapIdsList": 2800, + "m_nAccountIDs": 2828, + "m_nMapId0": 3084, + "m_nMapId1": 3340, + "m_nMapId2": 3596, + "m_nMapId3": 3852, + "m_nMapId4": 4108, + "m_nMapId5": 4364, + "m_nStartingSide0": 4620, + "m_nCurrentPhase": 4876, + "m_nPhaseStartTick": 4880, + "m_nPhaseDurationTicks": 4884 + }, + "DT_VoteController": { + "baseclass": 0, + "m_iActiveIssueIndex": 2532, + "m_iOnlyTeamToVote": 2536, + "m_nVoteOptionCount": 2540, + "m_nPotentialVotes": 2564, + "m_bIsYesNoVote": 2570 + }, + "DT_VGuiScreen": { + "baseclass": 0, + "m_flWidth": 2528, + "m_flHeight": 2532, + "m_fScreenFlags": 2572, + "m_nPanelName": 2536, + "m_nAttachmentIndex": 2564, + "m_nOverlayMaterial": 2568, + "m_hPlayerOwner": 2664 + }, + "DT_PropJeep": { + "baseclass": 0, + "m_bHeadlightIsOn": 10956 + }, + "DT_PropVehicleChoreoGeneric": { + "baseclass": 0, + "m_hPlayer": 10740, + "m_bEnterAnimOn": 10748, + "m_bExitAnimOn": 10749, + "m_bForceEyesToAttachment": 10764, + "m_vecEyeExitEndpoint": 10752, + "m_vehicleView.bClampEyeAngles": 10896, + "m_vehicleView.flPitchCurveZero": 10900, + "m_vehicleView.flPitchCurveLinear": 10904, + "m_vehicleView.flRollCurveZero": 10908, + "m_vehicleView.flRollCurveLinear": 10912, + "m_vehicleView.flFOV": 10916, + "m_vehicleView.flYawMin": 10920, + "m_vehicleView.flYawMax": 10924, + "m_vehicleView.flPitchMin": 10928, + "m_vehicleView.flPitchMax": 10932 + }, + "DT_TriggerSoundOperator": { + "baseclass": 0, + "m_nSoundOperator": 2576 + }, + "DT_BaseVPhysicsTrigger": { + "baseclass": 0 + }, + "DT_TriggerPlayerMovement": { + "baseclass": 0 + }, + "DT_ProxyToggle": { + "baseclass": 0, + "blah": 0 + }, + "DT_ProxyToggle_ProxiedData": { + "m_WithProxy": 2520 + }, + "DT_Tesla": { + "baseclass": 0, + "m_SoundName": 2560, + "m_iszSpriteName": 2624 + }, + "DT_BaseTeamObjectiveResource": { + "m_iTimerToShowInHUD": 2520, + "m_iStopWatchTimer": 2524, + "m_iNumControlPoints": 2528, + "m_bPlayingMiniRounds": 2536, + "m_bControlPointsReset": 2537, + "m_iUpdateCapHudParity": 2540, + "m_vCPPositions[0]": 2548, + "m_vCPPositions": 0, + "m_bCPIsVisible": 2644, + "m_flLazyCapPerc": 2652, + "m_iTeamIcons": 2716, + "m_iTeamOverlays": 2972, + "m_iTeamReqCappers": 3228, + "m_flTeamCapTime": 3484, + "m_iPreviousPoints": 3740, + "m_bTeamCanCap": 4508, + "m_iTeamBaseIcons": 4572, + "m_iBaseControlPoints": 4700, + "m_bInMiniRound": 4828, + "m_iWarnOnCap": 4836, + "m_iszWarnSound[0]": 4868, + "m_iszWarnSound": 0, + "m_flPathDistance": 6908, + "m_iNumTeamMembers": 6940, + "m_iCappingTeam": 7196, + "m_iTeamInZone": 7228, + "m_bBlocked": 7260, + "m_iOwner": 7268, + "m_pszCapLayoutInHUD": 7404 + }, + "DT_SunlightShadowControl": { + "baseclass": 0, + "m_shadowDirection": 2520, + "m_bEnabled": 2532, + "m_TextureName": 2533, + "m_LightColor": 2800, + "m_flColorTransitionTime": 2820, + "m_flSunDistance": 2824, + "m_flFOV": 2828, + "m_flNearZ": 2832, + "m_flNorthOffset": 2836, + "m_bEnableShadows": 2840 + }, + "DT_Sun": { + "m_clrRender": 112, + "m_clrOverlay": 2872, + "m_vDirection": 2884, + "m_bOn": 2896, + "m_nSize": 2876, + "m_nOverlaySize": 2880, + "m_nMaterial": 2900, + "m_nOverlayMaterial": 2904, + "HDRColorScale": 0, + "glowDistanceScale": 0 + }, + "DT_ParticlePerformanceMonitor": { + "baseclass": 0, + "m_bMeasurePerf": 2521, + "m_bDisplayPerf": 2520 + }, + "DT_SpotlightEnd": { + "baseclass": 0, + "m_flLightScale": 2520, + "m_Radius": 2524 + }, + "DT_SpatialEntity": { + "baseclass": 0, + "m_vecOrigin": 2520, + "m_minFalloff": 2532, + "m_maxFalloff": 2536, + "m_flCurWeight": 2540, + "m_bEnabled": 2804 + }, + "DT_SlideshowDisplay": { + "baseclass": 0, + "m_bEnabled": 2520, + "m_szDisplayText": 2521, + "m_szSlideshowDirectory": 2649, + "m_chCurrentSlideLists": 2800, + "m_fMinSlideTime": 2824, + "m_fMaxSlideTime": 2828, + "m_iCycleType": 2836, + "m_bNoListRepeats": 2840 + }, + "DT_ShadowControl": { + "baseclass": 0, + "m_shadowDirection": 2520, + "m_shadowColor": 2532, + "m_flShadowMaxDist": 2536, + "m_bDisableShadows": 2540, + "m_bEnableLocalLightShadows": 2541 + }, + "DT_SceneEntity": { + "baseclass": 0, + "m_nSceneStringIndex": 2536, + "m_bIsPlayingBack": 2524, + "m_bPaused": 2525, + "m_bMultiplayer": 2526, + "m_flForceClientTime": 2532, + "m_hActorList": 0 + }, + "_ST_m_hActorList_16": { + "lengthproxy": 0 + }, + "_LPT_m_hActorList_16": { + "lengthprop16": 0 + }, + "DT_RopeKeyframe": { + "m_nChangeCount": 3276, + "m_iRopeMaterialModelIndex": 2580, + "m_hStartPoint": 3244, + "m_hEndPoint": 3248, + "m_iStartAttachment": 3252, + "m_iEndAttachment": 3254, + "m_fLockedPoints": 3272, + "m_Slack": 3264, + "m_RopeLength": 3260, + "m_RopeFlags": 2576, + "m_TextureScale": 3268, + "m_nSegments": 3240, + "m_bConstrainBetweenEndpoints": 3408, + "m_Subdiv": 3256, + "m_Width": 3280, + "m_flScrollSpeed": 2572, + "m_vecOrigin": 312, + "moveparent": 328, + "m_iParentAttachment": 748, + "m_iDefaultRopeMaterialModelIndex": 2584, + "m_nMinCPULevel": 2440, + "m_nMaxCPULevel": 2441, + "m_nMinGPULevel": 2442, + "m_nMaxGPULevel": 2443 + }, + "DT_RagdollManager": { + "m_iCurrentMaxRagdollCount": 2520 + }, + "DT_PhysBoxMultiplayer": { + "baseclass": 0, + "m_iPhysicsMode": 2532, + "m_fMass": 2536 + }, + "DT_PhysBox": { + "baseclass": 0, + "m_mass": 2520 + }, + "DT_PropDoorRotating": { + "baseclass": 0 + }, + "DT_BasePropDoor": { + "baseclass": 0 + }, + "DT_Prop_Hallucination": { + "baseclass": 0, + "m_bEnabled": 10649, + "m_fVisibleTime": 10652, + "m_fRechargeTime": 10656 + }, + "DT_PostProcessController": { + "baseclass": 0, + "m_flPostProcessParameters": 2520, + "m_bMaster": 2564 + }, + "DT_PointWorldText": { + "baseclass": 0, + "m_szText": 2568, + "m_flTextSize": 2828, + "m_textColor": 2832 + }, + "DT_PointCommentaryNode": { + "baseclass": 0, + "m_bActive": 10624, + "m_flStartTime": 10628, + "m_iszCommentaryFile": 10632, + "m_iszCommentaryFileNoHDR": 10892, + "m_iszSpeakers": 11152, + "m_iNodeNumber": 11408, + "m_iNodeNumberMax": 11412, + "m_hViewPosition": 11420 + }, + "DT_PointCamera": { + "baseclass": 0, + "m_FOV": 2520, + "m_Resolution": 2524, + "m_bFogEnable": 2528, + "m_FogColor": 2529, + "m_flFogStart": 2536, + "m_flFogEnd": 2540, + "m_flFogMaxDensity": 2544, + "m_bActive": 2548, + "m_bUseScreenAspectRatio": 2549 + }, + "DT_Plasma": { + "baseclass": 0, + "m_flStartScale": 2520, + "m_flScale": 2524, + "m_flScaleTime": 2528, + "m_nFlags": 2532, + "m_nPlasmaModelIndex": 2536, + "m_nPlasmaModelIndex2": 2540, + "m_nGlowModelIndex": 2544 + }, + "DT_PhysMagnet": { + "baseclass": 0 + }, + "DT_StatueProp": { + "baseclass": 0, + "m_hInitBaseAnimating": 10688, + "m_bShatter": 10692, + "m_nShatterFlags": 10696, + "m_vShatterPosition": 10700, + "m_vShatterForce": 10712 + }, + "DT_ParticleSystem": { + "m_vecOrigin": 312, + "m_fEffects": 240, + "m_hOwnerEntity": 332, + "moveparent": 328, + "m_iParentAttachment": 748, + "m_angRotation": 300, + "m_iEffectIndex": 2520, + "m_bActive": 2528, + "m_nStopType": 2524, + "m_flStartTime": 2532, + "m_szSnapshotFileName": 2536, + "m_vServerControlPoints": 2796, + "m_iServerControlPointAssignments": 2844, + "m_hControlPointEnts": 2864, + "m_iControlPointParents": 3116 + }, + "DT_MovieDisplay": { + "baseclass": 0, + "m_bEnabled": 2520, + "m_bLooping": 2521, + "m_szMovieFilename": 2522, + "m_szGroupName": 2650, + "m_bStretchToFill": 2778, + "m_bForcedSlave": 2779, + "m_bUseCustomUVs": 2780, + "m_flUMin": 2784, + "m_flUMax": 2788, + "m_flVMin": 2792, + "m_flVMax": 2796 + }, + "DT_MaterialModifyControl": { + "baseclass": 0, + "m_szMaterialName": 2520, + "m_szMaterialVar": 2775, + "m_szMaterialVarValue": 3030, + "m_iFrameStart": 3296, + "m_iFrameEnd": 3300, + "m_bWrap": 3304, + "m_flFramerate": 3308, + "m_bNewAnimCommandsSemaphore": 3312, + "m_flFloatLerpStartValue": 3316, + "m_flFloatLerpEndValue": 3320, + "m_flFloatLerpTransitionTime": 3324, + "m_bFloatLerpWrap": 3328, + "m_nModifyMode": 3336 + }, + "DT_LightGlow": { + "m_clrRender": 112, + "m_nHorizontalSize": 2520, + "m_nVerticalSize": 2524, + "m_nMinDist": 2528, + "m_nMaxDist": 2532, + "m_nOuterMaxDist": 2536, + "m_spawnflags": 2540, + "m_vecOrigin": 312, + "m_angRotation": 300, + "moveparent": 328, + "m_flGlowProxySize": 2756, + "HDRColorScale": 0 + }, + "DT_ItemAssaultSuitUseable": { + "baseclass": 0, + "m_nArmorValue": 13376, + "m_bIsHeavyAssaultSuit": 13380 + }, + "DT_InfoOverlayAccessor": { + "m_iTextureFrameIndex": 2444, + "m_iOverlayID": 2520 + }, + "DT_FuncTrackTrain": { + "baseclass": 0 + }, + "DT_FuncSmokeVolume": { + "baseclass": 0, + "m_Color1": 2756, + "m_Color2": 2760, + "m_MaterialName": 2764, + "m_ParticleDrawWidth": 3020, + "m_ParticleSpacingDistance": 3024, + "m_DensityRampSpeed": 3028, + "m_RotationSpeed": 3032, + "m_MovementSpeed": 3036, + "m_Density": 3040, + "m_maxDrawDistance": 3044, + "m_spawnflags": 3048, + "m_Collision": 800 + }, + "DT_FuncRotating": { + "baseclass": 0, + "m_vecOrigin": 312, + "m_angRotation[0]": 300, + "m_angRotation[1]": 304, + "m_angRotation[2]": 308, + "m_flSimulationTime": 616 + }, + "DT_FuncReflectiveGlass": { + "baseclass": 0 + }, + "DT_FuncBrush": { + "baseclass": 0 + }, + "DT_FuncOccluder": { + "baseclass": 0, + "m_bActive": 2524, + "m_nOccluderIndex": 2520 + }, + "DT_FuncMoveLinear": { + "baseclass": 0, + "m_vecVelocity": 276, + "m_fFlags": 260 + }, + "DT_FuncMonitor": { + "baseclass": 0 + }, + "DT_Func_LOD": { + "baseclass": 0, + "m_nDisappearMinDist": 2520, + "m_nDisappearMaxDist": 2524 + }, + "DT_TEDust": { + "baseclass": 0, + "m_flSize": 28, + "m_flSpeed": 32, + "m_vecDirection": 36 + }, + "DT_Func_Dust": { + "m_Color": 2520, + "m_SpawnRate": 2524, + "m_flSizeMin": 2528, + "m_flSizeMax": 2532, + "m_LifetimeMin": 2540, + "m_LifetimeMax": 2544, + "m_DustFlags": 2560, + "m_SpeedMax": 2536, + "m_DistMax": 2548, + "m_nModelIndex": 600, + "m_FallSpeed": 2552, + "m_bAffectedByWind": 2556, + "m_Collision": 800 + }, + "DT_FuncConveyor": { + "baseclass": 0, + "m_flConveyorSpeed": 2520 + }, + "DT_BreakableSurface": { + "baseclass": 0, + "m_nNumWide": 2524, + "m_nNumHigh": 2528, + "m_flPanelWidth": 2532, + "m_flPanelHeight": 2536, + "m_vNormal": 2540, + "m_vCorner": 2552, + "m_bIsBroken": 2564, + "m_nSurfaceType": 2568, + "m_RawPanelBitVec": 2604 + }, + "DT_FuncAreaPortalWindow": { + "baseclass": 0, + "m_flFadeStartDist": 2520, + "m_flFadeDist": 2524, + "m_flTranslucencyLimit": 2528, + "m_iBackgroundModelIndex": 2532 + }, + "DT_CFish": { + "m_poolOrigin": 10720, + "m_x": 10696, + "m_y": 10700, + "m_z": 10704, + "m_angle": 10712, + "m_nModelIndex": 600, + "m_lifeState": 607, + "m_waterLevel": 10732 + }, + "DT_FireSmoke": { + "baseclass": 0, + "m_flStartScale": 2520, + "m_flScale": 2524, + "m_flScaleTime": 2528, + "m_nFlags": 2532, + "m_nFlameModelIndex": 2536, + "m_nFlameFromAboveModelIndex": 2540 + }, + "DT_EnvTonemapController": { + "baseclass": 0, + "m_bUseCustomAutoExposureMin": 2520, + "m_bUseCustomAutoExposureMax": 2521, + "m_bUseCustomBloomScale": 2522, + "m_flCustomAutoExposureMin": 2524, + "m_flCustomAutoExposureMax": 2528, + "m_flCustomBloomScale": 2532, + "m_flCustomBloomScaleMinimum": 2536, + "m_flBloomExponent": 2540, + "m_flBloomSaturation": 2544, + "m_flTonemapPercentTarget": 2548, + "m_flTonemapPercentBrightPixels": 2552, + "m_flTonemapMinAvgLum": 2556, + "m_flTonemapRate": 2560 + }, + "DT_EnvScreenEffect": { + "baseclass": 0, + "m_flDuration": 2520, + "m_nType": 2524 + }, + "DT_EnvScreenOverlay": { + "baseclass": 0, + "m_iszOverlayNames[0]": 2520, + "m_iszOverlayNames": 0, + "m_flOverlayTimes[0]": 5072, + "m_flOverlayTimes": 0, + "m_flStartTime": 5112, + "m_iDesiredOverlay": 5116, + "m_bIsActive": 5120 + }, + "DT_EnvProjectedTexture": { + "baseclass": 0, + "m_hTargetEntity": 2524, + "m_bState": 2528, + "m_bAlwaysUpdate": 2529, + "m_flLightFOV": 2532, + "m_bEnableShadows": 2536, + "m_bSimpleProjection": 2537, + "m_bLightOnlyTarget": 2538, + "m_bLightWorld": 2539, + "m_bCameraSpace": 2540, + "m_flBrightnessScale": 2544, + "m_LightColor": 2548, + "m_flColorTransitionTime": 2568, + "m_flAmbient": 2572, + "m_SpotlightTextureName": 2584, + "m_nSpotlightTextureFrame": 2852, + "m_flNearZ": 2576, + "m_flFarZ": 2580, + "m_nShadowQuality": 2856, + "m_flProjectionSize": 2872, + "m_flRotation": 2876, + "m_iStyle": 2860 + }, + "DT_EnvParticleScript": { + "baseclass": 0, + "m_flSequenceScale": 10852 + }, + "DT_FogController": { + "m_fog.enable": 2588, + "m_fog.blend": 2589, + "m_fog.dirPrimary": 2524, + "m_fog.colorPrimary": 2536, + "m_fog.colorSecondary": 2540, + "m_fog.start": 2552, + "m_fog.end": 2556, + "m_fog.farz": 2560, + "m_fog.maxdensity": 2564, + "m_fog.colorPrimaryLerpTo": 2544, + "m_fog.colorSecondaryLerpTo": 2548, + "m_fog.startLerpTo": 2568, + "m_fog.endLerpTo": 2572, + "m_fog.maxdensityLerpTo": 2576, + "m_fog.lerptime": 2580, + "m_fog.duration": 2584, + "m_fog.HDRColorScale": 2596, + "m_fog.ZoomFogScale": 2592 + }, + "DT_EnvDOFController": { + "baseclass": 0, + "m_bDOFEnabled": 2520, + "m_flNearBlurDepth": 2524, + "m_flNearFocusDepth": 2528, + "m_flFarFocusDepth": 2532, + "m_flFarBlurDepth": 2536, + "m_flNearBlurRadius": 2540, + "m_flFarBlurRadius": 2544 + }, + "DT_CascadeLight": { + "baseclass": 0, + "m_shadowDirection": 2520, + "m_envLightShadowDirection": 2532, + "m_bEnabled": 2544, + "m_bUseLightEnvAngles": 2545, + "m_LightColor": 2546, + "m_LightColorScale": 2552, + "m_flMaxShadowDist": 2556 + }, + "DT_EnvAmbientLight": { + "baseclass": 0, + "m_vecColor": 2816 + }, + "DT_EntityParticleTrail": { + "baseclass": 0, + "m_iMaterialName": 2752, + "m_Info": 2756, + "m_hConstraintEntity": 2776 + }, + "DT_EntityParticleTrailInfo": { + "m_flLifetime": 8, + "m_flStartSize": 12, + "m_flEndSize": 16 + }, + "DT_EntityFreezing": { + "baseclass": 0, + "m_vFreezingOrigin": 2520, + "m_flFrozenPerHitbox": 2532, + "m_flFrozen": 2732, + "m_bFinishFreezing": 2736 + }, + "DT_EntityFlame": { + "baseclass": 0, + "m_hEntAttached": 2520, + "m_bCheapEffect": 2540 + }, + "DT_EntityDissolve": { + "baseclass": 0, + "m_flStartTime": 2524, + "m_flFadeOutStart": 2528, + "m_flFadeOutLength": 2532, + "m_flFadeOutModelStart": 2536, + "m_flFadeOutModelLength": 2540, + "m_flFadeInStart": 2544, + "m_flFadeInLength": 2548, + "m_nDissolveType": 2552, + "m_vDissolverOrigin": 2560, + "m_nMagnitude": 2572 + }, + "DT_DynamicLight": { + "baseclass": 0, + "m_Flags": 2520, + "m_LightStyle": 2521, + "m_Radius": 2524, + "m_Exponent": 2528, + "m_InnerAngle": 2532, + "m_OuterAngle": 2536, + "m_SpotRadius": 2540 + }, + "DT_ColorCorrectionVolume": { + "baseclass": 0, + "m_bEnabled": 2592, + "m_MaxWeight": 2596, + "m_FadeDuration": 2600, + "m_Weight": 2604, + "m_lookupFilename": 2608 + }, + "DT_ColorCorrection": { + "baseclass": 0, + "m_vecOrigin": 2520, + "m_minFalloff": 2532, + "m_maxFalloff": 2536, + "m_flCurWeight": 2552, + "m_flMaxWeight": 2548, + "m_flFadeInDuration": 2540, + "m_flFadeOutDuration": 2544, + "m_netLookupFilename": 2556, + "m_bEnabled": 2816, + "m_bMaster": 2817, + "m_bClientSide": 2818, + "m_bExclusive": 2819 + }, + "DT_BeamSpotlight": { + "baseclass": 0, + "m_nHaloIndex": 2520, + "m_bSpotlightOn": 2532, + "m_bHasDynamicLight": 2533, + "m_flSpotlightMaxLength": 2536, + "m_flSpotlightGoalWidth": 2540, + "m_flHDRColorScale": 2544, + "m_nRotationAxis": 2524, + "m_flRotationSpeed": 2528 + }, + "DT_BaseButton": { + "baseclass": 0, + "m_usable": 2568 + }, + "DT_BaseDoor": { + "baseclass": 0, + "m_flWaveHeight": 2568 + }, + "DT_BoneFollower": { + "baseclass": 0, + "m_modelIndex": 2520, + "m_solidIndex": 2524 + }, + "DT_AI_BaseNPC": { + "baseclass": 0, + "m_lifeState": 607, + "m_bPerformAvoidance": 12068, + "m_bIsMoving": 12069, + "m_bFadeCorpse": 12070, + "m_iDeathPose": 12052, + "m_iDeathFrame": 12056, + "m_iSpeedModRadius": 12060, + "m_iSpeedModSpeed": 12064, + "m_bSpeedModActive": 12071, + "m_bImportanRagdoll": 12072, + "m_flTimePingEffect": 12048 + }, + "DT_Beam": { + "m_nBeamType": 2548, + "m_nBeamFlags": 2552, + "m_nNumBeamEnts": 2536, + "m_hAttachEntity": 2556, + "m_nAttachIndex": 2596, + "m_nHaloIndex": 2544, + "m_fHaloScale": 2648, + "m_fWidth": 2636, + "m_fEndWidth": 2640, + "m_fFadeLength": 2644, + "m_fAmplitude": 2652, + "m_fStartFrame": 2656, + "m_fSpeed": 2660, + "m_flFrameRate": 2520, + "m_flHDRColorScale": 2524, + "m_clrRender": 112, + "m_nRenderFX": 602, + "m_nRenderMode": 603, + "m_flFrame": 2664, + "m_nClipStyle": 2668, + "m_vecEndPos": 2672, + "m_nModelIndex": 600, + "m_vecOrigin": 312, + "moveparent": 328 + }, + "DT_BaseWeaponWorldModel": { + "m_nModelIndex": 600, + "m_nBody": 2592, + "m_fEffects": 240, + "moveparent": 328, + "m_hCombatWeaponParent": 10736 + } +} \ No newline at end of file diff --git a/classes/read_config.py b/classes/read_config.py new file mode 100644 index 0000000..312dd94 --- /dev/null +++ b/classes/read_config.py @@ -0,0 +1,55 @@ +from configparser import ConfigParser +import ui + +class read() : + def config(self, config_name) : + config = ConfigParser() + + config.read('configs/'+config_name) + + #VISUALS + ui.draw.glow_active = config.getboolean('VISUALS', 'glow_active') + ui.draw.glow_health_based = config.getboolean('VISUALS', 'glow_health_based') + ui.draw.glow_ennemies = config.getboolean('VISUALS', 'glow_ennemies') + ui.draw.ennemies_glow_color = config.get('VISUALS', 'ennemies_glow_color') + ui.draw.glow_allies = config.getboolean('VISUALS', 'glow_allies') + ui.draw.allies_glow_color = config.get('VISUALS', 'allies_glow_color') + ui.draw.chams_active = config.getboolean('VISUALS', 'chams_active') + ui.draw.chams_health_based = config.getboolean('VISUALS', 'chams_health_based') + ui.draw.chams_ennemies = config.getboolean('VISUALS', 'chams_ennemies') + ui.draw.ennemies_chams_color = config.get('VISUALS', 'ennemies_chams_color') + ui.draw.chams_allies = config.getboolean('VISUALS', 'chams_allies') + ui.draw.allies_chams_color = config.get('VISUALS', 'allies_chams_color') + + #AIM + ui.draw.aimbot = config.getboolean('AIM', 'aimbot') + ui.draw.aimbot_key = config.get('AIM', 'aimbot_key') + ui.draw.rcs = config.getboolean('AIM', 'rcs') + ui.draw.rcs_perfect = config.getfloat('AIM', 'rcs_perfect') + ui.draw.triggerbot = config.getboolean('AIM', 'triggerbot') + ui.draw.t_delay = config.getfloat('AIM', 't_delay') + ui.draw.triggerbot_key = config.get('AIM', 'triggerbot_key') + ui.draw.rapid_fire = config.getboolean('AIM', 'rapid_fire') + ui.draw.rapid_fire_key = config.get('AIM', 'rapid_fire_key') + ui.draw.silent_aim = config.getboolean('AIM', 'silent_aim') + ui.draw.silent_aim_key = config.get('AIM', 'silent_aim_key') + ui.draw.crosshair = config.getboolean('AIM', 'crosshair') + + #MISC + ui.draw.third_person = config.getboolean('MISC', 'third_person') + ui.draw.thirdperson_key = config.get('MISC', 'thirdperson_key') + ui.draw.fov = config.getboolean('MISC', 'fov') + ui.draw.fov_value = config.getfloat('MISC', 'fov_value') + ui.draw.hitsound = config.getboolean('MISC', 'hitsound') + ui.draw.sound = config.get('MISC', 'sound') + ui.draw.sound_esp = config.getboolean('MISC', 'sound_esp') + ui.draw.no_flash = config.getboolean('MISC', 'no_flash') + ui.draw.bhop_rage = config.getboolean('MISC', 'bhop_rage') + ui.draw.bhop_legit = config.getboolean('MISC', 'bhop_legit') + ui.draw.show_money = config.getboolean('MISC', 'show_money') + ui.draw.radar = config.getboolean('MISC', 'radar') + ui.draw.fake_lag = config.getboolean('MISC', 'fake_lag') + ui.draw.fake_lag_value = config.getfloat('MISC', 'fake_lag_value') + + #SETTINGS + ui.draw.ui_color = config.get('SETTINGS', 'ui_color') \ No newline at end of file diff --git a/classes/read_last.py b/classes/read_last.py new file mode 100644 index 0000000..b51507f --- /dev/null +++ b/classes/read_last.py @@ -0,0 +1,9 @@ +def main() : + with open("configs/last/last.txt", "r") as f : + for line in f : + last = line + + return last + +if __name__ == "__main__" : + main() \ No newline at end of file diff --git a/classes/recv_classes.py b/classes/recv_classes.py new file mode 100644 index 0000000..c0dc673 --- /dev/null +++ b/classes/recv_classes.py @@ -0,0 +1,72 @@ +import re +import sys +import json +from typing import Union +from pymem.process import module_from_name + +__all__ = ['RecvTable', 'RecvProp', 'ClientClass'] + + +class RecvProp: + def __init__(self, start_addr, handle): + self._start_addr = start_addr + self._handle = handle + + def get_name(self) -> str: + """Returns a name of the prop.""" + name_addr = self._handle.read_int(self._start_addr) + return self._handle.read_string(name_addr, 128) + + def get_offset(self) -> int: + """Returns an offset of the prop.""" + return self._handle.read_int(self._start_addr + 0x2C) + + def get_data_table(self) -> "RecvTable": + """Returns a data table for the prop.""" + return RecvTable( + self._handle.read_int(self._start_addr + 0x28), + self._handle + ) + + +class RecvTable: + def __init__(self, start_addr, handle): + self._start_addr = start_addr + self._handle = handle + + def get_table_name(self) -> str: + """Returns a table's name.""" + name_addr = self._handle.read_int(self._start_addr + 0xC) + return self._handle.read_string(name_addr, 128) + + def get_max_props(self) -> int: + """Returns prop's count in a table.""" + return self._handle.read_int(self._start_addr + 0x4) + + def get_prop(self, index): + """Returns prop by the given index.""" + props_addr = self._handle.read_int(self._start_addr) + prop_addr = props_addr + 0x3C * index + if not prop_addr: + return None + return RecvProp(prop_addr, self._handle) + + +class ClientClass: + def __init__(self, start_addr, handle): + self._start_addr = start_addr + self._handle = handle + + def get_next_class(self) -> "ClientClass": + """Returns next client class.""" + return self.__class__( + self._handle.read_int(self._start_addr + 0x10), + self._handle + ) + + def get_table(self) -> RecvTable: + """Returns client class' table.""" + return RecvTable( + self._handle.read_int(self._start_addr + 0xC), + self._handle + ) \ No newline at end of file diff --git a/classes/ui.py b/classes/ui.py new file mode 100644 index 0000000..0538c9d --- /dev/null +++ b/classes/ui.py @@ -0,0 +1,889 @@ +import kivy, sys, os +from kivy.uix.relativelayout import RelativeLayout +from kivy.uix.button import Button +from kivy.uix.label import Label +from kivy.uix.checkbox import CheckBox +from kivy.config import Config +Config.set('kivy','window_icon','images/rainbow.ico') +Config.set('input', 'mouse', 'mouse,multitouch_on_demand') +Config.set('graphics', 'width', '700') +Config.set('graphics', 'height', '400') +Config.set('graphics', 'resizable', False) + +from kivy.uix.textinput import TextInput +from kivy.uix.gridlayout import GridLayout +from kivy.graphics import Rectangle, Color +from kivy.uix.spinner import Spinner +from kivy.uix.colorpicker import ColorPicker +from kivy.lang import Builder +from kivy.app import App + +from kivy.uix.popup import Popup +from functools import partial +from kivy.config import Config +from write_config import write +from key_listen import listen +from read_config import read +from last import last +import datetime + +from multiprocessing import * +import multiprocessing + +sys.path.insert(1, "utils/") +from rank_reveal import rank_reveal + +class draw(App): + def rgba(self, string) : + + string = str(string) + string = string.replace("[", "") + string = string.replace("]", "") + + return tuple(map(float,string.split(', '))) + + def on_text(self, instance, value): + self.config_to_save_name = value + + def on_enter(self, instance): + self.name_of_config_to_write(self) + + def read_config(self, *args) : + self.config_to_load_name = self.spinnerObject_configs.text + + last.write(self, self.config_to_load_name) + read.config(self, self.config_to_load_name) + + ui_color_rgba = self.rgba(draw.ui_color) + self.visuals.background_color = ui_color_rgba + self.settings.background_color = ui_color_rgba + self.aim.background_color = ui_color_rgba + self.misc.background_color = ui_color_rgba + self.config.background_color = ui_color_rgba + + def name_of_config_to_write(self, *args) : + if ".ini" in self.config_name_input.text : + self.config_name_to_save = self.config_name_input.text + else : + self.config_name_to_save = self.config_name_input.text+".ini" + + last.write(self, self.config_name_to_save) + write.config(self, self.config_name_to_save) + + def save_config(self, *args) : + if self.spinnerObject_configs.text != "Select" : + self.config_name_to_save = self.spinnerObject_configs.text + write.config(self, self.config_name_to_save) + + last.write(self, self.config_name_to_save) + + def draw_config(self) : + kv = """ + +FloatLayout: + Label: + text : "Save Config" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.65} + font_size: 20 + Label: + text : "Save as" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.38} + font_size: 20 + Label: + text : ".ini" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.66} + font_size: 20 + Button: + text : "save" + size_hint: 0.08, 0.08 + pos_hint: {"top":0.69, "right": 0.77} + on_release: app.name_of_config_to_write(self) + + Label: + text : "Select Config" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.5, "right": 0.64} + font_size: 20 + Button: + text : "Load" + size_hint: 0.08, 0.08 + pos_hint: {"top":0.3, "right": 0.7} + on_release: app.read_config(self) + Button: + text : "Save" + size_hint: 0.08, 0.08 + pos_hint: {"top":0.3, "right": 0.79} + on_release: app.save_config(self) +""" + self.config_name_input = TextInput(multiline=False, pos_hint={"top":0.688, "right": 0.59}, size_hint=(0.2, 0.08)) + self.config_name_input.bind(on_text_validate=self.on_enter) + self.config_name_input.bind(text=self.on_text) + + folder = "configs/" + filelist = [fname for fname in os.listdir(folder) if fname.endswith('.ini')] + self.spinnerObject_configs = Spinner(text ="Select") + self.spinnerObject_configs.values = filelist + + self.spinnerObject_configs.size_hint = (0.1, 0.1) + self.spinnerObject_configs.pos_hint ={"top":0.30, "right": 0.58} + + sm = Builder.load_string(kv) + self.rl_config = RelativeLayout(size =(0, 0)) + self.rl_config.add_widget(self.config_name_input) + self.rl_config.add_widget(self.spinnerObject_configs) + self.rl_config.add_widget(sm) + self.rl.add_widget(self.rl_config) + + def draw_settings(self) : + kv = """ + +FloatLayout: + Button: + text : "Ui color" + background_color : app.rgba(app.ui_color) + size_hint: 0.1, 0.05 + pos_hint: {"top":0.8, "right": 0.65} + on_release: app.draw_colorwheel("ui_color") +""" + sm = Builder.load_string(kv) + self.rl_settings = RelativeLayout(size =(0, 0)) + self.rl_settings.add_widget(sm) + self.rl.add_widget(self.rl_settings) + + def on_change_slider(self, value, name) : + if name == "slider1" : + try : + self.rl_aim.remove_widget(self.perfect_value_label) + except : + pass + value = round(value, 1) + self.perfect_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.87, "right": 0.99}, text = str(value)) + draw.rcs_perfect = value + self.rl_aim.add_widget(self.perfect_value_label) + + elif name == "slider2" : + try : + self.rl_aim.remove_widget(self.delay_value_label) + except : + pass + value = round(value, 1) + self.delay_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.68, "right": 0.70}, text = str(value)) + draw.t_delay = value + self.rl_aim.add_widget(self.delay_value_label) + + elif name == "slider3" : + try : + self.rl_misc.remove_widget(self.fov_value_label) + except : + pass + value = round(value, 1) + self.fov_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.87, "right": 0.99}, text = str(value)) + draw.fov_value = value + self.rl_misc.add_widget(self.fov_value_label) + + elif name == "slider4" : + try : + self.rl_misc.remove_widget(self.fake_lag_value_label) + except : + pass + value = round(value, 1) + self.fake_lag_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.1, "right": 0.71}, text = str(value)) + draw.fake_lag_value = value + self.rl_misc.add_widget(self.fake_lag_value_label) + + last.write(self, "temp.ini") + write.config(self, "temp.ini") + + def spinners(self, spinner, text, *args): + draw.sound = args[0] + + last.write(self, "temp.ini") + write.config(self, "temp.ini") + + def rank_reveal(self) : + multiprocessing.freeze_support() + t_rank_reveal = Process(target = rank_reveal) + t_rank_reveal.start() + + def draw_misc(self) : + kv = """ + +FloatLayout: + CheckBox: + id : third_person_chk + active : app.third_person + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.48} + on_press: app.on_checkbox_Active(third_person_chk.active, "third person") + Label: + text : "Third Person" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.38} + font_size: 20 + Label: + text : "FOV" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.68} + font_size: 20 + CheckBox: + id : fov_chk + active : app.fov + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.73} + on_press: app.on_checkbox_Active(fov_chk.active, "fov") + Label: + text : "Fov value" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.93, "right": 0.85} + font_size: 15 + Slider: + id: slider3 + value : app.fov_value + min: 0 + max: 180 + size_hint: 0.2, 0.1 + pos_hint: {"top":0.87, "right": 0.91} + on_value: app.on_change_slider(self.value, "slider3") + Label: + text : "Hitsound" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.38} + font_size: 20 + CheckBox: + id : hitsound_chk + active : app.hitsound + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.456} + on_press: app.on_checkbox_Active(hitsound_chk.active, "hitsound") + Label: + text : "Sound :" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.56} + font_size: 18 + CheckBox: + id : sound_esp_chk + active : app.sound_esp + size_hint: 0.1, 0.1 + pos_hint: {"top":0.55, "right": 0.456} + on_press: app.on_checkbox_Active(sound_esp_chk.active, "sound esp") + Label: + text : "Sound ESP" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.55, "right": 0.37} + font_size: 18 + CheckBox: + id : no_flash_chk + active : app.no_flash + size_hint: 0.1, 0.1 + pos_hint: {"top":0.55, "right": 0.83} + on_press: app.on_checkbox_Active(no_flash_chk.active, "no flash") + Label: + text : "No Flash" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.55, "right": 0.76} + font_size: 18 + Label: + text : "Bhop rage" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.4, "right": 0.38} + font_size: 18 + CheckBox: + id : bhop_rage_chk + active : app.bhop_rage + size_hint: 0.1, 0.1 + pos_hint: {"top":0.4, "right": 0.456} + on_press: app.on_checkbox_Active(bhop_rage_chk.active, "bhop rage") + Label: + text : "Bhop legit" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.4, "right": 0.767} + font_size: 18 + CheckBox: + id : bhop_legit_chk + active : app.bhop_legit + size_hint: 0.1, 0.1 + pos_hint: {"top":0.4, "right": 0.84} + on_press: app.on_checkbox_Active(bhop_legit_chk.active, "bhop legit") + Label: + text : "Show Money" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.26, "right": 0.38} + font_size: 18 + CheckBox: + id : show_money_chk + active : app.show_money + size_hint: 0.1, 0.1 + pos_hint: {"top":0.26, "right": 0.47} + on_press: app.on_checkbox_Active(show_money_chk.active, "show money") + Label: + text : "Radar Hack" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.26, "right": 0.77} + font_size: 18 + CheckBox: + id : radar_chk + active : app.radar + size_hint: 0.1, 0.1 + pos_hint: {"top":0.26, "right": 0.856} + on_press: app.on_checkbox_Active(radar_chk.active, "radar") + Label: + text : "Fake lag" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.13, "right": 0.38} + font_size: 20 + CheckBox: + id : fake_lag_chk + active : app.fake_lag + size_hint: 0.1, 0.1 + pos_hint: {"top":0.134, "right": 0.45} + on_press: app.on_checkbox_Active(fake_lag_chk.active, "fake lag") + Label: + text : "Lag in ms" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.16, "right": 0.58} + font_size: 15 + Slider: + id: slider4 + value : app.fake_lag_value + min: 0 + max: 900 + size_hint: 0.2, 0.1 + pos_hint: {"top":0.1, "right": 0.63} + on_value: app.on_change_slider(self.value, "slider4") + Button: + text : "Rank Reveal" + size_hint: 0.13, 0.1 + pos_hint: {"top":0.14, "right": 0.98} + on_release: app.rank_reveal() +""" + self.rl_misc = RelativeLayout(size =(0, 0)) + + folder = "sounds/" + filelist = [fname for fname in os.listdir(folder)] + self.spinnerObject = Spinner(text ="Select") + self.spinnerObject.values = filelist + self.spinnerObject.text = draw.sound + self.spinnerObject.bind(text = partial(self.spinners, "sounds")) + + self.spinnerObject.size_hint = (0.1, 0.1) + self.spinnerObject.pos_hint ={"top":0.7, "right": 0.66} + + self.thirdperson_key_but = Button(size_hint =(.12, .07), pos_hint ={"top":0.88, "right": 0.57}, text = draw.thirdperson_key, background_color='#00f7ff') + self.thirdperson_key_but.bind(on_release=partial(self.key_listen_call, "thirdperson")) + self.rl_misc.add_widget(self.thirdperson_key_but) + + self.fov_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.87, "right": 0.99}, text = str(draw.fov_value)) + self.rl_misc.add_widget(self.fov_value_label) + + self.fake_lag_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.1, "right": 0.71}, text = str(draw.fake_lag_value)) + self.rl_misc.add_widget(self.fake_lag_value_label) + + sm = Builder.load_string(kv) + self.rl_misc.add_widget(self.spinnerObject) + self.rl_misc.add_widget(sm) + self.rl.add_widget(self.rl_misc) + + def draw_aim(self) : + kv = """ + +FloatLayout: + CheckBox: + id : aimbot_chk + active : app.aimbot + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.416} + on_press: app.on_checkbox_Active(aimbot_chk.active, "aimbot") + Label: + text : "Aimbot" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.35} + font_size: 20 + Label: + text : "Triggerbot" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.346} + font_size: 20 + CheckBox: + id : triggerbot_chk + active : app.triggerbot + size_hint: 0.1, 0.1 + pos_hint: {"top":0.7, "right": 0.43} + on_press: app.on_checkbox_Active(triggerbot_chk.active, "triggerbot") + Label: + text : "Delay in ms" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.75, "right": 0.57} + font_size: 15 + Slider: + id: slider2 + value : app.t_delay + min: 0 + max: 600 + size_hint: 0.2, 0.1 + pos_hint: {"top":0.68, "right": 0.62} + on_value: app.on_change_slider(self.value, "slider2") + Label: + text : "RCS" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.67} + font_size: 20 + CheckBox: + id : rcs_chk + active : app.rcs + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.72} + on_press: app.on_checkbox_Active(rcs_chk.active, "rcs") + Label: + text : "Perfection percentage" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.95, "right": 0.85} + font_size: 15 + Slider: + id: slider1 + value : app.rcs_perfect + size_hint: 0.2, 0.1 + pos_hint: {"top":0.87, "right": 0.91} + on_value: app.on_change_slider(self.value, "slider1") + Label: + text : "Rapid Fire" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.5, "right": 0.35} + font_size: 20 + CheckBox: + id : rapid_fire_chk + active : app.rapid_fire + size_hint: 0.1, 0.1 + pos_hint: {"top":0.5, "right": 0.432} + on_press: app.on_checkbox_Active(rapid_fire_chk.active, "rapid fire") + Label: + text : "Silent Aim" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.34, "right": 0.35} + font_size: 20 + CheckBox: + id : silent_aim_chk + active : app.silent_aim + size_hint: 0.1, 0.1 + pos_hint: {"top":0.34, "right": 0.43} + on_press: app.on_checkbox_Active(silent_aim_chk.active, "Silent Aim") + Label: + text : "Crosshair hack" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.34, "right": 0.71} + font_size: 20 + CheckBox: + id : crosshair_chk + active : app.crosshair + size_hint: 0.1, 0.1 + pos_hint: {"top":0.34, "right": 0.82} + on_press: app.on_checkbox_Active(crosshair_chk.active, "crosshair") +""" + + self.rl_aim = RelativeLayout(size =(0, 0)) + + self.rapid_fire_key_but = Button(size_hint =(.12, .07), pos_hint ={"top":0.486, "right": 0.52}, text = draw.rapid_fire_key, background_color='#00f7ff') + self.rapid_fire_key_but.bind(on_release=partial(self.key_listen_call, "rapid fire")) + self.rl_aim.add_widget(self.rapid_fire_key_but) + + self.silent_aim_key_but = Button(size_hint =(.12, .07), pos_hint ={"top":0.33, "right": 0.52}, text = draw.silent_aim_key, background_color='#00f7ff') + self.silent_aim_key_but.bind(on_release=partial(self.key_listen_call, "silent aim")) + self.rl_aim.add_widget(self.silent_aim_key_but) + + self.aimbot_key_but = Button(size_hint =(.12, .07), pos_hint ={"top":0.88, "right": 0.51}, text = draw.aimbot_key, background_color='#00f7ff') + self.aimbot_key_but.bind(on_release=partial(self.key_listen_call, "aimbot")) + self.rl_aim.add_widget(self.aimbot_key_but) + + self.triggerbot_key_but = Button(size_hint =(.12, .07), pos_hint ={"top":0.68, "right": 0.8}, text = draw.triggerbot_key, background_color='#00f7ff') + self.triggerbot_key_but.bind(on_release=partial(self.key_listen_call, "triggerbot")) + self.rl_aim.add_widget(self.triggerbot_key_but) + + self.perfect_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.87, "right": 0.99}, text = str(draw.rcs_perfect)) + self.rl_aim.add_widget(self.perfect_value_label) + + self.delay_value_label = Label(size_hint =( 0.1, 0.1), pos_hint ={"top":0.68, "right": 0.70}, text = str(draw.t_delay)) + self.rl_aim.add_widget(self.delay_value_label) + + sm = Builder.load_string(kv) + self.rl_aim.add_widget(sm) + self.rl.add_widget(self.rl_aim) + + def key_listen_call(self, *args) : + + key = str(listen.key(self)) + key = key.replace("'", "") + + if args[0] == "rapid fire" : + self.rapid_fire_key_but.text = key + draw.rapid_fire_key = key + + if args[0] == "silent aim" : + self.silent_aim_key_but.text = key + draw.silent_aim_key = key + + if args[0] == "aimbot" : + self.aimbot_key_but.text = key + draw.aimbot_key = key + + if args[0] == "triggerbot" : + self.triggerbot_key_but.text = key + draw.triggerbot_key = key + + if args[0] == "thirdperson" : + self.thirdperson_key_but.text = key + draw.thirdperson_key = key + + last.write(self, "temp.ini") + write.config(self, "temp.ini") + + + def on_color(self, instance, value): + + if value != [1.0, 1.0, 1.0, 1] : + if draw.name == "allies_glow" : + draw.allies_glow_color = value + elif draw.name == "ennemies_glow" : + draw.ennemies_glow_color = value + elif draw.name == "allies_chams" : + draw.allies_chams_color = value + elif draw.name == "ennemies_chams" : + draw.ennemies_chams_color = value + + elif draw.name == "ui_color" : + draw.ui_color = value + self.visuals.background_color = value + self.settings.background_color = value + self.aim.background_color = value + self.misc.background_color = value + self.config.background_color = value + + last.write(self, "temp.ini") + write.config(self, "temp.ini") + + def draw_colorwheel(self, name) : + draw.name = name + clr_picker = ColorPicker(size_hint =(.5, .5), pos_hint ={"top":0.72, "right": 0.86}) + clr_picker.bind(color=self.on_color) + + if name == "ennemies_glow" : + try : + self.rl_visuals.remove_widget(self.rl_wheel_ennemies) + self.rl_wheel_ennemies = None + return + except : + self.rl_wheel_ennemies = RelativeLayout(size =(0, 0)) + self.rl_wheel_ennemies.add_widget(clr_picker) + self.rl_visuals.add_widget(self.rl_wheel_ennemies) + + elif name == "allies_glow" : + try : + self.rl_visuals.remove_widget(self.rl_wheel_allies) + self.rl_wheel_allies = None + return + except : + self.rl_wheel_allies = RelativeLayout(size =(0, 0)) + self.rl_wheel_allies.add_widget(clr_picker) + self.rl_visuals.add_widget(self.rl_wheel_allies) + + elif name == "ennemies_chams" : + try : + self.rl_visuals.remove_widget(self.rl_wheel_ennemies_chams) + self.rl_wheel_ennemies_chams = None + return + except : + self.rl_wheel_ennemies_chams = RelativeLayout(size =(0, 0)) + self.rl_wheel_ennemies_chams.add_widget(clr_picker) + self.rl_visuals.add_widget(self.rl_wheel_ennemies_chams) + + elif name == "allies_chams" : + try : + self.rl_visuals.remove_widget(self.rl_wheel_allies_chams) + self.rl_wheel_allies_chams = None + return + except : + self.rl_wheel_allies_chams = RelativeLayout(size =(0, 0)) + self.rl_wheel_allies_chams.add_widget(clr_picker) + self.rl_visuals.add_widget(self.rl_wheel_allies_chams) + + elif name == "ui_color" : + try : + self.rl_settings.remove_widget(self.rl_wheel_ui) + self.rl_wheel_ui = None + return + except : + self.rl_wheel_ui = RelativeLayout(size =(0, 0)) + self.rl_wheel_ui.add_widget(clr_picker) + self.rl_settings.add_widget(self.rl_wheel_ui) + + def draw_visuals(self) : + + kv = """ + +FloatLayout: + CheckBox: + id : glow_chk + active : app.glow_active + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.45} + on_press: app.on_checkbox_Active(glow_chk.active, "glow") + Label: + text : "Glow" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.39} + font_size: 20 + Label: + text : "Enemies" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.65} + font_size: 20 + CheckBox: + id : glow_chk_ennemies + active : app.glow_ennemies + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.57} + on_press: app.on_checkbox_Active(glow_chk_ennemies.active, "glow_ennemies") + Button: + text : "Pick color" + background_color : app.rgba(app.ennemies_glow_color) + size_hint: 0.1, 0.05 + pos_hint: {"top":0.8, "right": 0.65} + on_release: app.draw_colorwheel("ennemies_glow") + Label: + text : "Allies" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.9} + font_size: 20 + CheckBox: + id : glow_chk_allies + active : app.glow_allies + size_hint: 0.1, 0.1 + pos_hint: {"top":0.9, "right": 0.84} + on_press: app.on_checkbox_Active(glow_chk_allies.active, "glow_allies") + Button: + text : "Pick color" + background_color : app.rgba(app.allies_glow_color) + size_hint: 0.1, 0.05 + pos_hint: {"top":0.8, "right": 0.9} + on_release: app.draw_colorwheel("allies_glow") + + Label: + text : "Based on health" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.83, "right": 0.39} + font_size: 20 + CheckBox: + id : glow_health_based + active : app.glow_health_based + size_hint: 0.1, 0.1 + pos_hint: {"top":0.83, "right": 0.52} + on_press: app.on_checkbox_Active(glow_health_based.active, "glow_health_based") + + CheckBox: + id : chams_chk + active : app.chams_active + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.45} + on_press: app.on_checkbox_Active(chams_chk.active, "chams") + Label: + text : "Chams" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.38} + font_size: 20 + Label: + text : "Based on health" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.13, "right": 0.39} + font_size: 20 + CheckBox: + id : chams_health_based + active : app.chams_health_based + size_hint: 0.1, 0.1 + pos_hint: {"top":0.13, "right": 0.52} + on_press: app.on_checkbox_Active(chams_health_based.active, "chams_health_based") + Label: + text : "Enemies" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.65} + font_size: 20 + CheckBox: + id : chams_chk_ennemies + active : app.chams_ennemies + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.57} + on_press: app.on_checkbox_Active(chams_chk_ennemies.active, "chams_ennemies") + Button: + text : "Pick color" + background_color : app.rgba(app.ennemies_chams_color) + size_hint: 0.1, 0.05 + pos_hint: {"top":0.1, "right": 0.65} + on_release: app.draw_colorwheel("ennemies_chams") + Label: + text : "Allies" + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.9} + font_size: 20 + CheckBox: + id : chams_chk_allies + active : app.chams_allies + size_hint: 0.1, 0.1 + pos_hint: {"top":0.2, "right": 0.84} + on_press: app.on_checkbox_Active(chams_chk_allies.active, "chams_allies") + Button: + text : "Pick color" + background_color : app.rgba(app.allies_chams_color) + size_hint: 0.1, 0.05 + pos_hint: {"top":0.1, "right": 0.9} + on_release: app.draw_colorwheel("allies_chams") +""" + + sm = Builder.load_string(kv) + self.rl_visuals = RelativeLayout(size =(0, 0)) + self.rl_visuals.add_widget(sm) + self.rl.add_widget(self.rl_visuals) + + def on_checkbox_Active(self, isActive, *args) : + if args[0] == "glow" : + draw.glow_active = isActive + elif args[0] == "chams" : + draw.chams_active = isActive + elif args[0] == "chams_allies" : + draw.chams_allies = isActive + elif args[0] == "chams_ennemies" : + draw.chams_ennemies = isActive + elif args[0] == "glow_allies" : + draw.glow_allies = isActive + elif args[0] == "glow_ennemies" : + draw.glow_ennemies = isActive + elif args[0] == "glow_health_based" : + draw.glow_health_based = isActive + elif args[0] == "chams_health_based" : + draw.chams_health_based = isActive + elif args[0] == "aimbot" : + draw.aimbot = isActive + elif args[0] == "triggerbot" : + draw.triggerbot = isActive + elif args[0] == "rcs" : + draw.rcs = isActive + elif args[0] == "rapid fire" : + draw.rapid_fire = isActive + elif args[0] == "Silent Aim" : + draw.silent_aim = isActive + elif args[0] == "crosshair" : + draw.crosshair = isActive + elif args[0] == "third person" : + draw.third_person = isActive + elif args[0] == "fov" : + draw.fov = isActive + elif args[0] == "fake lag" : + draw.fake_lag = isActive + elif args[0] == "hitsound" : + draw.hitsound = isActive + elif args[0] == "sound esp" : + draw.sound_esp = isActive + elif args[0] == "show money" : + draw.show_money = isActive + elif args[0] == "no flash" : + draw.no_flash = isActive + elif args[0] == "radar" : + draw.radar = isActive + elif args[0] == "bhop rage" : + draw.bhop_rage = isActive + elif args[0] == "bhop legit" : + draw.bhop_legit = isActive + + last.write(self, "temp.ini") + write.config(self, "temp.ini") + + def disable(self, instance, *args): + if self.start == True : + self.rl.remove_widget(self.rl_start_window) + self.start = False + + if self.visuals.disabled == True : + self.rl.remove_widget(self.rl_visuals) + + if self.aim.disabled == True : + self.rl.remove_widget(self.rl_aim) + + if self.misc.disabled == True : + self.rl.remove_widget(self.rl_misc) + + if self.settings.disabled == True : + self.rl.remove_widget(self.rl_settings) + + if self.config.disabled == True : + self.rl.remove_widget(self.rl_config) + + self.visuals.disabled = False + self.aim.disabled = False + self.misc.disabled = False + self.config.disabled = False + self.settings.disabled = False + instance.disabled = True + + if self.settings.disabled == True : + self.draw_settings() + + if self.visuals.disabled == True : + self.draw_visuals() + + if self.aim.disabled == True : + self.draw_aim() + + if self.misc.disabled == True : + self.draw_misc() + + if self.config.disabled == True : + self.draw_config() + + def build(self): + self.start = True + self.config_to_load_name = last.read(self) + read.config(self, self.config_to_load_name) + + ui_color_rgba = self.rgba(draw.ui_color) + + self.title = 'Rainbow CSGO Cheat v1' + Config.set('input', 'mouse', 'mouse,multitouch_on_demand') + Config.set('graphics', 'width', '700') + Config.set('graphics', 'height', '400') + Config.set('graphics', 'resizable', False) + + self.rl = RelativeLayout(size =(0, 0)) + + self.visuals = Button(size_hint =(.2, .21), pos_hint ={'center_x':.100, 'center_y':.893}, text ="Visuals", background_color=ui_color_rgba) + self.visuals.bind(on_press=partial(self.disable, self.visuals)) + + self.aim = Button(size_hint =(.2, .2), pos_hint ={'center_x':.100, 'center_y':.690}, text ="Aim", background_color=ui_color_rgba) + self.aim.bind(on_press=partial(self.disable, self.aim)) + + self.misc = Button(size_hint =(.2, .2), pos_hint ={'center_x':.100, 'center_y':.493}, text ="Misc.", background_color=ui_color_rgba) + self.misc.bind(on_press=partial(self.disable, self.misc)) + + self.config = Button(size_hint =(.2, .2), pos_hint ={'center_x':.100, 'center_y':.296}, text ="Config", background_color=ui_color_rgba) + self.config.bind(on_press=partial(self.disable, self.config)) + + self.settings = Button(size_hint =(.2, .2), pos_hint ={'center_x':.100, 'center_y':.099}, text ="Settings", background_color=ui_color_rgba) + self.settings.bind(on_press=partial(self.disable, self.settings)) + + self.cheat_name_label = Label(size_hint =(.2, .2), pos_hint={"top":0.98, "right": 0.6}, text="Rainbow Recode v1 | Elapsed: ", font_size = 25) + self.elapsed_label = Label(size_hint =(.2, .2), pos_hint={"top":0.98, "right": 0.9}, text=str(datetime.datetime.now().strftime('%H:%M:%S')), font_size = 25) + self.status_label = Label(size_hint =(.2, .2), pos_hint={"top":0.7, "right": 0.44}, text="Status : ", font_size = 23) + self.undetected_label = Label(size_hint =(.2, .2), pos_hint={"top":0.7, "right": 0.6}, text="Undetected", font_size = 23, color="green") + + self.rl_start_window = RelativeLayout(size =(0, 0)) + self.rl_start_window.add_widget(self.undetected_label) + self.rl_start_window.add_widget(self.status_label) + self.rl_start_window.add_widget(self.cheat_name_label) + self.rl_start_window.add_widget(self.elapsed_label) + + self.rl.add_widget(self.rl_start_window) + self.rl.add_widget(self.settings) + self.rl.add_widget(self.config) + self.rl.add_widget(self.visuals) + self.rl.add_widget(self.aim) + self.rl.add_widget(self.misc) + + return self.rl \ No newline at end of file diff --git a/classes/write_config.py b/classes/write_config.py new file mode 100644 index 0000000..495ee6c --- /dev/null +++ b/classes/write_config.py @@ -0,0 +1,66 @@ +from configparser import ConfigParser +from importlib import reload +import ui + +class write() : + + def config(self, name) : + + config_object = ConfigParser() + + config_object["VISUALS"] = { + "glow_active": ui.draw.glow_active, + "glow_health_based": ui.draw.glow_health_based, + "glow_ennemies": ui.draw.glow_ennemies, + "ennemies_glow_color": ui.draw.ennemies_glow_color, + "glow_allies": ui.draw.glow_allies, + "allies_glow_color": ui.draw.allies_glow_color, + "chams_active": ui.draw.chams_active, + "chams_health_based": ui.draw.chams_health_based, + "chams_ennemies": ui.draw.chams_ennemies, + "ennemies_chams_color": ui.draw.ennemies_chams_color, + "chams_allies": ui.draw.chams_allies, + "allies_chams_color": ui.draw.allies_chams_color + } + + config_object["AIM"] = { + "aimbot": ui.draw.aimbot, + "aimbot_key": ui.draw.aimbot_key, + "rcs": ui.draw.rcs, + "rcs_perfect": ui.draw.rcs_perfect, + "triggerbot": ui.draw.triggerbot, + "t_delay": ui.draw.t_delay, + "triggerbot_key": ui.draw.triggerbot_key, + "rapid_fire": ui.draw.rapid_fire, + "rapid_fire_key": ui.draw.rapid_fire_key, + "silent_aim": ui.draw.silent_aim, + "silent_aim_key": ui.draw.silent_aim_key, + "crosshair": ui.draw.crosshair + } + + config_object["MISC"] = { + "third_person": ui.draw.third_person, + "thirdperson_key": ui.draw.thirdperson_key, + "fov": ui.draw.fov, + "fov_value": ui.draw.fov_value, + "hitsound": ui.draw.hitsound, + "sound": ui.draw.sound, + "sound_esp": ui.draw.sound_esp, + "no_flash": ui.draw.no_flash, + "bhop_rage": ui.draw.bhop_rage, + "bhop_legit": ui.draw.bhop_legit, + "show_money": ui.draw.show_money, + "radar": ui.draw.radar, + "fake_lag": ui.draw.fake_lag, + "fake_lag_value": ui.draw.fake_lag_value + + } + + config_object["SETTINGS"] = { + "ui_color": ui.draw.ui_color + } + + with open('configs/'+name, 'w') as configfile: + configfile.seek(0) + configfile.truncate() + config_object.write(configfile) \ No newline at end of file