Added kinfechanger, better Offsets/rank reveal/skinchanger

Modified the Offsets to work with the knifechanger
The rank reveal won't crash anymore (but still not rlly working)
The skinchanger is a bit more optimized
This commit is contained in:
ALittlePatate
2021-04-11 12:45:38 +02:00
committed by GitHub
parent 3a6712fb9c
commit eb025e9383
4 changed files with 584 additions and 0 deletions

158
utils/Offsets.py Normal file
View File

@@ -0,0 +1,158 @@
import requests, json, sys
n = open("classes/netvars.json", "r")
response = json.load(n)
m_totalHitsOnServer = int(response["DT_CSPlayer"]["m_totalHitsOnServer"])
m_iViewModelIndex = int(response["DT_BaseCombatWeapon"]["m_iViewModelIndex"])
m_nModelIndex = int(response["DT_BaseViewModel"]["m_nModelIndex"])
m_hViewModel = int(response["DT_BasePlayer"]["m_hViewModel[0]"])
url = 'https://raw.githubusercontent.com/frk1/hazedumper/master/csgo.json'
response = requests.get(url).json()
cs_gamerules_data = int(response["netvars"]["cs_gamerules_data"])
m_ArmorValue = int(response["netvars"]["m_ArmorValue"])
m_Collision = int(response["netvars"]["m_Collision"])
m_CollisionGroup = int(response["netvars"]["m_CollisionGroup"])
m_Local = int(response["netvars"]["m_Local"])
m_MoveType = int(response["netvars"]["m_MoveType"])
m_OriginalOwnerXuidHigh = int(response["netvars"]["m_OriginalOwnerXuidHigh"])
m_OriginalOwnerXuidLow = int(response["netvars"]["m_OriginalOwnerXuidLow"])
m_SurvivalGameRuleDecisionTypes = int(response["netvars"]["m_SurvivalGameRuleDecisionTypes"])
m_SurvivalRules = int(response["netvars"]["m_SurvivalRules"])
m_aimPunchAngleVel = int(response["netvars"]["m_aimPunchAngleVel"])
m_aimPunchAngle = int(response["netvars"]["m_aimPunchAngle"])
m_angEyeAnglesX = int(response["netvars"]["m_angEyeAnglesX"])
m_angEyeAnglesY = int(response["netvars"]["m_angEyeAnglesY"])
m_bBombPlanted = int(response["netvars"]["m_bBombPlanted"])
m_bFreezePeriod = int(response["netvars"]["m_bFreezePeriod"])
m_bGunGameImmunity = int(response["netvars"]["m_bGunGameImmunity"])
m_bHasDefuser = int(response["netvars"]["m_bHasDefuser"])
m_bHasHelmet = int(response["netvars"]["m_bHasHelmet"])
m_bInReload = int(response["netvars"]["m_bInReload"])
m_bIsDefusing = int(response["netvars"]["m_bIsDefusing"])
m_bIsQueuedMatchmaking = int(response["netvars"]["m_bIsQueuedMatchmaking"])
m_bIsScoped = int(response["netvars"]["m_bIsScoped"])
m_bIsValveDS = int(response["netvars"]["m_bIsValveDS"])
m_bSpotted = int(response["netvars"]["m_bSpotted"])
m_bSpottedByMask = int(response["netvars"]["m_bSpottedByMask"])
m_bStartedArming = int(response["netvars"]["m_bStartedArming"])
m_bUseCustomAutoExposureMax = int(response["netvars"]["m_bUseCustomAutoExposureMax"])
m_bUseCustomAutoExposureMin = int(response["netvars"]["m_bUseCustomAutoExposureMin"])
m_bUseCustomBloomScale = int(response["netvars"]["m_bUseCustomBloomScale"])
m_clrRender = int(response["netvars"]["m_clrRender"])
m_dwBoneMatrix = int(response["netvars"]["m_dwBoneMatrix"])
m_fAccuracyPenalty = int(response["netvars"]["m_fAccuracyPenalty"])
m_fFlags = int(response["netvars"]["m_fFlags"])
m_flC4Blow = int(response["netvars"]["m_flC4Blow"])
m_flCustomAutoExposureMax = int(response["netvars"]["m_flCustomAutoExposureMax"])
m_flCustomAutoExposureMin = int(response["netvars"]["m_flCustomAutoExposureMin"])
m_flCustomBloomScale = int(response["netvars"]["m_flCustomBloomScale"])
m_flDefuseCountDown = int(response["netvars"]["m_flDefuseCountDown"])
m_flDefuseLength = int(response["netvars"]["m_flDefuseLength"])
m_flFallbackWear = int(response["netvars"]["m_flFallbackWear"])
m_flFlashDuration = int(response["netvars"]["m_flFlashDuration"])
m_flFlashMaxAlpha = int(response["netvars"]["m_flFlashMaxAlpha"])
m_flLastBoneSetupTime = int(response["netvars"]["m_flLastBoneSetupTime"])
m_flLowerBodyYawTarget = int(response["netvars"]["m_flLowerBodyYawTarget"])
m_flNextAttack = int(response["netvars"]["m_flNextAttack"])
m_flNextPrimaryAttack = int(response["netvars"]["m_flNextPrimaryAttack"])
m_flSimulationTime = int(response["netvars"]["m_flSimulationTime"])
m_flTimerLength = int(response["netvars"]["m_flTimerLength"])
m_hActiveWeapon = int(response["netvars"]["m_hActiveWeapon"])
m_hMyWeapons = int(response["netvars"]["m_hMyWeapons"])
m_hObserverTarget = int(response["netvars"]["m_hObserverTarget"])
m_hOwner = int(response["netvars"]["m_hOwner"])
m_hOwnerEntity = int(response["netvars"]["m_hOwnerEntity"])
m_iAccountID = int(response["netvars"]["m_iAccountID"])
m_iClip1 = int(response["netvars"]["m_iClip1"])
m_iCompetitiveRanking = int(response["netvars"]["m_iCompetitiveRanking"])
m_iCompetitiveWins = int(response["netvars"]["m_iCompetitiveWins"])
m_iCrosshairId = int(response["netvars"]["m_iCrosshairId"])
m_iEntityQuality = int(response["netvars"]["m_iEntityQuality"])
m_iFOV = int(response["netvars"]["m_iDefaultFOV"])
m_iFOVStart = int(response["netvars"]["m_iFOVStart"])
m_iGlowIndex = int(response["netvars"]["m_iGlowIndex"])
m_iHealth = int(response["netvars"]["m_iHealth"])
m_iItemDefinitionIndex = int(response["netvars"]["m_iItemDefinitionIndex"])
m_iItemIDHigh = int(response["netvars"]["m_iItemIDHigh"])
m_iMostRecentModelBoneCounter = int(response["netvars"]["m_iMostRecentModelBoneCounter"])
m_iObserverMode = int(response["netvars"]["m_iObserverMode"])
m_iShotsFired = int(response["netvars"]["m_iShotsFired"])
m_iState = int(response["netvars"]["m_iState"])
m_iTeamNum = int(response["netvars"]["m_iTeamNum"])
m_lifeState = int(response["netvars"]["m_lifeState"])
m_nFallbackPaintKit = int(response["netvars"]["m_nFallbackPaintKit"])
m_nFallbackSeed = int(response["netvars"]["m_nFallbackSeed"])
m_nFallbackStatTrak = int(response["netvars"]["m_nFallbackStatTrak"])
m_nForceBone = int(response["netvars"]["m_nForceBone"])
m_nTickBase = int(response["netvars"]["m_nTickBase"])
m_rgflCoordinateFrame = int(response["netvars"]["m_rgflCoordinateFrame"])
m_szCustomName = int(response["netvars"]["m_szCustomName"])
m_szLastPlaceName = int(response["netvars"]["m_szLastPlaceName"])
m_thirdPersonViewAngles = int(response["netvars"]["m_thirdPersonViewAngles"])
m_vecOrigin = int(response["netvars"]["m_vecOrigin"])
m_vecVelocity = int(response["netvars"]["m_vecVelocity"])
m_vecViewOffset = int(response["netvars"]["m_vecViewOffset"])
m_viewPunchAngle = int(response["netvars"]["m_viewPunchAngle"])
anim_overlays = int(response["signatures"]["anim_overlays"])
clientstate_choked_commands = int(response["signatures"]["clientstate_choked_commands"])
clientstate_delta_ticks = int(response["signatures"]["clientstate_delta_ticks"])
clientstate_last_outgoing_command = int(response["signatures"]["clientstate_last_outgoing_command"])
clientstate_net_channel = int(response["signatures"]["clientstate_net_channel"])
convar_name_hash_table = int(response["signatures"]["convar_name_hash_table"])
dwLocalPlayer = int(response["signatures"]["dwLocalPlayer"])
dwClientState = int(response["signatures"]["dwClientState"])
dwClientState_GetLocalPlayer = int(response["signatures"]["dwClientState_GetLocalPlayer"])
dwClientState_IsHLTV = int(response["signatures"]["dwClientState_IsHLTV"])
dwClientState_Map = int(response["signatures"]["dwClientState_Map"])
dwClientState_MapDirectory = int(response["signatures"]["dwClientState_MapDirectory"])
dwClientState_MaxPlayer = int(response["signatures"]["dwClientState_MaxPlayer"])
dwClientState_PlayerInfo = int(response["signatures"]["dwClientState_PlayerInfo"])
dwClientState_State = int(response["signatures"]["dwClientState_State"])
dwClientState_ViewAngles = int(response["signatures"]["dwClientState_ViewAngles"])
dwEntityList = int(response["signatures"]["dwEntityList"])
dwForceAttack = int(response["signatures"]["dwForceAttack"])
dwForceAttack2 = int(response["signatures"]["dwForceAttack2"])
dwForceBackward = int(response["signatures"]["dwForceBackward"])
dwForceForward = int(response["signatures"]["dwForceForward"])
dwForceJump = int(response["signatures"]["dwForceJump"])
dwForceLeft = int(response["signatures"]["dwForceLeft"])
dwForceRight = int(response["signatures"]["dwForceRight"])
dwGameDir = int(response["signatures"]["dwGameDir"])
dwGameRulesProxy = int(response["signatures"]["dwGameRulesProxy"])
dwGetAllClasses = int(response["signatures"]["dwGetAllClasses"])
dwGlobalVars = int(response["signatures"]["dwGlobalVars"])
dwGlowObjectManager = int(response["signatures"]["dwGlowObjectManager"])
dwInput = int(response["signatures"]["dwInput"])
dwInterfaceLinkList = int(response["signatures"]["dwInterfaceLinkList"])
dwMouseEnable = int(response["signatures"]["dwMouseEnable"])
dwMouseEnablePtr = int(response["signatures"]["dwMouseEnablePtr"])
dwPlayerResource = int(response["signatures"]["dwPlayerResource"])
dwSensitivity = int(response["signatures"]["dwSensitivity"])
dwSensitivityPtr = int(response["signatures"]["dwSensitivityPtr"])
dwRadarBase = int(response["signatures"]["dwRadarBase"])
dwSetClanTag = int(response["signatures"]["dwSetClanTag"])
dwViewMatrix = int(response["signatures"]["dwViewMatrix"])
dwWeaponTable = int(response["signatures"]["dwWeaponTable"])
dwWeaponTableIndex = int(response["signatures"]["dwWeaponTableIndex"])
dwYawPtr = int(response["signatures"]["dwYawPtr"])
dwZoomSensitivityRatioPtr = int(response["signatures"]["dwZoomSensitivityRatioPtr"])
dwbSendPackets = int(response["signatures"]["dwbSendPackets"])
dwppDirect3DDevice9 = int(response["signatures"]["dwppDirect3DDevice9"])
find_hud_element = int(response["signatures"]["find_hud_element"])
force_update_spectator_glow = int(response["signatures"]["force_update_spectator_glow"])
interface_engine_cvar = int(response["signatures"]["interface_engine_cvar"])
is_c4_owner = int(response["signatures"]["is_c4_owner"])
m_bDormant = int(response["signatures"]["m_bDormant"])
m_flSpawnTime = int(response["signatures"]["m_flSpawnTime"])
m_pStudioHdr = int(response["signatures"]["m_pStudioHdr"])
m_pitchClassPtr = int(response["signatures"]["m_pitchClassPtr"])
m_yawClassPtr = int(response["signatures"]["m_yawClassPtr"])
model_ambient_min = int(response["signatures"]["model_ambient_min"])
set_abs_angles = int(response["signatures"]["set_abs_angles"])
set_abs_origin = int(response["signatures"]["set_abs_origin"])

