Add files via upload
This commit is contained in:
291
classes/features_check.py
Normal file
291
classes/features_check.py
Normal file
@@ -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)
|
||||
123
classes/features_reads.py
Normal file
123
classes/features_reads.py
Normal file
@@ -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
|
||||
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()
|
||||
2657
classes/netvars.json
Normal file
2657
classes/netvars.json
Normal file
File diff suppressed because it is too large
Load Diff
55
classes/read_config.py
Normal file
55
classes/read_config.py
Normal file
@@ -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')
|
||||
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
|
||||
)
|
||||
889
classes/ui.py
Normal file
889
classes/ui.py
Normal file
@@ -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
|
||||
66
classes/write_config.py
Normal file
66
classes/write_config.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user