Updated to work with the knifechanger
This commit is contained in:
329
classes/features_check.py
Normal file
329
classes/features_check.py
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
from multiprocessing import *
|
||||||
|
import multiprocessing
|
||||||
|
|
||||||
|
import sys, time, ctypes
|
||||||
|
import importlib
|
||||||
|
import pymem
|
||||||
|
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
|
||||||
|
from skinchanger import skinchanger_func
|
||||||
|
from knifechanger import knifechanger_func
|
||||||
|
from Offsets import *
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
t_skinchanger = Process(target = skinchanger_func)
|
||||||
|
t_skinchanger.start()
|
||||||
|
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
t_knifechanger = Process(target = knifechanger_func)
|
||||||
|
t_knifechanger.start()
|
||||||
|
|
||||||
|
try :
|
||||||
|
pm = pymem.Pymem("csgo.exe")
|
||||||
|
except :
|
||||||
|
MessageBox = ctypes.windll.user32.MessageBoxW
|
||||||
|
MessageBox(None, 'Could not find the csgo.exe process !', 'Error', 16)
|
||||||
|
return
|
||||||
|
|
||||||
|
engine = pymem.process.module_from_name(pm.process_handle, "engine.dll").lpBaseOfDll
|
||||||
|
|
||||||
|
|
||||||
|
while True :
|
||||||
|
try :
|
||||||
|
time.sleep(0.3)
|
||||||
|
|
||||||
|
engine_state = pm.read_int( engine + dwClientState )
|
||||||
|
|
||||||
|
if pm.read_int(engine_state + dwClientState_State) != 6 and t_knifechanger.is_alive() : #and t_skinchanger.is_alive():
|
||||||
|
t_skinchanger.terminate()
|
||||||
|
t_knifechanger.terminate()
|
||||||
|
|
||||||
|
elif pm.read_int(engine_state + dwClientState_State) == 6 and not t_knifechanger.is_alive() : #and not t_skinchanger.is_alive() :
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
t_skinchanger = Process(target = skinchanger_func)
|
||||||
|
t_skinchanger.start()
|
||||||
|
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
t_knifechanger = Process(target = knifechanger_func)
|
||||||
|
t_knifechanger.start()
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
471
classes/features_reads.py
Normal file
471
classes/features_reads.py
Normal file
@@ -0,0 +1,471 @@
|
|||||||
|
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')
|
||||||
|
return
|
||||||
|
|
||||||
|
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')
|
||||||
|
return
|
||||||
|
|
||||||
|
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')
|
||||||
|
return
|
||||||
|
|
||||||
|
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')
|
||||||
|
return
|
||||||
|
|
||||||
|
elif args[0] == "skinchanger" :
|
||||||
|
#SKINCHANGER
|
||||||
|
features_check.check.AK47 = config.get('SKINCHANGER', 'AK47')
|
||||||
|
features_check.check.AK47_f = config.get('SKINCHANGER', 'AK47_f')
|
||||||
|
features_check.check.AK47_st = config.get('SKINCHANGER', 'AK47_st')
|
||||||
|
features_check.check.AK47_stv = config.get('SKINCHANGER', 'AK47_stv')
|
||||||
|
features_check.check.AK47_se = config.get('SKINCHANGER', 'AK47_se')
|
||||||
|
features_check.check.AUG = config.get('SKINCHANGER', 'AUG')
|
||||||
|
features_check.check.AUG_f = config.get('SKINCHANGER', 'AUG_f')
|
||||||
|
features_check.check.AUG_st = config.get('SKINCHANGER', 'AUG_st')
|
||||||
|
features_check.check.AUG_stv = config.get('SKINCHANGER', 'AUG_stv')
|
||||||
|
features_check.check.AUG_se = config.get('SKINCHANGER', 'AUG_se')
|
||||||
|
features_check.check.AWP = config.get('SKINCHANGER', 'AWP')
|
||||||
|
features_check.check.AWP_f = config.get('SKINCHANGER', 'AWP_f')
|
||||||
|
features_check.check.AWP_st = config.get('SKINCHANGER', 'AWP_st')
|
||||||
|
features_check.check.AWP_stv = config.get('SKINCHANGER', 'AWP_stv')
|
||||||
|
features_check.check.AWP_se = config.get('SKINCHANGER', 'AWP_se')
|
||||||
|
features_check.check.CZ75Auto = config.get('SKINCHANGER', 'CZ75Auto')
|
||||||
|
features_check.check.CZ75Auto_f = config.get('SKINCHANGER', 'CZ75Auto_f')
|
||||||
|
features_check.check.CZ75Auto_st = config.get('SKINCHANGER', 'CZ75Auto_st')
|
||||||
|
features_check.check.CZ75Auto_stv = config.get('SKINCHANGER', 'CZ75Auto_stv')
|
||||||
|
features_check.check.CZ75Auto_se = config.get('SKINCHANGER', 'CZ75Auto_se')
|
||||||
|
features_check.check.Desert_Eagle = config.get('SKINCHANGER', 'Desert_Eagle')
|
||||||
|
features_check.check.Desert_Eagle_f = config.get('SKINCHANGER', 'Desert_Eagle_f')
|
||||||
|
features_check.check.Desert_Eagle_st = config.get('SKINCHANGER', 'Desert_Eagle_st')
|
||||||
|
features_check.check.Desert_Eagle_stv = config.get('SKINCHANGER', 'Desert_Eagle_stv')
|
||||||
|
features_check.check.Desert_Eagle_se = config.get('SKINCHANGER', 'Desert_Eagle_se')
|
||||||
|
features_check.check.Dual_Berettas = config.get('SKINCHANGER', 'Dual_Berettas')
|
||||||
|
features_check.check.Dual_Berettas_f = config.get('SKINCHANGER', 'Dual_Berettas_f')
|
||||||
|
features_check.check.Dual_Berettas_st = config.get('SKINCHANGER', 'Dual_Berettas_st')
|
||||||
|
features_check.check.Dual_Berettas_stv = config.get('SKINCHANGER', 'Dual_Berettas_stv')
|
||||||
|
features_check.check.Dual_Berettas_se = config.get('SKINCHANGER', 'Dual_Berettas_se')
|
||||||
|
features_check.check.FAMAS = config.get('SKINCHANGER', 'FAMAS')
|
||||||
|
features_check.check.FAMAS_f = config.get('SKINCHANGER', 'FAMAS_f')
|
||||||
|
features_check.check.FAMAS_st = config.get('SKINCHANGER', 'FAMAS_st')
|
||||||
|
features_check.check.FAMAS_stv = config.get('SKINCHANGER', 'FAMAS_stv')
|
||||||
|
features_check.check.FAMAS_se = config.get('SKINCHANGER', 'FAMAS_se')
|
||||||
|
features_check.check.FiveSeven = config.get('SKINCHANGER', 'FiveSeven')
|
||||||
|
features_check.check.FiveSeven_f = config.get('SKINCHANGER', 'FiveSeven_f')
|
||||||
|
features_check.check.FiveSeven_st = config.get('SKINCHANGER', 'FiveSeven_st')
|
||||||
|
features_check.check.FiveSeven_stv = config.get('SKINCHANGER', 'FiveSeven_stv')
|
||||||
|
features_check.check.FiveSeven_se = config.get('SKINCHANGER', 'FiveSeven_se')
|
||||||
|
features_check.check.G3SG1 = config.get('SKINCHANGER', 'G3SG1')
|
||||||
|
features_check.check.G3SG1_f = config.get('SKINCHANGER', 'G3SG1_f')
|
||||||
|
features_check.check.G3SG1_st = config.get('SKINCHANGER', 'G3SG1_st')
|
||||||
|
features_check.check.G3SG1_stv = config.get('SKINCHANGER', 'G3SG1_stv')
|
||||||
|
features_check.check.G3SG1_se = config.get('SKINCHANGER', 'G3SG1_se')
|
||||||
|
features_check.check.Galil_AR = config.get('SKINCHANGER', 'Galil_AR')
|
||||||
|
features_check.check.Galil_AR_f = config.get('SKINCHANGER', 'Galil_AR_f')
|
||||||
|
features_check.check.Galil_AR_st = config.get('SKINCHANGER', 'Galil_AR_st')
|
||||||
|
features_check.check.Galil_AR_stv = config.get('SKINCHANGER', 'Galil_AR_stv')
|
||||||
|
features_check.check.Galil_AR_se = config.get('SKINCHANGER', 'Galil_AR_se')
|
||||||
|
features_check.check.Glock18 = config.get('SKINCHANGER', 'Glock18')
|
||||||
|
features_check.check.Glock18_f = config.get('SKINCHANGER', 'Glock18_f')
|
||||||
|
features_check.check.Glock18_st = config.get('SKINCHANGER', 'Glock18_st')
|
||||||
|
features_check.check.Glock18_stv = config.get('SKINCHANGER', 'Glock18_stv')
|
||||||
|
features_check.check.Glock18_se = config.get('SKINCHANGER', 'Glock18_se')
|
||||||
|
features_check.check.M249 = config.get('SKINCHANGER', 'M249')
|
||||||
|
features_check.check.M249_f = config.get('SKINCHANGER', 'M249_f')
|
||||||
|
features_check.check.M249_st = config.get('SKINCHANGER', 'M249_st')
|
||||||
|
features_check.check.M249_stv = config.get('SKINCHANGER', 'M249_stv')
|
||||||
|
features_check.check.M249_se = config.get('SKINCHANGER', 'M249_se')
|
||||||
|
features_check.check.M4A1S = config.get('SKINCHANGER', 'M4A1S')
|
||||||
|
features_check.check.M4A1S_f = config.get('SKINCHANGER', 'M4A1S_f')
|
||||||
|
features_check.check.M4A1S_st = config.get('SKINCHANGER', 'M4A1S_st')
|
||||||
|
features_check.check.M4A1S_stv = config.get('SKINCHANGER', 'M4A1S_stv')
|
||||||
|
features_check.check.M4A1S_se = config.get('SKINCHANGER', 'M4A1S_se')
|
||||||
|
features_check.check.M4A4 = config.get('SKINCHANGER', 'M4A4')
|
||||||
|
features_check.check.M4A4_f = config.get('SKINCHANGER', 'M4A4_f')
|
||||||
|
features_check.check.M4A4_st = config.get('SKINCHANGER', 'M4A4_st')
|
||||||
|
features_check.check.M4A4_stv = config.get('SKINCHANGER', 'M4A4_stv')
|
||||||
|
features_check.check.M4A4_se = config.get('SKINCHANGER', 'M4A4_se')
|
||||||
|
features_check.check.MAC10 = config.get('SKINCHANGER', 'MAC10')
|
||||||
|
features_check.check.MAC10_f = config.get('SKINCHANGER', 'MAC10_f')
|
||||||
|
features_check.check.MAC10_st = config.get('SKINCHANGER', 'MAC10_st')
|
||||||
|
features_check.check.MAC10_stv = config.get('SKINCHANGER', 'MAC10_stv')
|
||||||
|
features_check.check.MAC10_se = config.get('SKINCHANGER', 'MAC10_se')
|
||||||
|
features_check.check.MAG7 = config.get('SKINCHANGER', 'MAG7')
|
||||||
|
features_check.check.MAG7_f = config.get('SKINCHANGER', 'MAG7_f')
|
||||||
|
features_check.check.MAG7_st = config.get('SKINCHANGER', 'MAG7_st')
|
||||||
|
features_check.check.MAG7_stv = config.get('SKINCHANGER', 'MAG7_stv')
|
||||||
|
features_check.check.MAG7_se = config.get('SKINCHANGER', 'MAG7_se')
|
||||||
|
features_check.check.MP5SD = config.get('SKINCHANGER', 'MP5SD')
|
||||||
|
features_check.check.MP5SD_f = config.get('SKINCHANGER', 'MP5SD_f')
|
||||||
|
features_check.check.MP5SD_st = config.get('SKINCHANGER', 'MP5SD_st')
|
||||||
|
features_check.check.MP5SD_stv = config.get('SKINCHANGER', 'MP5SD_stv')
|
||||||
|
features_check.check.MP5SD_se = config.get('SKINCHANGER', 'MP5SD_se')
|
||||||
|
features_check.check.MP7 = config.get('SKINCHANGER', 'MP7')
|
||||||
|
features_check.check.MP7_f = config.get('SKINCHANGER', 'MP7_f')
|
||||||
|
features_check.check.MP7_st = config.get('SKINCHANGER', 'MP7_st')
|
||||||
|
features_check.check.MP7_stv = config.get('SKINCHANGER', 'MP7_stv')
|
||||||
|
features_check.check.MP7_se = config.get('SKINCHANGER', 'MP7_se')
|
||||||
|
features_check.check.MP9 = config.get('SKINCHANGER', 'MP9')
|
||||||
|
features_check.check.MP9_f = config.get('SKINCHANGER', 'MP9_f')
|
||||||
|
features_check.check.MP9_st = config.get('SKINCHANGER', 'MP9_st')
|
||||||
|
features_check.check.MP9_stv = config.get('SKINCHANGER', 'MP9_stv')
|
||||||
|
features_check.check.MP9_se = config.get('SKINCHANGER', 'MP9_se')
|
||||||
|
features_check.check.Negev = config.get('SKINCHANGER', 'Negev')
|
||||||
|
features_check.check.Negev_f = config.get('SKINCHANGER', 'Negev_f')
|
||||||
|
features_check.check.Negev_st = config.get('SKINCHANGER', 'Negev_st')
|
||||||
|
features_check.check.Negev_stv = config.get('SKINCHANGER', 'Negev_stv')
|
||||||
|
features_check.check.Negev_se = config.get('SKINCHANGER', 'Negev_se')
|
||||||
|
features_check.check.Nova = config.get('SKINCHANGER', 'Nova')
|
||||||
|
features_check.check.Nova_f = config.get('SKINCHANGER', 'Nova_f')
|
||||||
|
features_check.check.Nova_st = config.get('SKINCHANGER', 'Nova_st')
|
||||||
|
features_check.check.Nova_stv = config.get('SKINCHANGER', 'Nova_stv')
|
||||||
|
features_check.check.Nova_se = config.get('SKINCHANGER', 'Nova_se')
|
||||||
|
features_check.check.P2000 = config.get('SKINCHANGER', 'P2000')
|
||||||
|
features_check.check.P2000_f = config.get('SKINCHANGER', 'P2000_f')
|
||||||
|
features_check.check.P2000_st = config.get('SKINCHANGER', 'P2000_st')
|
||||||
|
features_check.check.P2000_stv = config.get('SKINCHANGER', 'P2000_stv')
|
||||||
|
features_check.check.P2000_se = config.get('SKINCHANGER', 'P2000_se')
|
||||||
|
features_check.check.P250 = config.get('SKINCHANGER', 'P250')
|
||||||
|
features_check.check.P250_f = config.get('SKINCHANGER', 'P250_f')
|
||||||
|
features_check.check.P250_st = config.get('SKINCHANGER', 'P250_st')
|
||||||
|
features_check.check.P250_stv = config.get('SKINCHANGER', 'P250_stv')
|
||||||
|
features_check.check.P250_se = config.get('SKINCHANGER', 'P250_se')
|
||||||
|
features_check.check.P90 = config.get('SKINCHANGER', 'P90')
|
||||||
|
features_check.check.P90_f = config.get('SKINCHANGER', 'P90_f')
|
||||||
|
features_check.check.P90_st = config.get('SKINCHANGER', 'P90_st')
|
||||||
|
features_check.check.P90_stv = config.get('SKINCHANGER', 'P90_stv')
|
||||||
|
features_check.check.P90_se = config.get('SKINCHANGER', 'P90_se')
|
||||||
|
features_check.check.PPBizon = config.get('SKINCHANGER', 'PPBizon')
|
||||||
|
features_check.check.PPBizon_f = config.get('SKINCHANGER', 'PPBizon_f')
|
||||||
|
features_check.check.PPBizon_st = config.get('SKINCHANGER', 'PPBizon_st')
|
||||||
|
features_check.check.PPBizon_stv = config.get('SKINCHANGER', 'PPBizon_stv')
|
||||||
|
features_check.check.PPBizon_se = config.get('SKINCHANGER', 'PPBizon_se')
|
||||||
|
features_check.check.R8_Revolver = config.get('SKINCHANGER', 'R8_Revolver')
|
||||||
|
features_check.check.R8_Revolver_f = config.get('SKINCHANGER', 'R8_Revolver_f')
|
||||||
|
features_check.check.R8_Revolver_st = config.get('SKINCHANGER', 'R8_Revolver_st')
|
||||||
|
features_check.check.R8_Revolver_stv = config.get('SKINCHANGER', 'R8_Revolver_stv')
|
||||||
|
features_check.check.R8_Revolver_se = config.get('SKINCHANGER', 'R8_Revolver_se')
|
||||||
|
features_check.check.SCAR20 = config.get('SKINCHANGER', 'SCAR20')
|
||||||
|
features_check.check.SCAR20_f = config.get('SKINCHANGER', 'SCAR20_f')
|
||||||
|
features_check.check.SCAR20_st = config.get('SKINCHANGER', 'SCAR20_st')
|
||||||
|
features_check.check.SCAR20_stv = config.get('SKINCHANGER', 'SCAR20_stv')
|
||||||
|
features_check.check.SCAR20_se = config.get('SKINCHANGER', 'SCAR20_se')
|
||||||
|
features_check.check.SG_553 = config.get('SKINCHANGER', 'SG_553')
|
||||||
|
features_check.check.SG_553_f = config.get('SKINCHANGER', 'SG_553_f')
|
||||||
|
features_check.check.SG_553_st = config.get('SKINCHANGER', 'SG_553_st')
|
||||||
|
features_check.check.SG_553_stv = config.get('SKINCHANGER', 'SG_553_stv')
|
||||||
|
features_check.check.SG_553_se = config.get('SKINCHANGER', 'SG_553_se')
|
||||||
|
features_check.check.SSG_08 = config.get('SKINCHANGER', 'SSG_08')
|
||||||
|
features_check.check.SSG_08_f = config.get('SKINCHANGER', 'SSG_08_f')
|
||||||
|
features_check.check.SSG_08_st = config.get('SKINCHANGER', 'SSG_08_st')
|
||||||
|
features_check.check.SSG_08_stv = config.get('SKINCHANGER', 'SSG_08_stv')
|
||||||
|
features_check.check.SSG_08_se = config.get('SKINCHANGER', 'SSG_08_se')
|
||||||
|
features_check.check.SawedOff = config.get('SKINCHANGER', 'SawedOff')
|
||||||
|
features_check.check.SawedOff_f = config.get('SKINCHANGER', 'SawedOff_f')
|
||||||
|
features_check.check.SawedOff_st = config.get('SKINCHANGER', 'SawedOff_st')
|
||||||
|
features_check.check.SawedOff_stv = config.get('SKINCHANGER', 'SawedOff_stv')
|
||||||
|
features_check.check.SawedOff_se = config.get('SKINCHANGER', 'SawedOff_se')
|
||||||
|
features_check.check.Tec9 = config.get('SKINCHANGER', 'Tec9')
|
||||||
|
features_check.check.Tec9_f = config.get('SKINCHANGER', 'Tec9_f')
|
||||||
|
features_check.check.Tec9_st = config.get('SKINCHANGER', 'Tec9_st')
|
||||||
|
features_check.check.Tec9_stv = config.get('SKINCHANGER', 'Tec9_stv')
|
||||||
|
features_check.check.Tec9_se = config.get('SKINCHANGER', 'Tec9_se')
|
||||||
|
features_check.check.UMP45 = config.get('SKINCHANGER', 'UMP45')
|
||||||
|
features_check.check.UMP45_f = config.get('SKINCHANGER', 'UMP45_f')
|
||||||
|
features_check.check.UMP45_st = config.get('SKINCHANGER', 'UMP45_st')
|
||||||
|
features_check.check.UMP45_stv = config.get('SKINCHANGER', 'UMP45_stv')
|
||||||
|
features_check.check.UMP45_se = config.get('SKINCHANGER', 'UMP45_se')
|
||||||
|
features_check.check.USPS = config.get('SKINCHANGER', 'USPS')
|
||||||
|
features_check.check.USPS_f = config.get('SKINCHANGER', 'USPS_f')
|
||||||
|
features_check.check.USPS_st = config.get('SKINCHANGER', 'USPS_st')
|
||||||
|
features_check.check.USPS_stv = config.get('SKINCHANGER', 'USPS_stv')
|
||||||
|
features_check.check.USPS_se = config.get('SKINCHANGER', 'USPS_se')
|
||||||
|
features_check.check.XM1014 = config.get('SKINCHANGER', 'XM1014')
|
||||||
|
features_check.check.XM1014_f = config.get('SKINCHANGER', 'XM1014_f')
|
||||||
|
features_check.check.XM1014_st = config.get('SKINCHANGER', 'XM1014_st')
|
||||||
|
features_check.check.XM1014_stv = config.get('SKINCHANGER', 'XM1014_stv')
|
||||||
|
features_check.check.XM1014_se = config.get('SKINCHANGER', 'XM1014_se')
|
||||||
|
return
|
||||||
|
|
||||||
|
#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')
|
||||||
|
|
||||||
|
#SKINCHANGER
|
||||||
|
features_check.check.AK47 = config.get('SKINCHANGER', 'AK47')
|
||||||
|
features_check.check.AK47_f = config.get('SKINCHANGER', 'AK47_f')
|
||||||
|
features_check.check.AK47_st = config.get('SKINCHANGER', 'AK47_st')
|
||||||
|
features_check.check.AK47_stv = config.get('SKINCHANGER', 'AK47_stv')
|
||||||
|
features_check.check.AK47_se = config.get('SKINCHANGER', 'AK47_se')
|
||||||
|
features_check.check.AUG = config.get('SKINCHANGER', 'AUG')
|
||||||
|
features_check.check.AUG_f = config.get('SKINCHANGER', 'AUG_f')
|
||||||
|
features_check.check.AUG_st = config.get('SKINCHANGER', 'AUG_st')
|
||||||
|
features_check.check.AUG_stv = config.get('SKINCHANGER', 'AUG_stv')
|
||||||
|
features_check.check.AUG_se = config.get('SKINCHANGER', 'AUG_se')
|
||||||
|
features_check.check.AWP = config.get('SKINCHANGER', 'AWP')
|
||||||
|
features_check.check.AWP_f = config.get('SKINCHANGER', 'AWP_f')
|
||||||
|
features_check.check.AWP_st = config.get('SKINCHANGER', 'AWP_st')
|
||||||
|
features_check.check.AWP_stv = config.get('SKINCHANGER', 'AWP_stv')
|
||||||
|
features_check.check.AWP_se = config.get('SKINCHANGER', 'AWP_se')
|
||||||
|
features_check.check.CZ75Auto = config.get('SKINCHANGER', 'CZ75Auto')
|
||||||
|
features_check.check.CZ75Auto_f = config.get('SKINCHANGER', 'CZ75Auto_f')
|
||||||
|
features_check.check.CZ75Auto_st = config.get('SKINCHANGER', 'CZ75Auto_st')
|
||||||
|
features_check.check.CZ75Auto_stv = config.get('SKINCHANGER', 'CZ75Auto_stv')
|
||||||
|
features_check.check.CZ75Auto_se = config.get('SKINCHANGER', 'CZ75Auto_se')
|
||||||
|
features_check.check.Desert_Eagle = config.get('SKINCHANGER', 'Desert_Eagle')
|
||||||
|
features_check.check.Desert_Eagle_f = config.get('SKINCHANGER', 'Desert_Eagle_f')
|
||||||
|
features_check.check.Desert_Eagle_st = config.get('SKINCHANGER', 'Desert_Eagle_st')
|
||||||
|
features_check.check.Desert_Eagle_stv = config.get('SKINCHANGER', 'Desert_Eagle_stv')
|
||||||
|
features_check.check.Desert_Eagle_se = config.get('SKINCHANGER', 'Desert_Eagle_se')
|
||||||
|
features_check.check.Dual_Berettas = config.get('SKINCHANGER', 'Dual_Berettas')
|
||||||
|
features_check.check.Dual_Berettas_f = config.get('SKINCHANGER', 'Dual_Berettas_f')
|
||||||
|
features_check.check.Dual_Berettas_st = config.get('SKINCHANGER', 'Dual_Berettas_st')
|
||||||
|
features_check.check.Dual_Berettas_stv = config.get('SKINCHANGER', 'Dual_Berettas_stv')
|
||||||
|
features_check.check.Dual_Berettas_se = config.get('SKINCHANGER', 'Dual_Berettas_se')
|
||||||
|
features_check.check.FAMAS = config.get('SKINCHANGER', 'FAMAS')
|
||||||
|
features_check.check.FAMAS_f = config.get('SKINCHANGER', 'FAMAS_f')
|
||||||
|
features_check.check.FAMAS_st = config.get('SKINCHANGER', 'FAMAS_st')
|
||||||
|
features_check.check.FAMAS_stv = config.get('SKINCHANGER', 'FAMAS_stv')
|
||||||
|
features_check.check.FAMAS_se = config.get('SKINCHANGER', 'FAMAS_se')
|
||||||
|
features_check.check.FiveSeven = config.get('SKINCHANGER', 'FiveSeven')
|
||||||
|
features_check.check.FiveSeven_f = config.get('SKINCHANGER', 'FiveSeven_f')
|
||||||
|
features_check.check.FiveSeven_st = config.get('SKINCHANGER', 'FiveSeven_st')
|
||||||
|
features_check.check.FiveSeven_stv = config.get('SKINCHANGER', 'FiveSeven_stv')
|
||||||
|
features_check.check.FiveSeven_se = config.get('SKINCHANGER', 'FiveSeven_se')
|
||||||
|
features_check.check.G3SG1 = config.get('SKINCHANGER', 'G3SG1')
|
||||||
|
features_check.check.G3SG1_f = config.get('SKINCHANGER', 'G3SG1_f')
|
||||||
|
features_check.check.G3SG1_st = config.get('SKINCHANGER', 'G3SG1_st')
|
||||||
|
features_check.check.G3SG1_stv = config.get('SKINCHANGER', 'G3SG1_stv')
|
||||||
|
features_check.check.G3SG1_se = config.get('SKINCHANGER', 'G3SG1_se')
|
||||||
|
features_check.check.Galil_AR = config.get('SKINCHANGER', 'Galil_AR')
|
||||||
|
features_check.check.Galil_AR_f = config.get('SKINCHANGER', 'Galil_AR_f')
|
||||||
|
features_check.check.Galil_AR_st = config.get('SKINCHANGER', 'Galil_AR_st')
|
||||||
|
features_check.check.Galil_AR_stv = config.get('SKINCHANGER', 'Galil_AR_stv')
|
||||||
|
features_check.check.Galil_AR_se = config.get('SKINCHANGER', 'Galil_AR_se')
|
||||||
|
features_check.check.Glock18 = config.get('SKINCHANGER', 'Glock18')
|
||||||
|
features_check.check.Glock18_f = config.get('SKINCHANGER', 'Glock18_f')
|
||||||
|
features_check.check.Glock18_st = config.get('SKINCHANGER', 'Glock18_st')
|
||||||
|
features_check.check.Glock18_stv = config.get('SKINCHANGER', 'Glock18_stv')
|
||||||
|
features_check.check.Glock18_se = config.get('SKINCHANGER', 'Glock18_se')
|
||||||
|
features_check.check.M249 = config.get('SKINCHANGER', 'M249')
|
||||||
|
features_check.check.M249_f = config.get('SKINCHANGER', 'M249_f')
|
||||||
|
features_check.check.M249_st = config.get('SKINCHANGER', 'M249_st')
|
||||||
|
features_check.check.M249_stv = config.get('SKINCHANGER', 'M249_stv')
|
||||||
|
features_check.check.M249_se = config.get('SKINCHANGER', 'M249_se')
|
||||||
|
features_check.check.M4A1S = config.get('SKINCHANGER', 'M4A1S')
|
||||||
|
features_check.check.M4A1S_f = config.get('SKINCHANGER', 'M4A1S_f')
|
||||||
|
features_check.check.M4A1S_st = config.get('SKINCHANGER', 'M4A1S_st')
|
||||||
|
features_check.check.M4A1S_stv = config.get('SKINCHANGER', 'M4A1S_stv')
|
||||||
|
features_check.check.M4A1S_se = config.get('SKINCHANGER', 'M4A1S_se')
|
||||||
|
features_check.check.M4A4 = config.get('SKINCHANGER', 'M4A4')
|
||||||
|
features_check.check.M4A4_f = config.get('SKINCHANGER', 'M4A4_f')
|
||||||
|
features_check.check.M4A4_st = config.get('SKINCHANGER', 'M4A4_st')
|
||||||
|
features_check.check.M4A4_stv = config.get('SKINCHANGER', 'M4A4_stv')
|
||||||
|
features_check.check.M4A4_se = config.get('SKINCHANGER', 'M4A4_se')
|
||||||
|
features_check.check.MAC10 = config.get('SKINCHANGER', 'MAC10')
|
||||||
|
features_check.check.MAC10_f = config.get('SKINCHANGER', 'MAC10_f')
|
||||||
|
features_check.check.MAC10_st = config.get('SKINCHANGER', 'MAC10_st')
|
||||||
|
features_check.check.MAC10_stv = config.get('SKINCHANGER', 'MAC10_stv')
|
||||||
|
features_check.check.MAC10_se = config.get('SKINCHANGER', 'MAC10_se')
|
||||||
|
features_check.check.MAG7 = config.get('SKINCHANGER', 'MAG7')
|
||||||
|
features_check.check.MAG7_f = config.get('SKINCHANGER', 'MAG7_f')
|
||||||
|
features_check.check.MAG7_st = config.get('SKINCHANGER', 'MAG7_st')
|
||||||
|
features_check.check.MAG7_stv = config.get('SKINCHANGER', 'MAG7_stv')
|
||||||
|
features_check.check.MAG7_se = config.get('SKINCHANGER', 'MAG7_se')
|
||||||
|
features_check.check.MP5SD = config.get('SKINCHANGER', 'MP5SD')
|
||||||
|
features_check.check.MP5SD_f = config.get('SKINCHANGER', 'MP5SD_f')
|
||||||
|
features_check.check.MP5SD_st = config.get('SKINCHANGER', 'MP5SD_st')
|
||||||
|
features_check.check.MP5SD_stv = config.get('SKINCHANGER', 'MP5SD_stv')
|
||||||
|
features_check.check.MP5SD_se = config.get('SKINCHANGER', 'MP5SD_se')
|
||||||
|
features_check.check.MP7 = config.get('SKINCHANGER', 'MP7')
|
||||||
|
features_check.check.MP7_f = config.get('SKINCHANGER', 'MP7_f')
|
||||||
|
features_check.check.MP7_st = config.get('SKINCHANGER', 'MP7_st')
|
||||||
|
features_check.check.MP7_stv = config.get('SKINCHANGER', 'MP7_stv')
|
||||||
|
features_check.check.MP7_se = config.get('SKINCHANGER', 'MP7_se')
|
||||||
|
features_check.check.MP9 = config.get('SKINCHANGER', 'MP9')
|
||||||
|
features_check.check.MP9_f = config.get('SKINCHANGER', 'MP9_f')
|
||||||
|
features_check.check.MP9_st = config.get('SKINCHANGER', 'MP9_st')
|
||||||
|
features_check.check.MP9_stv = config.get('SKINCHANGER', 'MP9_stv')
|
||||||
|
features_check.check.MP9_se = config.get('SKINCHANGER', 'MP9_se')
|
||||||
|
features_check.check.Negev = config.get('SKINCHANGER', 'Negev')
|
||||||
|
features_check.check.Negev_f = config.get('SKINCHANGER', 'Negev_f')
|
||||||
|
features_check.check.Negev_st = config.get('SKINCHANGER', 'Negev_st')
|
||||||
|
features_check.check.Negev_stv = config.get('SKINCHANGER', 'Negev_stv')
|
||||||
|
features_check.check.Negev_se = config.get('SKINCHANGER', 'Negev_se')
|
||||||
|
features_check.check.Nova = config.get('SKINCHANGER', 'Nova')
|
||||||
|
features_check.check.Nova_f = config.get('SKINCHANGER', 'Nova_f')
|
||||||
|
features_check.check.Nova_st = config.get('SKINCHANGER', 'Nova_st')
|
||||||
|
features_check.check.Nova_stv = config.get('SKINCHANGER', 'Nova_stv')
|
||||||
|
features_check.check.Nova_se = config.get('SKINCHANGER', 'Nova_se')
|
||||||
|
features_check.check.P2000 = config.get('SKINCHANGER', 'P2000')
|
||||||
|
features_check.check.P2000_f = config.get('SKINCHANGER', 'P2000_f')
|
||||||
|
features_check.check.P2000_st = config.get('SKINCHANGER', 'P2000_st')
|
||||||
|
features_check.check.P2000_stv = config.get('SKINCHANGER', 'P2000_stv')
|
||||||
|
features_check.check.P2000_se = config.get('SKINCHANGER', 'P2000_se')
|
||||||
|
features_check.check.P250 = config.get('SKINCHANGER', 'P250')
|
||||||
|
features_check.check.P250_f = config.get('SKINCHANGER', 'P250_f')
|
||||||
|
features_check.check.P250_st = config.get('SKINCHANGER', 'P250_st')
|
||||||
|
features_check.check.P250_stv = config.get('SKINCHANGER', 'P250_stv')
|
||||||
|
features_check.check.P250_se = config.get('SKINCHANGER', 'P250_se')
|
||||||
|
features_check.check.P90 = config.get('SKINCHANGER', 'P90')
|
||||||
|
features_check.check.P90_f = config.get('SKINCHANGER', 'P90_f')
|
||||||
|
features_check.check.P90_st = config.get('SKINCHANGER', 'P90_st')
|
||||||
|
features_check.check.P90_stv = config.get('SKINCHANGER', 'P90_stv')
|
||||||
|
features_check.check.P90_se = config.get('SKINCHANGER', 'P90_se')
|
||||||
|
features_check.check.PPBizon = config.get('SKINCHANGER', 'PPBizon')
|
||||||
|
features_check.check.PPBizon_f = config.get('SKINCHANGER', 'PPBizon_f')
|
||||||
|
features_check.check.PPBizon_st = config.get('SKINCHANGER', 'PPBizon_st')
|
||||||
|
features_check.check.PPBizon_stv = config.get('SKINCHANGER', 'PPBizon_stv')
|
||||||
|
features_check.check.PPBizon_se = config.get('SKINCHANGER', 'PPBizon_se')
|
||||||
|
features_check.check.R8_Revolver = config.get('SKINCHANGER', 'R8_Revolver')
|
||||||
|
features_check.check.R8_Revolver_f = config.get('SKINCHANGER', 'R8_Revolver_f')
|
||||||
|
features_check.check.R8_Revolver_st = config.get('SKINCHANGER', 'R8_Revolver_st')
|
||||||
|
features_check.check.R8_Revolver_stv = config.get('SKINCHANGER', 'R8_Revolver_stv')
|
||||||
|
features_check.check.R8_Revolver_se = config.get('SKINCHANGER', 'R8_Revolver_se')
|
||||||
|
features_check.check.SCAR20 = config.get('SKINCHANGER', 'SCAR20')
|
||||||
|
features_check.check.SCAR20_f = config.get('SKINCHANGER', 'SCAR20_f')
|
||||||
|
features_check.check.SCAR20_st = config.get('SKINCHANGER', 'SCAR20_st')
|
||||||
|
features_check.check.SCAR20_stv = config.get('SKINCHANGER', 'SCAR20_stv')
|
||||||
|
features_check.check.SCAR20_se = config.get('SKINCHANGER', 'SCAR20_se')
|
||||||
|
features_check.check.SG_553 = config.get('SKINCHANGER', 'SG_553')
|
||||||
|
features_check.check.SG_553_f = config.get('SKINCHANGER', 'SG_553_f')
|
||||||
|
features_check.check.SG_553_st = config.get('SKINCHANGER', 'SG_553_st')
|
||||||
|
features_check.check.SG_553_stv = config.get('SKINCHANGER', 'SG_553_stv')
|
||||||
|
features_check.check.SG_553_se = config.get('SKINCHANGER', 'SG_553_se')
|
||||||
|
features_check.check.SSG_08 = config.get('SKINCHANGER', 'SSG_08')
|
||||||
|
features_check.check.SSG_08_f = config.get('SKINCHANGER', 'SSG_08_f')
|
||||||
|
features_check.check.SSG_08_st = config.get('SKINCHANGER', 'SSG_08_st')
|
||||||
|
features_check.check.SSG_08_stv = config.get('SKINCHANGER', 'SSG_08_stv')
|
||||||
|
features_check.check.SSG_08_se = config.get('SKINCHANGER', 'SSG_08_se')
|
||||||
|
features_check.check.SawedOff = config.get('SKINCHANGER', 'SawedOff')
|
||||||
|
features_check.check.SawedOff_f = config.get('SKINCHANGER', 'SawedOff_f')
|
||||||
|
features_check.check.SawedOff_st = config.get('SKINCHANGER', 'SawedOff_st')
|
||||||
|
features_check.check.SawedOff_stv = config.get('SKINCHANGER', 'SawedOff_stv')
|
||||||
|
features_check.check.SawedOff_se = config.get('SKINCHANGER', 'SawedOff_se')
|
||||||
|
features_check.check.Tec9 = config.get('SKINCHANGER', 'Tec9')
|
||||||
|
features_check.check.Tec9_f = config.get('SKINCHANGER', 'Tec9_f')
|
||||||
|
features_check.check.Tec9_st = config.get('SKINCHANGER', 'Tec9_st')
|
||||||
|
features_check.check.Tec9_stv = config.get('SKINCHANGER', 'Tec9_stv')
|
||||||
|
features_check.check.Tec9_se = config.get('SKINCHANGER', 'Tec9_se')
|
||||||
|
features_check.check.UMP45 = config.get('SKINCHANGER', 'UMP45')
|
||||||
|
features_check.check.UMP45_f = config.get('SKINCHANGER', 'UMP45_f')
|
||||||
|
features_check.check.UMP45_st = config.get('SKINCHANGER', 'UMP45_st')
|
||||||
|
features_check.check.UMP45_stv = config.get('SKINCHANGER', 'UMP45_stv')
|
||||||
|
features_check.check.UMP45_se = config.get('SKINCHANGER', 'UMP45_se')
|
||||||
|
features_check.check.USPS = config.get('SKINCHANGER', 'USPS')
|
||||||
|
features_check.check.USPS_f = config.get('SKINCHANGER', 'USPS_f')
|
||||||
|
features_check.check.USPS_st = config.get('SKINCHANGER', 'USPS_st')
|
||||||
|
features_check.check.USPS_stv = config.get('SKINCHANGER', 'USPS_stv')
|
||||||
|
features_check.check.USPS_se = config.get('SKINCHANGER', 'USPS_se')
|
||||||
|
features_check.check.XM1014 = config.get('SKINCHANGER', 'XM1014')
|
||||||
|
features_check.check.XM1014_f = config.get('SKINCHANGER', 'XM1014_f')
|
||||||
|
features_check.check.XM1014_st = config.get('SKINCHANGER', 'XM1014_st')
|
||||||
|
features_check.check.XM1014_stv = config.get('SKINCHANGER', 'XM1014_stv')
|
||||||
|
features_check.check.XM1014_se = config.get('SKINCHANGER', 'XM1014_se')
|
||||||
|
return
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
63
classes/get_active_weapons.py
Normal file
63
classes/get_active_weapons.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import ui
|
||||||
|
|
||||||
|
class get :
|
||||||
|
def active_weapons(self) :
|
||||||
|
all_weapons = {
|
||||||
|
"Knife": ui.draw.knife,
|
||||||
|
"Knife_skin": ui.draw.knife_skin,
|
||||||
|
"AK-47": ui.draw.AK47,
|
||||||
|
"AUG": ui.draw.AUG,
|
||||||
|
"AWP": ui.draw.AWP,
|
||||||
|
"CZ75-Auto": ui.draw.CZ75Auto,
|
||||||
|
"Desert Eagle": ui.draw.Desert_Eagle,
|
||||||
|
"Dual Berettas": ui.draw.Dual_Berettas,
|
||||||
|
"FAMAS": ui.draw.FAMAS,
|
||||||
|
"Five-Seven": ui.draw.FiveSeven,
|
||||||
|
"G3SG1": ui.draw.G3SG1,
|
||||||
|
"Galil AR": ui.draw.Galil_AR,
|
||||||
|
"Glock-18": ui.draw.Glock18,
|
||||||
|
"M249": ui.draw.M249,
|
||||||
|
"M4A1-S": ui.draw.M4A1S,
|
||||||
|
"M4A4": ui.draw.M4A4,
|
||||||
|
"MAC-10": ui.draw.MAC10,
|
||||||
|
"MAG-7": ui.draw.MAG7,
|
||||||
|
"MP5SD": ui.draw.MP5SD,
|
||||||
|
"MP7": ui.draw.MP7,
|
||||||
|
"MP9": ui.draw.MP9,
|
||||||
|
"Negev": ui.draw.Negev,
|
||||||
|
"Nova": ui.draw.Nova,
|
||||||
|
"P2000": ui.draw.P2000,
|
||||||
|
"P250": ui.draw.P250,
|
||||||
|
"P90": ui.draw.P90,
|
||||||
|
"PP-Bizon": ui.draw.PPBizon,
|
||||||
|
"R8 Revolver": ui.draw.R8_Revolver,
|
||||||
|
"SCAR-20": ui.draw.SCAR20,
|
||||||
|
"SG 553": ui.draw.SG_553,
|
||||||
|
"SSG 08": ui.draw.SSG_08,
|
||||||
|
"Sawed-Off": ui.draw.SawedOff,
|
||||||
|
"Tec-9": ui.draw.Tec9,
|
||||||
|
"UMP45": ui.draw.UMP45,
|
||||||
|
"USP-S": ui.draw.USPS,
|
||||||
|
"XM1014": ui.draw.XM1014,
|
||||||
|
}
|
||||||
|
|
||||||
|
all_knives = ["Gold knife","Spectral knife","Bayonet","Classic knife","Flip knife","Gut knife",
|
||||||
|
"Karambit","M9 Bayonet","Huntsman","Falchion knife","Bowie knife",
|
||||||
|
"Butterfly knife","Shadow daggers","Cord knife","Canis knife","Ursus knife","Navaja","Nomad knife","Stiletto knife","Talon knife","Skeleton knife"]
|
||||||
|
|
||||||
|
ui.draw.active_weapons = {}
|
||||||
|
for weapon, value in all_weapons.items():
|
||||||
|
if value != "0" :
|
||||||
|
if value in all_knives :
|
||||||
|
ui.draw.active_weapons[value] = ui.draw.knife_skin
|
||||||
|
|
||||||
|
elif weapon == "Knife_skin" : continue
|
||||||
|
|
||||||
|
else :
|
||||||
|
ui.draw.active_weapons[weapon] = value
|
||||||
|
|
||||||
|
ui.draw.active_weapons = str(ui.draw.active_weapons)
|
||||||
|
ui.draw.active_weapons = ui.draw.active_weapons.replace("{","").replace("}","").replace("'","").replace(":"," : ")
|
||||||
|
ui.draw.active_weapons = list(ui.draw.active_weapons.split(","))
|
||||||
|
|
||||||
|
return ui.draw.active_weapons
|
||||||
19
classes/get_netvars.py
Normal file
19
classes/get_netvars.py
Normal file
@@ -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()
|
||||||
42
classes/key_listen.py
Normal file
42
classes/key_listen.py
Normal file
@@ -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
|
||||||
14
classes/last.py
Normal file
14
classes/last.py
Normal file
@@ -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()
|
||||||
110
classes/netvar_manager.py
Normal file
110
classes/netvar_manager.py
Normal file
@@ -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()
|
||||||
233
classes/read_config.py
Normal file
233
classes/read_config.py
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
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')
|
||||||
|
|
||||||
|
#SKINCHANGER
|
||||||
|
ui.draw.knife = config.get('SKINCHANGER', 'knife')
|
||||||
|
ui.draw.knife_skin = config.get('SKINCHANGER', 'knife_skin')
|
||||||
|
ui.draw.knife_f = config.get('SKINCHANGER', 'knife_f')
|
||||||
|
ui.draw.knife_st = config.get('SKINCHANGER', 'knife_st')
|
||||||
|
ui.draw.knife_stv = config.get('SKINCHANGER', 'knife_stv')
|
||||||
|
ui.draw.knife_se = config.get('SKINCHANGER', 'knife_se')
|
||||||
|
ui.draw.AK47 = config.get('SKINCHANGER', 'AK47')
|
||||||
|
ui.draw.AK47_f = config.get('SKINCHANGER', 'AK47_f')
|
||||||
|
ui.draw.AK47_st = config.get('SKINCHANGER', 'AK47_st')
|
||||||
|
ui.draw.AK47_stv = config.get('SKINCHANGER', 'AK47_stv')
|
||||||
|
ui.draw.AK47_se = config.get('SKINCHANGER', 'AK47_se')
|
||||||
|
ui.draw.AUG = config.get('SKINCHANGER', 'AUG')
|
||||||
|
ui.draw.AUG_f = config.get('SKINCHANGER', 'AUG_f')
|
||||||
|
ui.draw.AUG_st = config.get('SKINCHANGER', 'AUG_st')
|
||||||
|
ui.draw.AUG_stv = config.get('SKINCHANGER', 'AUG_stv')
|
||||||
|
ui.draw.AUG_se = config.get('SKINCHANGER', 'AUG_se')
|
||||||
|
ui.draw.AWP = config.get('SKINCHANGER', 'AWP')
|
||||||
|
ui.draw.AWP_f = config.get('SKINCHANGER', 'AWP_f')
|
||||||
|
ui.draw.AWP_st = config.get('SKINCHANGER', 'AWP_st')
|
||||||
|
ui.draw.AWP_stv = config.get('SKINCHANGER', 'AWP_stv')
|
||||||
|
ui.draw.AWP_se = config.get('SKINCHANGER', 'AWP_se')
|
||||||
|
ui.draw.CZ75Auto = config.get('SKINCHANGER', 'CZ75Auto')
|
||||||
|
ui.draw.CZ75Auto_f = config.get('SKINCHANGER', 'CZ75Auto_f')
|
||||||
|
ui.draw.CZ75Auto_st = config.get('SKINCHANGER', 'CZ75Auto_st')
|
||||||
|
ui.draw.CZ75Auto_stv = config.get('SKINCHANGER', 'CZ75Auto_stv')
|
||||||
|
ui.draw.CZ75Auto_se = config.get('SKINCHANGER', 'CZ75Auto_se')
|
||||||
|
ui.draw.Desert_Eagle = config.get('SKINCHANGER', 'Desert_Eagle')
|
||||||
|
ui.draw.Desert_Eagle_f = config.get('SKINCHANGER', 'Desert_Eagle_f')
|
||||||
|
ui.draw.Desert_Eagle_st = config.get('SKINCHANGER', 'Desert_Eagle_st')
|
||||||
|
ui.draw.Desert_Eagle_stv = config.get('SKINCHANGER', 'Desert_Eagle_stv')
|
||||||
|
ui.draw.Desert_Eagle_se = config.get('SKINCHANGER', 'Desert_Eagle_se')
|
||||||
|
ui.draw.Dual_Berettas = config.get('SKINCHANGER', 'Dual_Berettas')
|
||||||
|
ui.draw.Dual_Berettas_f = config.get('SKINCHANGER', 'Dual_Berettas_f')
|
||||||
|
ui.draw.Dual_Berettas_st = config.get('SKINCHANGER', 'Dual_Berettas_st')
|
||||||
|
ui.draw.Dual_Berettas_stv = config.get('SKINCHANGER', 'Dual_Berettas_stv')
|
||||||
|
ui.draw.Dual_Berettas_se = config.get('SKINCHANGER', 'Dual_Berettas_se')
|
||||||
|
ui.draw.FAMAS = config.get('SKINCHANGER', 'FAMAS')
|
||||||
|
ui.draw.FAMAS_f = config.get('SKINCHANGER', 'FAMAS_f')
|
||||||
|
ui.draw.FAMAS_st = config.get('SKINCHANGER', 'FAMAS_st')
|
||||||
|
ui.draw.FAMAS_stv = config.get('SKINCHANGER', 'FAMAS_stv')
|
||||||
|
ui.draw.FAMAS_se = config.get('SKINCHANGER', 'FAMAS_se')
|
||||||
|
ui.draw.FiveSeven = config.get('SKINCHANGER', 'FiveSeven')
|
||||||
|
ui.draw.FiveSeven_f = config.get('SKINCHANGER', 'FiveSeven_f')
|
||||||
|
ui.draw.FiveSeven_st = config.get('SKINCHANGER', 'FiveSeven_st')
|
||||||
|
ui.draw.FiveSeven_stv = config.get('SKINCHANGER', 'FiveSeven_stv')
|
||||||
|
ui.draw.FiveSeven_se = config.get('SKINCHANGER', 'FiveSeven_se')
|
||||||
|
ui.draw.G3SG1 = config.get('SKINCHANGER', 'G3SG1')
|
||||||
|
ui.draw.G3SG1_f = config.get('SKINCHANGER', 'G3SG1_f')
|
||||||
|
ui.draw.G3SG1_st = config.get('SKINCHANGER', 'G3SG1_st')
|
||||||
|
ui.draw.G3SG1_stv = config.get('SKINCHANGER', 'G3SG1_stv')
|
||||||
|
ui.draw.G3SG1_se = config.get('SKINCHANGER', 'G3SG1_se')
|
||||||
|
ui.draw.Galil_AR = config.get('SKINCHANGER', 'Galil_AR')
|
||||||
|
ui.draw.Galil_AR_f = config.get('SKINCHANGER', 'Galil_AR_f')
|
||||||
|
ui.draw.Galil_AR_st = config.get('SKINCHANGER', 'Galil_AR_st')
|
||||||
|
ui.draw.Galil_AR_stv = config.get('SKINCHANGER', 'Galil_AR_stv')
|
||||||
|
ui.draw.Galil_AR_se = config.get('SKINCHANGER', 'Galil_AR_se')
|
||||||
|
ui.draw.Glock18 = config.get('SKINCHANGER', 'Glock18')
|
||||||
|
ui.draw.Glock18_f = config.get('SKINCHANGER', 'Glock18_f')
|
||||||
|
ui.draw.Glock18_st = config.get('SKINCHANGER', 'Glock18_st')
|
||||||
|
ui.draw.Glock18_stv = config.get('SKINCHANGER', 'Glock18_stv')
|
||||||
|
ui.draw.Glock18_se = config.get('SKINCHANGER', 'Glock18_se')
|
||||||
|
ui.draw.M249 = config.get('SKINCHANGER', 'M249')
|
||||||
|
ui.draw.M249_f = config.get('SKINCHANGER', 'M249_f')
|
||||||
|
ui.draw.M249_st = config.get('SKINCHANGER', 'M249_st')
|
||||||
|
ui.draw.M249_stv = config.get('SKINCHANGER', 'M249_stv')
|
||||||
|
ui.draw.M249_se = config.get('SKINCHANGER', 'M249_se')
|
||||||
|
ui.draw.M4A1S = config.get('SKINCHANGER', 'M4A1S')
|
||||||
|
ui.draw.M4A1S_f = config.get('SKINCHANGER', 'M4A1S_f')
|
||||||
|
ui.draw.M4A1S_st = config.get('SKINCHANGER', 'M4A1S_st')
|
||||||
|
ui.draw.M4A1S_stv = config.get('SKINCHANGER', 'M4A1S_stv')
|
||||||
|
ui.draw.M4A1S_se = config.get('SKINCHANGER', 'M4A1S_se')
|
||||||
|
ui.draw.M4A4 = config.get('SKINCHANGER', 'M4A4')
|
||||||
|
ui.draw.M4A4_f = config.get('SKINCHANGER', 'M4A4_f')
|
||||||
|
ui.draw.M4A4_st = config.get('SKINCHANGER', 'M4A4_st')
|
||||||
|
ui.draw.M4A4_stv = config.get('SKINCHANGER', 'M4A4_stv')
|
||||||
|
ui.draw.M4A4_se = config.get('SKINCHANGER', 'M4A4_se')
|
||||||
|
ui.draw.MAC10 = config.get('SKINCHANGER', 'MAC10')
|
||||||
|
ui.draw.MAC10_f = config.get('SKINCHANGER', 'MAC10_f')
|
||||||
|
ui.draw.MAC10_st = config.get('SKINCHANGER', 'MAC10_st')
|
||||||
|
ui.draw.MAC10_stv = config.get('SKINCHANGER', 'MAC10_stv')
|
||||||
|
ui.draw.MAC10_se = config.get('SKINCHANGER', 'MAC10_se')
|
||||||
|
ui.draw.MAG7 = config.get('SKINCHANGER', 'MAG7')
|
||||||
|
ui.draw.MAG7_f = config.get('SKINCHANGER', 'MAG7_f')
|
||||||
|
ui.draw.MAG7_st = config.get('SKINCHANGER', 'MAG7_st')
|
||||||
|
ui.draw.MAG7_stv = config.get('SKINCHANGER', 'MAG7_stv')
|
||||||
|
ui.draw.MAG7_se = config.get('SKINCHANGER', 'MAG7_se')
|
||||||
|
ui.draw.MP5SD = config.get('SKINCHANGER', 'MP5SD')
|
||||||
|
ui.draw.MP5SD_f = config.get('SKINCHANGER', 'MP5SD_f')
|
||||||
|
ui.draw.MP5SD_st = config.get('SKINCHANGER', 'MP5SD_st')
|
||||||
|
ui.draw.MP5SD_stv = config.get('SKINCHANGER', 'MP5SD_stv')
|
||||||
|
ui.draw.MP5SD_se = config.get('SKINCHANGER', 'MP5SD_se')
|
||||||
|
ui.draw.MP7 = config.get('SKINCHANGER', 'MP7')
|
||||||
|
ui.draw.MP7_f = config.get('SKINCHANGER', 'MP7_f')
|
||||||
|
ui.draw.MP7_st = config.get('SKINCHANGER', 'MP7_st')
|
||||||
|
ui.draw.MP7_stv = config.get('SKINCHANGER', 'MP7_stv')
|
||||||
|
ui.draw.MP7_se = config.get('SKINCHANGER', 'MP7_se')
|
||||||
|
ui.draw.MP9 = config.get('SKINCHANGER', 'MP9')
|
||||||
|
ui.draw.MP9_f = config.get('SKINCHANGER', 'MP9_f')
|
||||||
|
ui.draw.MP9_st = config.get('SKINCHANGER', 'MP9_st')
|
||||||
|
ui.draw.MP9_stv = config.get('SKINCHANGER', 'MP9_stv')
|
||||||
|
ui.draw.MP9_se = config.get('SKINCHANGER', 'MP9_se')
|
||||||
|
ui.draw.Negev = config.get('SKINCHANGER', 'Negev')
|
||||||
|
ui.draw.Negev_f = config.get('SKINCHANGER', 'Negev_f')
|
||||||
|
ui.draw.Negev_st = config.get('SKINCHANGER', 'Negev_st')
|
||||||
|
ui.draw.Negev_stv = config.get('SKINCHANGER', 'Negev_stv')
|
||||||
|
ui.draw.Negev_se = config.get('SKINCHANGER', 'Negev_se')
|
||||||
|
ui.draw.Nova = config.get('SKINCHANGER', 'Nova')
|
||||||
|
ui.draw.Nova_f = config.get('SKINCHANGER', 'Nova_f')
|
||||||
|
ui.draw.Nova_st = config.get('SKINCHANGER', 'Nova_st')
|
||||||
|
ui.draw.Nova_stv = config.get('SKINCHANGER', 'Nova_stv')
|
||||||
|
ui.draw.Nova_se = config.get('SKINCHANGER', 'Nova_se')
|
||||||
|
ui.draw.P2000 = config.get('SKINCHANGER', 'P2000')
|
||||||
|
ui.draw.P2000_f = config.get('SKINCHANGER', 'P2000_f')
|
||||||
|
ui.draw.P2000_st = config.get('SKINCHANGER', 'P2000_st')
|
||||||
|
ui.draw.P2000_stv = config.get('SKINCHANGER', 'P2000_stv')
|
||||||
|
ui.draw.P2000_se = config.get('SKINCHANGER', 'P2000_se')
|
||||||
|
ui.draw.P250 = config.get('SKINCHANGER', 'P250')
|
||||||
|
ui.draw.P250_f = config.get('SKINCHANGER', 'P250_f')
|
||||||
|
ui.draw.P250_st = config.get('SKINCHANGER', 'P250_st')
|
||||||
|
ui.draw.P250_stv = config.get('SKINCHANGER', 'P250_stv')
|
||||||
|
ui.draw.P250_se = config.get('SKINCHANGER', 'P250_se')
|
||||||
|
ui.draw.P90 = config.get('SKINCHANGER', 'P90')
|
||||||
|
ui.draw.P90_f = config.get('SKINCHANGER', 'P90_f')
|
||||||
|
ui.draw.P90_st = config.get('SKINCHANGER', 'P90_st')
|
||||||
|
ui.draw.P90_stv = config.get('SKINCHANGER', 'P90_stv')
|
||||||
|
ui.draw.P90_se = config.get('SKINCHANGER', 'P90_se')
|
||||||
|
ui.draw.PPBizon = config.get('SKINCHANGER', 'PPBizon')
|
||||||
|
ui.draw.PPBizon_f = config.get('SKINCHANGER', 'PPBizon_f')
|
||||||
|
ui.draw.PPBizon_st = config.get('SKINCHANGER', 'PPBizon_st')
|
||||||
|
ui.draw.PPBizon_stv = config.get('SKINCHANGER', 'PPBizon_stv')
|
||||||
|
ui.draw.PPBizon_se = config.get('SKINCHANGER', 'PPBizon_se')
|
||||||
|
ui.draw.R8_Revolver = config.get('SKINCHANGER', 'R8_Revolver')
|
||||||
|
ui.draw.R8_Revolver_f = config.get('SKINCHANGER', 'R8_Revolver_f')
|
||||||
|
ui.draw.R8_Revolver_st = config.get('SKINCHANGER', 'R8_Revolver_st')
|
||||||
|
ui.draw.R8_Revolver_stv = config.get('SKINCHANGER', 'R8_Revolver_stv')
|
||||||
|
ui.draw.R8_Revolver_se = config.get('SKINCHANGER', 'R8_Revolver_se')
|
||||||
|
ui.draw.SCAR20 = config.get('SKINCHANGER', 'SCAR20')
|
||||||
|
ui.draw.SCAR20_f = config.get('SKINCHANGER', 'SCAR20_f')
|
||||||
|
ui.draw.SCAR20_st = config.get('SKINCHANGER', 'SCAR20_st')
|
||||||
|
ui.draw.SCAR20_stv = config.get('SKINCHANGER', 'SCAR20_stv')
|
||||||
|
ui.draw.SCAR20_se = config.get('SKINCHANGER', 'SCAR20_se')
|
||||||
|
ui.draw.SG_553 = config.get('SKINCHANGER', 'SG_553')
|
||||||
|
ui.draw.SG_553_f = config.get('SKINCHANGER', 'SG_553_f')
|
||||||
|
ui.draw.SG_553_st = config.get('SKINCHANGER', 'SG_553_st')
|
||||||
|
ui.draw.SG_553_stv = config.get('SKINCHANGER', 'SG_553_stv')
|
||||||
|
ui.draw.SG_553_se = config.get('SKINCHANGER', 'SG_553_se')
|
||||||
|
ui.draw.SSG_08 = config.get('SKINCHANGER', 'SSG_08')
|
||||||
|
ui.draw.SSG_08_f = config.get('SKINCHANGER', 'SSG_08_f')
|
||||||
|
ui.draw.SSG_08_st = config.get('SKINCHANGER', 'SSG_08_st')
|
||||||
|
ui.draw.SSG_08_stv = config.get('SKINCHANGER', 'SSG_08_stv')
|
||||||
|
ui.draw.SSG_08_se = config.get('SKINCHANGER', 'SSG_08_se')
|
||||||
|
ui.draw.SawedOff = config.get('SKINCHANGER', 'SawedOff')
|
||||||
|
ui.draw.SawedOff_f = config.get('SKINCHANGER', 'SawedOff_f')
|
||||||
|
ui.draw.SawedOff_st = config.get('SKINCHANGER', 'SawedOff_st')
|
||||||
|
ui.draw.SawedOff_stv = config.get('SKINCHANGER', 'SawedOff_stv')
|
||||||
|
ui.draw.SawedOff_se = config.get('SKINCHANGER', 'SawedOff_se')
|
||||||
|
ui.draw.Tec9 = config.get('SKINCHANGER', 'Tec9')
|
||||||
|
ui.draw.Tec9_f = config.get('SKINCHANGER', 'Tec9_f')
|
||||||
|
ui.draw.Tec9_st = config.get('SKINCHANGER', 'Tec9_st')
|
||||||
|
ui.draw.Tec9_stv = config.get('SKINCHANGER', 'Tec9_stv')
|
||||||
|
ui.draw.Tec9_se = config.get('SKINCHANGER', 'Tec9_se')
|
||||||
|
ui.draw.UMP45 = config.get('SKINCHANGER', 'UMP45')
|
||||||
|
ui.draw.UMP45_f = config.get('SKINCHANGER', 'UMP45_f')
|
||||||
|
ui.draw.UMP45_st = config.get('SKINCHANGER', 'UMP45_st')
|
||||||
|
ui.draw.UMP45_stv = config.get('SKINCHANGER', 'UMP45_stv')
|
||||||
|
ui.draw.UMP45_se = config.get('SKINCHANGER', 'UMP45_se')
|
||||||
|
ui.draw.USPS = config.get('SKINCHANGER', 'USPS')
|
||||||
|
ui.draw.USPS_f = config.get('SKINCHANGER', 'USPS_f')
|
||||||
|
ui.draw.USPS_st = config.get('SKINCHANGER', 'USPS_st')
|
||||||
|
ui.draw.USPS_stv = config.get('SKINCHANGER', 'USPS_stv')
|
||||||
|
ui.draw.USPS_se = config.get('SKINCHANGER', 'USPS_se')
|
||||||
|
ui.draw.XM1014 = config.get('SKINCHANGER', 'XM1014')
|
||||||
|
ui.draw.XM1014_f = config.get('SKINCHANGER', 'XM1014_f')
|
||||||
|
ui.draw.XM1014_st = config.get('SKINCHANGER', 'XM1014_st')
|
||||||
|
ui.draw.XM1014_stv = config.get('SKINCHANGER', 'XM1014_stv')
|
||||||
|
ui.draw.XM1014_se = config.get('SKINCHANGER', 'XM1014_se')
|
||||||
9
classes/read_last.py
Normal file
9
classes/read_last.py
Normal file
@@ -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()
|
||||||
72
classes/recv_classes.py
Normal file
72
classes/recv_classes.py
Normal file
@@ -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
|
||||||
|
)
|
||||||
106
classes/skin_id_dumper.py
Normal file
106
classes/skin_id_dumper.py
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
import re
|
||||||
|
import io
|
||||||
|
import os
|
||||||
|
|
||||||
|
def main() :
|
||||||
|
# Point the script to your CSGO folder and it will get up to date skin IDs and names and output to item_index.txt
|
||||||
|
SteamPath = 'C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Global Offensive/'
|
||||||
|
|
||||||
|
skindata = {}
|
||||||
|
with open(os.path.join(SteamPath, 'csgo/scripts/items/items_game.txt'), 'r') as itemfile:
|
||||||
|
start = False
|
||||||
|
count = 0
|
||||||
|
currnum = None
|
||||||
|
|
||||||
|
for line in itemfile.readlines():
|
||||||
|
if start:
|
||||||
|
number = False
|
||||||
|
tempdata = {}
|
||||||
|
|
||||||
|
if re.match(r'^"\d*"$', line.strip()):
|
||||||
|
currnum = int(line.strip().replace('"', ''))
|
||||||
|
skindata[currnum] = {}
|
||||||
|
number = True
|
||||||
|
|
||||||
|
if '{' in line:
|
||||||
|
count += 1
|
||||||
|
if '}' in line:
|
||||||
|
count -= 1
|
||||||
|
|
||||||
|
if count == 0:
|
||||||
|
start = False
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line.strip() == '{' or line.strip() == '}':
|
||||||
|
continue
|
||||||
|
|
||||||
|
if currnum and not number:
|
||||||
|
try:
|
||||||
|
first, second = line.strip().replace('"', '').split('\t\t')
|
||||||
|
skindata[currnum][first] = second
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if line.strip() == '"paint_kits"':
|
||||||
|
start = True
|
||||||
|
|
||||||
|
skindata.pop(0)
|
||||||
|
skindata.pop(9001)
|
||||||
|
|
||||||
|
|
||||||
|
namedata = {}
|
||||||
|
with io.open(os.path.join(SteamPath, 'csgo/resource/csgo_english.txt'), 'r', encoding='utf-16-le') as languagefile:
|
||||||
|
# Steam language files are encoded in utf-16LE
|
||||||
|
start = False
|
||||||
|
count = 0
|
||||||
|
currnum = None
|
||||||
|
|
||||||
|
for line in languagefile.readlines():
|
||||||
|
if line.strip() == '//Recipes':
|
||||||
|
start = False
|
||||||
|
break
|
||||||
|
|
||||||
|
if start:
|
||||||
|
if line.strip().startswith('"Paint'):
|
||||||
|
tag, name = re.split(r'"\s+"', line.strip())
|
||||||
|
|
||||||
|
if 'tag' in tag.lower():
|
||||||
|
namedata['#' + tag.replace('"', '').lower()] = name.replace('"', '')
|
||||||
|
|
||||||
|
if line.strip() == '// Paint Kits':
|
||||||
|
start = True
|
||||||
|
|
||||||
|
with io.open('item_index.txt', 'w', encoding="utf-8") as outfile:
|
||||||
|
for n in sorted(skindata):
|
||||||
|
tag = skindata[n]['description_tag']
|
||||||
|
|
||||||
|
outfile.write("%s: %s\n" % (n, namedata[tag.lower()]))
|
||||||
|
|
||||||
|
with open('item_index.txt', 'r', encoding="utf-8") as f :
|
||||||
|
skin_dict = {}
|
||||||
|
skin_dict["Original"] = "0"
|
||||||
|
skin_list = []
|
||||||
|
|
||||||
|
for line in f :
|
||||||
|
id_, skin_name = line.split(":")
|
||||||
|
skin_name = skin_name.replace("\n", "")
|
||||||
|
skin_name = skin_name[1:]
|
||||||
|
|
||||||
|
i = 1
|
||||||
|
while skin_name in skin_list :
|
||||||
|
if "#" in skin_name :
|
||||||
|
skin_name = skin_name.replace(" #", "")
|
||||||
|
skin_name = skin_name[:-1]
|
||||||
|
|
||||||
|
skin_name = skin_name+" #"+str(i)
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
skin_list.append(skin_name)
|
||||||
|
skin_dict[skin_name] = id_
|
||||||
|
|
||||||
|
os.system("del item_index.txt")
|
||||||
|
|
||||||
|
return skin_dict, ["Original"]+skin_list
|
||||||
|
|
||||||
|
if __name__ == "main" :
|
||||||
|
main()
|
||||||
1083
classes/ui.py
Normal file
1083
classes/ui.py
Normal file
File diff suppressed because it is too large
Load Diff
245
classes/write_config.py
Normal file
245
classes/write_config.py
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
config_object["SKINCHANGER"] = {
|
||||||
|
"knife": ui.draw.knife,
|
||||||
|
"knife_skin": ui.draw.knife_skin,
|
||||||
|
"knife_f": ui.draw.knife_f,
|
||||||
|
"knife_st": ui.draw.knife_st,
|
||||||
|
"knife_stv": ui.draw.knife_stv,
|
||||||
|
"knife_se": ui.draw.knife_se,
|
||||||
|
"AK47": ui.draw.AK47,
|
||||||
|
"AK47_f": ui.draw.AK47_f,
|
||||||
|
"AK47_st": ui.draw.AK47_st,
|
||||||
|
"AK47_stv": ui.draw.AK47_stv,
|
||||||
|
"AK47_se": ui.draw.AK47_se,
|
||||||
|
"AUG": ui.draw.AUG,
|
||||||
|
"AUG_f": ui.draw.AUG_f,
|
||||||
|
"AUG_st": ui.draw.AUG_st,
|
||||||
|
"AUG_stv": ui.draw.AUG_stv,
|
||||||
|
"AUG_se": ui.draw.AUG_se,
|
||||||
|
"AWP": ui.draw.AWP,
|
||||||
|
"AWP_f": ui.draw.AWP_f,
|
||||||
|
"AWP_st": ui.draw.AWP_st,
|
||||||
|
"AWP_stv": ui.draw.AWP_stv,
|
||||||
|
"AWP_se": ui.draw.AWP_se,
|
||||||
|
"CZ75Auto": ui.draw.CZ75Auto,
|
||||||
|
"CZ75Auto_f": ui.draw.CZ75Auto_f,
|
||||||
|
"CZ75Auto_st": ui.draw.CZ75Auto_st,
|
||||||
|
"CZ75Auto_stv": ui.draw.CZ75Auto_stv,
|
||||||
|
"CZ75Auto_se": ui.draw.CZ75Auto_se,
|
||||||
|
"Desert_Eagle": ui.draw.Desert_Eagle,
|
||||||
|
"Desert_Eagle_f": ui.draw.Desert_Eagle_f,
|
||||||
|
"Desert_Eagle_st": ui.draw.Desert_Eagle_st,
|
||||||
|
"Desert_Eagle_stv": ui.draw.Desert_Eagle_stv,
|
||||||
|
"Desert_Eagle_se": ui.draw.Desert_Eagle_se,
|
||||||
|
"Dual_Berettas": ui.draw.Dual_Berettas,
|
||||||
|
"Dual_Berettas_f": ui.draw.Dual_Berettas_f,
|
||||||
|
"Dual_Berettas_st": ui.draw.Dual_Berettas_st,
|
||||||
|
"Dual_Berettas_stv": ui.draw.Dual_Berettas_stv,
|
||||||
|
"Dual_Berettas_se": ui.draw.Dual_Berettas_se,
|
||||||
|
"FAMAS": ui.draw.FAMAS,
|
||||||
|
"FAMAS_f": ui.draw.FAMAS_f,
|
||||||
|
"FAMAS_st": ui.draw.FAMAS_st,
|
||||||
|
"FAMAS_stv": ui.draw.FAMAS_stv,
|
||||||
|
"FAMAS_se": ui.draw.FAMAS_se,
|
||||||
|
"FiveSeven": ui.draw.FiveSeven,
|
||||||
|
"FiveSeven_f": ui.draw.FiveSeven_f,
|
||||||
|
"FiveSeven_st": ui.draw.FiveSeven_st,
|
||||||
|
"FiveSeven_stv": ui.draw.FiveSeven_stv,
|
||||||
|
"FiveSeven_se": ui.draw.FiveSeven_se,
|
||||||
|
"G3SG1": ui.draw.G3SG1,
|
||||||
|
"G3SG1_f": ui.draw.G3SG1_f,
|
||||||
|
"G3SG1_st": ui.draw.G3SG1_st,
|
||||||
|
"G3SG1_stv": ui.draw.G3SG1_stv,
|
||||||
|
"G3SG1_se": ui.draw.G3SG1_se,
|
||||||
|
"Galil_AR": ui.draw.Galil_AR,
|
||||||
|
"Galil_AR_f": ui.draw.Galil_AR_f,
|
||||||
|
"Galil_AR_st": ui.draw.Galil_AR_st,
|
||||||
|
"Galil_AR_stv": ui.draw.Galil_AR_stv,
|
||||||
|
"Galil_AR_se": ui.draw.Galil_AR_se,
|
||||||
|
"Glock18": ui.draw.Glock18,
|
||||||
|
"Glock18_f": ui.draw.Glock18_f,
|
||||||
|
"Glock18_st": ui.draw.Glock18_st,
|
||||||
|
"Glock18_stv": ui.draw.Glock18_stv,
|
||||||
|
"Glock18_se": ui.draw.Glock18_se,
|
||||||
|
"M249": ui.draw.M249,
|
||||||
|
"M249_f": ui.draw.M249_f,
|
||||||
|
"M249_st": ui.draw.M249_st,
|
||||||
|
"M249_stv": ui.draw.M249_stv,
|
||||||
|
"M249_se": ui.draw.M249_se,
|
||||||
|
"M4A1S": ui.draw.M4A1S,
|
||||||
|
"M4A1S_f": ui.draw.M4A1S_f,
|
||||||
|
"M4A1S_st": ui.draw.M4A1S_st,
|
||||||
|
"M4A1S_stv": ui.draw.M4A1S_stv,
|
||||||
|
"M4A1S_se": ui.draw.M4A1S_se,
|
||||||
|
"M4A4": ui.draw.M4A4,
|
||||||
|
"M4A4_f": ui.draw.M4A4_f,
|
||||||
|
"M4A4_st": ui.draw.M4A4_st,
|
||||||
|
"M4A4_stv": ui.draw.M4A4_stv,
|
||||||
|
"M4A4_se": ui.draw.M4A4_se,
|
||||||
|
"MAC10": ui.draw.MAC10,
|
||||||
|
"MAC10_f": ui.draw.MAC10_f,
|
||||||
|
"MAC10_st": ui.draw.MAC10_st,
|
||||||
|
"MAC10_stv": ui.draw.MAC10_stv,
|
||||||
|
"MAC10_se": ui.draw.MAC10_se,
|
||||||
|
"MAG7": ui.draw.MAG7,
|
||||||
|
"MAG7_f": ui.draw.MAG7_f,
|
||||||
|
"MAG7_st": ui.draw.MAG7_st,
|
||||||
|
"MAG7_stv": ui.draw.MAG7_stv,
|
||||||
|
"MAG7_se": ui.draw.MAG7_se,
|
||||||
|
"MP5SD": ui.draw.MP5SD,
|
||||||
|
"MP5SD_f": ui.draw.MP5SD_f,
|
||||||
|
"MP5SD_st": ui.draw.MP5SD_st,
|
||||||
|
"MP5SD_stv": ui.draw.MP5SD_stv,
|
||||||
|
"MP5SD_se": ui.draw.MP5SD_se,
|
||||||
|
"MP7": ui.draw.MP7,
|
||||||
|
"MP7_f": ui.draw.MP7_f,
|
||||||
|
"MP7_st": ui.draw.MP7_st,
|
||||||
|
"MP7_stv": ui.draw.MP7_stv,
|
||||||
|
"MP7_se": ui.draw.MP7_se,
|
||||||
|
"MP9": ui.draw.MP9,
|
||||||
|
"MP9_f": ui.draw.MP9_f,
|
||||||
|
"MP9_st": ui.draw.MP9_st,
|
||||||
|
"MP9_stv": ui.draw.MP9_stv,
|
||||||
|
"MP9_se": ui.draw.MP9_se,
|
||||||
|
"Negev": ui.draw.Negev,
|
||||||
|
"Negev_f": ui.draw.Negev_f,
|
||||||
|
"Negev_st": ui.draw.Negev_st,
|
||||||
|
"Negev_stv": ui.draw.Negev_stv,
|
||||||
|
"Negev_se": ui.draw.Negev_se,
|
||||||
|
"Nova": ui.draw.Nova,
|
||||||
|
"Nova_f": ui.draw.Nova_f,
|
||||||
|
"Nova_st": ui.draw.Nova_st,
|
||||||
|
"Nova_stv": ui.draw.Nova_stv,
|
||||||
|
"Nova_se": ui.draw.Nova_se,
|
||||||
|
"P2000": ui.draw.P2000,
|
||||||
|
"P2000_f": ui.draw.P2000_f,
|
||||||
|
"P2000_st": ui.draw.P2000_st,
|
||||||
|
"P2000_stv": ui.draw.P2000_stv,
|
||||||
|
"P2000_se": ui.draw.P2000_se,
|
||||||
|
"P250": ui.draw.P250,
|
||||||
|
"P250_f": ui.draw.P250_f,
|
||||||
|
"P250_st": ui.draw.P250_st,
|
||||||
|
"P250_stv": ui.draw.P250_stv,
|
||||||
|
"P250_se": ui.draw.P250_se,
|
||||||
|
"P90": ui.draw.P90,
|
||||||
|
"P90_f": ui.draw.P90_f,
|
||||||
|
"P90_st": ui.draw.P90_st,
|
||||||
|
"P90_stv": ui.draw.P90_stv,
|
||||||
|
"P90_se": ui.draw.P90_se,
|
||||||
|
"PPBizon": ui.draw.PPBizon,
|
||||||
|
"PPBizon_f": ui.draw.PPBizon_f,
|
||||||
|
"PPBizon_st": ui.draw.PPBizon_st,
|
||||||
|
"PPBizon_stv": ui.draw.PPBizon_stv,
|
||||||
|
"PPBizon_se": ui.draw.PPBizon_se,
|
||||||
|
"R8_Revolver": ui.draw.R8_Revolver,
|
||||||
|
"R8_Revolver_f": ui.draw.R8_Revolver_f,
|
||||||
|
"R8_Revolver_st": ui.draw.R8_Revolver_st,
|
||||||
|
"R8_Revolver_stv": ui.draw.R8_Revolver_stv,
|
||||||
|
"R8_Revolver_se": ui.draw.R8_Revolver_se,
|
||||||
|
"SCAR20": ui.draw.SCAR20,
|
||||||
|
"SCAR20_f": ui.draw.SCAR20_f,
|
||||||
|
"SCAR20_st": ui.draw.SCAR20_st,
|
||||||
|
"SCAR20_stv": ui.draw.SCAR20_stv,
|
||||||
|
"SCAR20_se": ui.draw.SCAR20_se,
|
||||||
|
"SG_553": ui.draw.SG_553,
|
||||||
|
"SG_553_f": ui.draw.SG_553_f,
|
||||||
|
"SG_553_st": ui.draw.SG_553_st,
|
||||||
|
"SG_553_stv": ui.draw.SG_553_stv,
|
||||||
|
"SG_553_se": ui.draw.SG_553_se,
|
||||||
|
"SSG_08": ui.draw.SSG_08,
|
||||||
|
"SSG_08_f": ui.draw.SSG_08_f,
|
||||||
|
"SSG_08_st": ui.draw.SSG_08_st,
|
||||||
|
"SSG_08_stv": ui.draw.SSG_08_stv,
|
||||||
|
"SSG_08_se": ui.draw.SSG_08_se,
|
||||||
|
"SawedOff": ui.draw.SawedOff,
|
||||||
|
"SawedOff_f": ui.draw.SawedOff_f,
|
||||||
|
"SawedOff_st": ui.draw.SawedOff_st,
|
||||||
|
"SawedOff_stv": ui.draw.SawedOff_stv,
|
||||||
|
"SawedOff_se": ui.draw.SawedOff_se,
|
||||||
|
"Tec9": ui.draw.Tec9,
|
||||||
|
"Tec9_f": ui.draw.Tec9_f,
|
||||||
|
"Tec9_st": ui.draw.Tec9_st,
|
||||||
|
"Tec9_stv": ui.draw.Tec9_stv,
|
||||||
|
"Tec9_se": ui.draw.Tec9_se,
|
||||||
|
"UMP45": ui.draw.UMP45,
|
||||||
|
"UMP45_f": ui.draw.UMP45_f,
|
||||||
|
"UMP45_st": ui.draw.UMP45_st,
|
||||||
|
"UMP45_stv": ui.draw.UMP45_stv,
|
||||||
|
"UMP45_se": ui.draw.UMP45_se,
|
||||||
|
"USPS": ui.draw.USPS,
|
||||||
|
"USPS_f": ui.draw.USPS_f,
|
||||||
|
"USPS_st": ui.draw.USPS_st,
|
||||||
|
"USPS_stv": ui.draw.USPS_stv,
|
||||||
|
"USPS_se": ui.draw.USPS_se,
|
||||||
|
"XM1014": ui.draw.XM1014,
|
||||||
|
"XM1014_f": ui.draw.XM1014_f,
|
||||||
|
"XM1014_st": ui.draw.XM1014_st,
|
||||||
|
"XM1014_stv": ui.draw.XM1014_stv,
|
||||||
|
"XM1014_se": ui.draw.XM1014_se
|
||||||
|
}
|
||||||
|
|
||||||
|
with open('configs/'+name, 'w') as configfile:
|
||||||
|
configfile.seek(0)
|
||||||
|
configfile.truncate()
|
||||||
|
config_object.write(configfile)
|
||||||
Reference in New Issue
Block a user