182
utils/knifechanger.py Normal file
View File

@@ -0,0 +1,182 @@
import pymem
import ctypes, sys, os
from itertools import repeat
from Offsets import *
from configparser import ConfigParser
sys.path.insert(1, "classes/")
from skin_id_dumper import main as skin_dump
class knifechanger_func() :
def __init__(self):
self.config_p = ConfigParser()
try :
pm = pymem.Pymem("csgo.exe")
except :
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Could not find the csgo.exe process !', 'Error', 16)
return
client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll
engine = pymem.process.module_from_name(pm.process_handle, "engine.dll").lpBaseOfDll
engine_state = pm.read_int( engine + dwClientState )
skin_dict, skin_list = skin_dump() #using skin_dict only
knife_ids = {
"Gold knife" : 519,
"Spectral knife" : 604,
"Bayonet" : 612,
"Classic knife" : 615,
"Flip knife" : 618,
"Gut knife" : 621,
"Karambit" : 624,
"M9 Bayonet" : 627,
"Huntsman" : 630,
"Falchion knife" : 633,
"Bowie knife" : 636,
"Butterfly knife" : 639,
"Shadow daggers" : 642,
"Cord knife" : 646,
"Canis knife" : 649,
"Ursus knife" : 652,
"Navaja" : 655,
"Nomad knife" : 658,
"Stiletto knife" : 661,
"Talon knife": 664,
"Skeleton knife" : 667
}
knifeDefinitionIndex_dict = {
"Gold knife" : 41,
"Spectral knife" : 505,
"Bayonet" : 500,
"Classic knife" : 503,
"Flip knife" : 505,
"Gut knife" : 506,
"Karambit" : 507,
"M9 Bayonet" : 508,
"Huntsman" : 509,
"Falchion knife" : 512,
"Bowie knife" : 514,
"Butterfly knife" : 515,
"Shadow daggers" : 516,
"Paracord knife" : 517,
"Survival knife" : 518,
"Ursus knife" : 519,
"Navaja" : 520,
"Nomad knife" : 521,
"Stiletto knife" : 522,
"Talon knife": 523,
"Skeleton knife" : 525
}
CtKnife = 522
TKnife = 547
cachedPlayer = 0
modelIndex = 0
entityQuality = 3
b = 500
while 1 :
if b == 500 :
knife_active = config.get_knife(self)
knifeID, knifeDefinitionIndex, paintKit, fallbackwear, seed = int(knife_ids[knife_active["knife"]]), int(knifeDefinitionIndex_dict[knife_active["knife"]]), int(skin_dict[knife_active["knife_skin"]]), knife_active["knife_f"], knife_active["knife_se"]
b = 0
b = b + 1
localPlayer = pm.read_uint(client + dwLocalPlayer)
if localPlayer == 0:
modelIndex = 0
continue
elif localPlayer != cachedPlayer:
modelIndex = 0
cachedPlayer = localPlayer
if paintKit > 0 and modelIndex > 0 :
for i in repeat(0, 8) :
currentWeapon = pm.read_uint(localPlayer + m_hMyWeapons + i * 0x04) & 0xfff
currentWeapon = pm.read_uint(client + dwEntityList + (currentWeapon - 1) * 0x10)
if currentWeapon == 0:continue
weaponID = pm.read_short(currentWeapon + m_iItemDefinitionIndex)
fallbackPaint = paintKit
if weaponID != 42 and weaponID != 59 and weaponID != knifeDefinitionIndex :continue
else:
pm.write_short(currentWeapon + m_iItemDefinitionIndex, knifeDefinitionIndex)
pm.write_uint(currentWeapon + m_nModelIndex, modelIndex)
pm.write_uint(currentWeapon + m_iViewModelIndex, modelIndex)
pm.write_int(currentWeapon + m_iEntityQuality, entityQuality)
pm.write_int(currentWeapon + m_iItemIDHigh, -1)
pm.write_uint(currentWeapon + m_nFallbackPaintKit, fallbackPaint)
pm.write_float(currentWeapon + m_flFallbackWear,fallbackwear)
if knife_active["knife_st"] :
stattrack_v = knife_active["knife_stv"]
pm.write_int( currentWeapon + m_nFallbackStatTrak, stattrack_v )
pm.write_int( currentWeapon + m_nFallbackSeed, seed )
for _ in repeat(None, 100) :
ActiveWeapon = pm.read_int( localPlayer + m_hActiveWeapon) & 0xfff
ActiveWeapon = pm.read_int( client + dwEntityList + (ActiveWeapon - 1) * 0x10 )
if ActiveWeapon == 0:
continue
weaponID = pm.read_short( ActiveWeapon + m_iItemDefinitionIndex )
weaponViewModelId = pm.read_int( ActiveWeapon + m_iViewModelIndex )
if weaponID == 42 and weaponViewModelId > 0:
modelIndex = weaponViewModelId + (knifeID - CtKnife)
elif weaponID == 59 and weaponViewModelId > 0:
modelIndex = weaponViewModelId + (knifeID - TKnife)
elif weaponID != knifeDefinitionIndex or modelIndex == 0 :
continue
knifeViewModel = pm.read_uint( localPlayer + m_hViewModel ) & 0xfff
knifeViewModel = pm.read_uint( client + dwEntityList + (knifeViewModel - 1) * 0x10 )
if knifeViewModel == 0: continue
pm.write_uint( knifeViewModel + m_nModelIndex, modelIndex)
class config() :
def read_last(self) :
while 1 : #If there is an error because we are writing the last config at the same time
try :
with open("configs/last/last.txt", "r") as f :
for line in f :
last = line
return last
except :
pass
def get_knife(self) :
self.config_last = config.read_last(self)
self.config_p.read('configs/'+self.config_last)
active_weapons = {
"knife": self.config_p.get('SKINCHANGER', 'knife'),
"knife_skin": self.config_p.get('SKINCHANGER', 'knife_skin'),
"knife_f": self.config_p.getfloat('SKINCHANGER', 'knife_f'),
"knife_st": self.config_p.getboolean('SKINCHANGER', 'knife_st'),
"knife_stv": self.config_p.getint('SKINCHANGER', 'knife_stv'),
"knife_se": self.config_p.getint('SKINCHANGER', 'knife_se'),
}
return active_weapons

83
utils/rank_reveal.py Normal file
View File

@@ -0,0 +1,83 @@
import pymem
import pymem.process
import time
import ctypes
from tkinter import *
from Offsets import *
class rank_reveal() :
def __init__(self):
try :
pm = pymem.Pymem("csgo.exe")
except :
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Could not find the csgo.exe process !', 'Error', 16)
return
top = Tk()
w = 320
h = 300
ws = top.winfo_screenwidth()
hs = top.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
top.geometry('%dx%d+%d+%d' % (w, h, x, y))
top.title('Rank Reveal')
top.iconbitmap("images/rainbow.ico")
top.config(background='#f0f0f0')
scrollbar = Scrollbar(top)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(top)
listbox.pack(expand=1, fill=BOTH)
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=listbox.yview)
client = pymem.process.module_from_name(pm.process_handle, "client.dll")
engine = pymem.process.module_from_name(pm.process_handle, "engine.dll")
ranks = ["Unranked",
"Silver I",
"Silver II",
"Silver III",
"Silver IV",
"Silver Elite",
"Silver Elite Master",
"Gold Nova I",
"Gold Nova II",
"Gold Nova III",
"Gold Nova Master",
"Master Guardian I",
"Master Guardian II",
"Master Guardian Elite",
"Distinguished Master Guardian",
"Legendary Eagle", #15 = (0)
"Legendary Eagle Master",
"Supreme Master First Class",
"The Global Elite"]
for i in range(0, 32):
entity = pm.read_int(client.lpBaseOfDll + dwEntityList + i * 0x10)
if entity:
entity_team_id = pm.read_int(entity + m_iTeamNum)
entity_i = pm.read_int(client.lpBaseOfDll + dwLocalPlayer)
if entity_team_id != pm.read_int(entity_i + m_iTeamNum):
player_info = pm.read_int(
(pm.read_int(engine.lpBaseOfDll + dwClientState)) + dwClientState_PlayerInfo)
player_info_items = pm.read_int(pm.read_int(player_info + 0x40) + 0xC)
info = pm.read_int(player_info_items + 0x28 + (i * 0x34))
playerres = pm.read_int(client.lpBaseOfDll + dwPlayerResource)
rank = pm.read_int(playerres + m_iCompetitiveRanking + i * 4)
if pm.read_string(info + 0x10) != 'GOTV':
try :
listbox.insert(END, pm.read_string(info + 0x10) + " --> " + ranks[rank] + " " + str(rank))
except :
try :
listbox.insert(END, pm.read_string(info + 0x10).encode('iso-8859-1').decode() + " --> " + ranks[rank] + " " + str(rank))
except :
listbox.insert(END, "? --> " + ranks[rank] + " " + str(rank))
top.mainloop()
pm.close_process()

161
utils/skinchanger.py Normal file
View File

@@ -0,0 +1,161 @@
import ctypes, sys, os
import pymem
import requests
import keyboard
from itertools import repeat
from Offsets import *
from configparser import ConfigParser
sys.path.insert(1, "classes/")
from skin_id_dumper import main as skin_dump
class skinchanger_func() :
def __init__(self):
try :
pm = pymem.Pymem("csgo.exe")
except :
MessageBox = ctypes.windll.user32.MessageBoxW
MessageBox(None, 'Could not find the csgo.exe process !', 'Error', 16)
return
client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll
engine = pymem.process.module_from_name(pm.process_handle, "engine.dll").lpBaseOfDll
engine_state = pm.read_int( engine + dwClientState )
skin_dict, skin_list = skin_dump() #using skin_dict only
weapons_id = {
"AK47": 7,
"AUG": 8,
"FAMAS": 10,
"Galil_AR": 13,
"M4A1S": 60,
"M4A4": 16,
"SG_553": 39,
"AWP": 9,
"SSG_08": 40,
"G3SG1": 11,
"SCAR20": 38,
"MAC10": 17,
"MP7": 33,
"MP9": 34,
"PPBizon": 36,
"P90": 19,
"UMP45": 24,
"MP5SD": 23,
"MAG7": 27,
"Nova": 35,
"SawedOff": 29,
"XM1014": 25,
"Negev": 28,
"M249": 14,
"USPS": 61,
"Desert_Eagle": 1,
"Glock18": 4,
"FiveSeven": 3,
"P250": 36,
"Tec9": 30,
"P2000": 32,
"R8_Revolver": 64,
"CZ75Auto": 63,
"Dual_Berettas": 2
}
self.config_p = ConfigParser()
while 1 :
self.config_last = config.read_last(self)
self.config_p.read('configs/'+self.config_last)
active_weapons = config.active_weapons(self)
for weapon, skin in active_weapons.items() :
fallbackpaint, seed, float_v, stattrack_y = int(skin_dict[skin]), self.config_p.getint('SKINCHANGER', weapon+"_se"), self.config_p.getfloat('SKINCHANGER', weapon+"_f"), self.config_p.getboolean('SKINCHANGER', weapon+"_st")
local_player = pm.read_int( client + dwLocalPlayer )
for _ in repeat(0,2000) :
for i in range(0, 8) :
my_weapons = pm.read_int( local_player + m_hMyWeapons + (i - 1) * 0x4 ) & 0xFFF
weapon_address = pm.read_int( client + dwEntityList + (my_weapons - 1) * 0x10 )
if weapon_address:
weapon_id_2 = pm.read_short(weapon_address + m_iItemDefinitionIndex)
if weapon_id_2 == weapons_id[weapon] :
weapon_owner = pm.read_int(weapon_address + m_OriginalOwnerXuidLow)
pm.write_int( weapon_address + m_iItemIDHigh, -1 )
pm.write_int( weapon_address + m_nFallbackPaintKit, fallbackpaint )
pm.write_int( weapon_address + m_iAccountID, weapon_owner )
if stattrack_y :
stattrack_v = self.config_p.getint('SKINCHANGER', weapon+"_stv")
pm.write_int( weapon_address + m_nFallbackStatTrak, stattrack_v )
pm.write_int( weapon_address + m_nFallbackSeed, seed )
pm.write_float( weapon_address + m_flFallbackWear, float_v)
if keyboard.is_pressed( "f6" ):
pm.write_int( engine_state + 0x174, -1 )
class config() :
def read_last(self) :
while True : #If there is an error because we are writing the last config at the same time
try :
with open("configs/last/last.txt", "r") as f :
for line in f :
last = line
return last
except :
pass
def read_active_weapons(self) :
all_weapons = {
"AK47": self.config_p.get('SKINCHANGER', 'AK47'),
"AUG": self.config_p.get('SKINCHANGER', 'AUG'),
"AWP": self.config_p.get('SKINCHANGER', 'AWP'),
"CZ75Auto": self.config_p.get('SKINCHANGER', 'CZ75Auto'),
"Desert_Eagle": self.config_p.get('SKINCHANGER', 'Desert_Eagle'),
"Dual_Berettas": self.config_p.get('SKINCHANGER', 'Dual_Berettas'),
"FAMAS": self.config_p.get('SKINCHANGER', 'FAMAS'),
"FiveSeven": self.config_p.get('SKINCHANGER', 'FiveSeven'),
"G3SG1": self.config_p.get('SKINCHANGER', 'G3SG1'),
"Galil_AR": self.config_p.get('SKINCHANGER', 'Galil_AR'),
"Glock18": self.config_p.get('SKINCHANGER', 'Glock18'),
"M249": self.config_p.get('SKINCHANGER', 'M249'),
"M4A1S": self.config_p.get('SKINCHANGER', 'M4A1S'),
"M4A4": self.config_p.get('SKINCHANGER', 'M4A4'),
"MAC10": self.config_p.get('SKINCHANGER', 'MAC10'),
"MAG7": self.config_p.get('SKINCHANGER', 'MAG7'),
"MP5SD": self.config_p.get('SKINCHANGER', 'MP5SD'),
"MP7": self.config_p.get('SKINCHANGER', 'MP7'),
"MP9": self.config_p.get('SKINCHANGER', 'MP9'),
"Negev": self.config_p.get('SKINCHANGER', 'Negev'),
"Nova": self.config_p.get('SKINCHANGER', 'Nova'),
"P2000": self.config_p.get('SKINCHANGER', 'P2000'),
"P250": self.config_p.get('SKINCHANGER', 'P250'),
"P90": self.config_p.get('SKINCHANGER', 'P90'),
"PPBizon": self.config_p.get('SKINCHANGER', 'PPBizon'),
"R8_Revolver": self.config_p.get('SKINCHANGER', 'R8_Revolver'),
"SCAR20": self.config_p.get('SKINCHANGER', 'SCAR20'),
"SG_553": self.config_p.get('SKINCHANGER', 'SG_553'),
"SSG_08": self.config_p.get('SKINCHANGER', 'SSG_08'),
"SawedOff": self.config_p.get('SKINCHANGER', 'SawedOff'),
"Tec9": self.config_p.get('SKINCHANGER', 'Tec9'),
"UMP45": self.config_p.get('SKINCHANGER', 'UMP45'),
"USPS": self.config_p.get('SKINCHANGER', 'USPS'),
"XM1014": self.config_p.get('SKINCHANGER', 'XM1014'),
}
return all_weapons
def active_weapons(self) :
all_weapons = config.read_active_weapons(self)
active_weapons = {}
for weapon, value in all_weapons.items():
if value != "0" :
active_weapons[weapon] = value
return active_weapons