This commit is contained in:
BenCat07 2018-04-18 20:08:13 +02:00
parent 00ccda80bf
commit c1f92946c8
11 changed files with 1707 additions and 1665 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,11 +3,13 @@
#include "classinfo/dynamic.gen.hpp" #include "classinfo/dynamic.gen.hpp"
#include "common.hpp" #include "common.hpp"
namespace client_classes { namespace client_classes
{
std::unordered_map<std::string, int*> classid_mapping {}; std::unordered_map<std::string, int *> classid_mapping{};
dynamic::dynamic() { dynamic::dynamic()
{
classid_mapping["CTETFParticleEffect"] = &CTETFParticleEffect; classid_mapping["CTETFParticleEffect"] = &CTETFParticleEffect;
classid_mapping["CTETFExplosion"] = &CTETFExplosion; classid_mapping["CTETFExplosion"] = &CTETFExplosion;
classid_mapping["CTETFBlood"] = &CTETFBlood; classid_mapping["CTETFBlood"] = &CTETFBlood;
@ -27,7 +29,8 @@ dynamic::dynamic() {
classid_mapping["CTFProjectile_Rocket"] = &CTFProjectile_Rocket; classid_mapping["CTFProjectile_Rocket"] = &CTFProjectile_Rocket;
classid_mapping["CTFProjectile_Flare"] = &CTFProjectile_Flare; classid_mapping["CTFProjectile_Flare"] = &CTFProjectile_Flare;
classid_mapping["CTFProjectile_EnergyBall"] = &CTFProjectile_EnergyBall; classid_mapping["CTFProjectile_EnergyBall"] = &CTFProjectile_EnergyBall;
classid_mapping["CTFProjectile_GrapplingHook"] = &CTFProjectile_GrapplingHook; classid_mapping["CTFProjectile_GrapplingHook"] =
&CTFProjectile_GrapplingHook;
classid_mapping["CTFProjectile_HealingBolt"] = &CTFProjectile_HealingBolt; classid_mapping["CTFProjectile_HealingBolt"] = &CTFProjectile_HealingBolt;
classid_mapping["CTFProjectile_Arrow"] = &CTFProjectile_Arrow; classid_mapping["CTFProjectile_Arrow"] = &CTFProjectile_Arrow;
classid_mapping["CTFPlayerResource"] = &CTFPlayerResource; classid_mapping["CTFPlayerResource"] = &CTFPlayerResource;
@ -109,7 +112,8 @@ dynamic::dynamic() {
classid_mapping["CTEBaseBeam"] = &CTEBaseBeam; classid_mapping["CTEBaseBeam"] = &CTEBaseBeam;
classid_mapping["CTEArmorRicochet"] = &CTEArmorRicochet; classid_mapping["CTEArmorRicochet"] = &CTEArmorRicochet;
classid_mapping["CTEMetalSparks"] = &CTEMetalSparks; classid_mapping["CTEMetalSparks"] = &CTEMetalSparks;
classid_mapping["CTest_ProxyToggle_Networkable"] = &CTest_ProxyToggle_Networkable; classid_mapping["CTest_ProxyToggle_Networkable"] =
&CTest_ProxyToggle_Networkable;
classid_mapping["CTestTraceline"] = &CTestTraceline; classid_mapping["CTestTraceline"] = &CTestTraceline;
classid_mapping["CTesla"] = &CTesla; classid_mapping["CTesla"] = &CTesla;
classid_mapping["CTeamTrainWatcher"] = &CTeamTrainWatcher; classid_mapping["CTeamTrainWatcher"] = &CTeamTrainWatcher;
@ -117,7 +121,8 @@ dynamic::dynamic() {
classid_mapping["CTeam"] = &CTeam; classid_mapping["CTeam"] = &CTeam;
classid_mapping["CSun"] = &CSun; classid_mapping["CSun"] = &CSun;
classid_mapping["CSteamJet"] = &CSteamJet; classid_mapping["CSteamJet"] = &CSteamJet;
classid_mapping["CParticlePerformanceMonitor"] = &CParticlePerformanceMonitor; classid_mapping["CParticlePerformanceMonitor"] =
&CParticlePerformanceMonitor;
classid_mapping["CSpotlightEnd"] = &CSpotlightEnd; classid_mapping["CSpotlightEnd"] = &CSpotlightEnd;
classid_mapping["DustTrail"] = &DustTrail; classid_mapping["DustTrail"] = &DustTrail;
classid_mapping["CFireTrail"] = &CFireTrail; classid_mapping["CFireTrail"] = &CFireTrail;
@ -200,9 +205,12 @@ dynamic::dynamic() {
classid_mapping["CTFWearableRobotArm"] = &CTFWearableRobotArm; classid_mapping["CTFWearableRobotArm"] = &CTFWearableRobotArm;
classid_mapping["CTFRobotArm"] = &CTFRobotArm; classid_mapping["CTFRobotArm"] = &CTFRobotArm;
classid_mapping["CTFWrench"] = &CTFWrench; classid_mapping["CTFWrench"] = &CTFWrench;
classid_mapping["CTFProjectile_ThrowableBreadMonster"] = &CTFProjectile_ThrowableBreadMonster; classid_mapping["CTFProjectile_ThrowableBreadMonster"] =
classid_mapping["CTFProjectile_ThrowableBrick"] = &CTFProjectile_ThrowableBrick; &CTFProjectile_ThrowableBreadMonster;
classid_mapping["CTFProjectile_ThrowableRepel"] = &CTFProjectile_ThrowableRepel; classid_mapping["CTFProjectile_ThrowableBrick"] =
&CTFProjectile_ThrowableBrick;
classid_mapping["CTFProjectile_ThrowableRepel"] =
&CTFProjectile_ThrowableRepel;
classid_mapping["CTFProjectile_Throwable"] = &CTFProjectile_Throwable; classid_mapping["CTFProjectile_Throwable"] = &CTFProjectile_Throwable;
classid_mapping["CTFThrowable"] = &CTFThrowable; classid_mapping["CTFThrowable"] = &CTFThrowable;
classid_mapping["CTFSyringeGun"] = &CTFSyringeGun; classid_mapping["CTFSyringeGun"] = &CTFSyringeGun;
@ -226,8 +234,10 @@ dynamic::dynamic() {
classid_mapping["CTFShotgun"] = &CTFShotgun; classid_mapping["CTFShotgun"] = &CTFShotgun;
classid_mapping["CTFCrossbow"] = &CTFCrossbow; classid_mapping["CTFCrossbow"] = &CTFCrossbow;
classid_mapping["CTFRocketLauncher_Mortar"] = &CTFRocketLauncher_Mortar; classid_mapping["CTFRocketLauncher_Mortar"] = &CTFRocketLauncher_Mortar;
classid_mapping["CTFRocketLauncher_AirStrike"] = &CTFRocketLauncher_AirStrike; classid_mapping["CTFRocketLauncher_AirStrike"] =
classid_mapping["CTFRocketLauncher_DirectHit"] = &CTFRocketLauncher_DirectHit; &CTFRocketLauncher_AirStrike;
classid_mapping["CTFRocketLauncher_DirectHit"] =
&CTFRocketLauncher_DirectHit;
classid_mapping["CTFRocketLauncher"] = &CTFRocketLauncher; classid_mapping["CTFRocketLauncher"] = &CTFRocketLauncher;
classid_mapping["CTFRevolver"] = &CTFRevolver; classid_mapping["CTFRevolver"] = &CTFRevolver;
classid_mapping["CTFDRGPomson"] = &CTFDRGPomson; classid_mapping["CTFDRGPomson"] = &CTFDRGPomson;
@ -238,10 +248,14 @@ dynamic::dynamic() {
classid_mapping["CTFPistol"] = &CTFPistol; classid_mapping["CTFPistol"] = &CTFPistol;
classid_mapping["CTFPipebombLauncher"] = &CTFPipebombLauncher; classid_mapping["CTFPipebombLauncher"] = &CTFPipebombLauncher;
classid_mapping["CTFWeaponPDA_Spy"] = &CTFWeaponPDA_Spy; classid_mapping["CTFWeaponPDA_Spy"] = &CTFWeaponPDA_Spy;
classid_mapping["CTFWeaponPDA_Engineer_Destroy"] = &CTFWeaponPDA_Engineer_Destroy; classid_mapping["CTFWeaponPDA_Engineer_Destroy"] =
classid_mapping["CTFWeaponPDA_Engineer_Build"] = &CTFWeaponPDA_Engineer_Build; &CTFWeaponPDA_Engineer_Destroy;
classid_mapping["CTFWeaponPDAExpansion_Teleporter"] = &CTFWeaponPDAExpansion_Teleporter; classid_mapping["CTFWeaponPDA_Engineer_Build"] =
classid_mapping["CTFWeaponPDAExpansion_Dispenser"] = &CTFWeaponPDAExpansion_Dispenser; &CTFWeaponPDA_Engineer_Build;
classid_mapping["CTFWeaponPDAExpansion_Teleporter"] =
&CTFWeaponPDAExpansion_Teleporter;
classid_mapping["CTFWeaponPDAExpansion_Dispenser"] =
&CTFWeaponPDAExpansion_Dispenser;
classid_mapping["CTFWeaponPDA"] = &CTFWeaponPDA; classid_mapping["CTFWeaponPDA"] = &CTFWeaponPDA;
classid_mapping["CPasstimeGun"] = &CPasstimeGun; classid_mapping["CPasstimeGun"] = &CPasstimeGun;
classid_mapping["CTFParticleCannon"] = &CTFParticleCannon; classid_mapping["CTFParticleCannon"] = &CTFParticleCannon;
@ -251,7 +265,8 @@ dynamic::dynamic() {
classid_mapping["CTFMinigun"] = &CTFMinigun; classid_mapping["CTFMinigun"] = &CTFMinigun;
classid_mapping["CTFMedigunShield"] = &CTFMedigunShield; classid_mapping["CTFMedigunShield"] = &CTFMedigunShield;
classid_mapping["CWeaponMedigun"] = &CWeaponMedigun; classid_mapping["CWeaponMedigun"] = &CWeaponMedigun;
classid_mapping["CTFProjectile_MechanicalArmOrb"] = &CTFProjectile_MechanicalArmOrb; classid_mapping["CTFProjectile_MechanicalArmOrb"] =
&CTFProjectile_MechanicalArmOrb;
classid_mapping["CTFMechanicalArm"] = &CTFMechanicalArm; classid_mapping["CTFMechanicalArm"] = &CTFMechanicalArm;
classid_mapping["CTFLunchBox_Drink"] = &CTFLunchBox_Drink; classid_mapping["CTFLunchBox_Drink"] = &CTFLunchBox_Drink;
classid_mapping["CTFLunchBox"] = &CTFLunchBox; classid_mapping["CTFLunchBox"] = &CTFLunchBox;
@ -265,7 +280,8 @@ dynamic::dynamic() {
classid_mapping["CTFJarMilk"] = &CTFJarMilk; classid_mapping["CTFJarMilk"] = &CTFJarMilk;
classid_mapping["CTFJar"] = &CTFJar; classid_mapping["CTFJar"] = &CTFJar;
classid_mapping["CTFWeaponInvis"] = &CTFWeaponInvis; classid_mapping["CTFWeaponInvis"] = &CTFWeaponInvis;
classid_mapping["CTFGrenadePipebombProjectile"] = &CTFGrenadePipebombProjectile; classid_mapping["CTFGrenadePipebombProjectile"] =
&CTFGrenadePipebombProjectile;
classid_mapping["CTFCannon"] = &CTFCannon; classid_mapping["CTFCannon"] = &CTFCannon;
classid_mapping["CTFGrenadeLauncher"] = &CTFGrenadeLauncher; classid_mapping["CTFGrenadeLauncher"] = &CTFGrenadeLauncher;
classid_mapping["CTFGrapplingHook"] = &CTFGrapplingHook; classid_mapping["CTFGrapplingHook"] = &CTFGrapplingHook;
@ -288,7 +304,8 @@ dynamic::dynamic() {
classid_mapping["CTFBat_Fish"] = &CTFBat_Fish; classid_mapping["CTFBat_Fish"] = &CTFBat_Fish;
classid_mapping["CTFBat"] = &CTFBat; classid_mapping["CTFBat"] = &CTFBat;
classid_mapping["CTFBaseRocket"] = &CTFBaseRocket; classid_mapping["CTFBaseRocket"] = &CTFBaseRocket;
classid_mapping["CTFWeaponBaseMerasmusGrenade"] = &CTFWeaponBaseMerasmusGrenade; classid_mapping["CTFWeaponBaseMerasmusGrenade"] =
&CTFWeaponBaseMerasmusGrenade;
classid_mapping["CTFWeaponBaseMelee"] = &CTFWeaponBaseMelee; classid_mapping["CTFWeaponBaseMelee"] = &CTFWeaponBaseMelee;
classid_mapping["CTFWeaponBaseGun"] = &CTFWeaponBaseGun; classid_mapping["CTFWeaponBaseGun"] = &CTFWeaponBaseGun;
classid_mapping["CTFWeaponBaseGrenadeProj"] = &CTFWeaponBaseGrenadeProj; classid_mapping["CTFWeaponBaseGrenadeProj"] = &CTFWeaponBaseGrenadeProj;
@ -303,12 +320,16 @@ dynamic::dynamic() {
classid_mapping["CBaseObjectUpgrade"] = &CBaseObjectUpgrade; classid_mapping["CBaseObjectUpgrade"] = &CBaseObjectUpgrade;
classid_mapping["CMannVsMachineStats"] = &CMannVsMachineStats; classid_mapping["CMannVsMachineStats"] = &CMannVsMachineStats;
classid_mapping["CTFRobotDestructionLogic"] = &CTFRobotDestructionLogic; classid_mapping["CTFRobotDestructionLogic"] = &CTFRobotDestructionLogic;
classid_mapping["CTFRobotDestruction_RobotGroup"] = &CTFRobotDestruction_RobotGroup; classid_mapping["CTFRobotDestruction_RobotGroup"] =
classid_mapping["CTFRobotDestruction_RobotSpawn"] = &CTFRobotDestruction_RobotSpawn; &CTFRobotDestruction_RobotGroup;
classid_mapping["CTFRobotDestruction_RobotSpawn"] =
&CTFRobotDestruction_RobotSpawn;
classid_mapping["CTFPlayerDestructionLogic"] = &CTFPlayerDestructionLogic; classid_mapping["CTFPlayerDestructionLogic"] = &CTFPlayerDestructionLogic;
classid_mapping["CPlayerDestructionDispenser"] = &CPlayerDestructionDispenser; classid_mapping["CPlayerDestructionDispenser"] =
&CPlayerDestructionDispenser;
classid_mapping["CTFMinigameLogic"] = &CTFMinigameLogic; classid_mapping["CTFMinigameLogic"] = &CTFMinigameLogic;
classid_mapping["CTFHalloweenMinigame_FallingPlatforms"] = &CTFHalloweenMinigame_FallingPlatforms; classid_mapping["CTFHalloweenMinigame_FallingPlatforms"] =
&CTFHalloweenMinigame_FallingPlatforms;
classid_mapping["CTFHalloweenMinigame"] = &CTFHalloweenMinigame; classid_mapping["CTFHalloweenMinigame"] = &CTFHalloweenMinigame;
classid_mapping["CTFMiniGame"] = &CTFMiniGame; classid_mapping["CTFMiniGame"] = &CTFMiniGame;
classid_mapping["CTFWearableVM"] = &CTFWearableVM; classid_mapping["CTFWearableVM"] = &CTFWearableVM;
@ -320,19 +341,27 @@ dynamic::dynamic() {
classid_mapping["CBonusRoundLogic"] = &CBonusRoundLogic; classid_mapping["CBonusRoundLogic"] = &CBonusRoundLogic;
classid_mapping["CTFGameRulesProxy"] = &CTFGameRulesProxy; classid_mapping["CTFGameRulesProxy"] = &CTFGameRulesProxy;
classid_mapping["CTFDroppedWeapon"] = &CTFDroppedWeapon; classid_mapping["CTFDroppedWeapon"] = &CTFDroppedWeapon;
classid_mapping["CTFProjectile_SpellKartBats"] = &CTFProjectile_SpellKartBats; classid_mapping["CTFProjectile_SpellKartBats"] =
&CTFProjectile_SpellKartBats;
classid_mapping["CTFProjectile_SpellKartOrb"] = &CTFProjectile_SpellKartOrb; classid_mapping["CTFProjectile_SpellKartOrb"] = &CTFProjectile_SpellKartOrb;
classid_mapping["CTFHellZap"] = &CTFHellZap; classid_mapping["CTFHellZap"] = &CTFHellZap;
classid_mapping["CTFProjectile_SpellLightningOrb"] = &CTFProjectile_SpellLightningOrb; classid_mapping["CTFProjectile_SpellLightningOrb"] =
classid_mapping["CTFProjectile_SpellTransposeTeleport"] = &CTFProjectile_SpellTransposeTeleport; &CTFProjectile_SpellLightningOrb;
classid_mapping["CTFProjectile_SpellMeteorShower"] = &CTFProjectile_SpellMeteorShower; classid_mapping["CTFProjectile_SpellTransposeTeleport"] =
classid_mapping["CTFProjectile_SpellSpawnBoss"] = &CTFProjectile_SpellSpawnBoss; &CTFProjectile_SpellTransposeTeleport;
classid_mapping["CTFProjectile_SpellMeteorShower"] =
&CTFProjectile_SpellMeteorShower;
classid_mapping["CTFProjectile_SpellSpawnBoss"] =
&CTFProjectile_SpellSpawnBoss;
classid_mapping["CTFProjectile_SpellMirv"] = &CTFProjectile_SpellMirv; classid_mapping["CTFProjectile_SpellMirv"] = &CTFProjectile_SpellMirv;
classid_mapping["CTFProjectile_SpellPumpkin"] = &CTFProjectile_SpellPumpkin; classid_mapping["CTFProjectile_SpellPumpkin"] = &CTFProjectile_SpellPumpkin;
classid_mapping["CTFProjectile_SpellSpawnHorde"] = &CTFProjectile_SpellSpawnHorde; classid_mapping["CTFProjectile_SpellSpawnHorde"] =
classid_mapping["CTFProjectile_SpellSpawnZombie"] = &CTFProjectile_SpellSpawnZombie; &CTFProjectile_SpellSpawnHorde;
classid_mapping["CTFProjectile_SpellSpawnZombie"] =
&CTFProjectile_SpellSpawnZombie;
classid_mapping["CTFProjectile_SpellBats"] = &CTFProjectile_SpellBats; classid_mapping["CTFProjectile_SpellBats"] = &CTFProjectile_SpellBats;
classid_mapping["CTFProjectile_SpellFireball"] = &CTFProjectile_SpellFireball; classid_mapping["CTFProjectile_SpellFireball"] =
&CTFProjectile_SpellFireball;
classid_mapping["CTFSpellBook"] = &CTFSpellBook; classid_mapping["CTFSpellBook"] = &CTFSpellBook;
classid_mapping["CHightower_TeleportVortex"] = &CHightower_TeleportVortex; classid_mapping["CHightower_TeleportVortex"] = &CHightower_TeleportVortex;
classid_mapping["CTeleportVortex"] = &CTeleportVortex; classid_mapping["CTeleportVortex"] = &CTeleportVortex;
@ -344,7 +373,8 @@ dynamic::dynamic() {
classid_mapping["CBonusPack"] = &CBonusPack; classid_mapping["CBonusPack"] = &CBonusPack;
classid_mapping["CHandleTest"] = &CHandleTest; classid_mapping["CHandleTest"] = &CHandleTest;
classid_mapping["CTeamRoundTimer"] = &CTeamRoundTimer; classid_mapping["CTeamRoundTimer"] = &CTeamRoundTimer;
classid_mapping["CTeamplayRoundBasedRulesProxy"] = &CTeamplayRoundBasedRulesProxy; classid_mapping["CTeamplayRoundBasedRulesProxy"] =
&CTeamplayRoundBasedRulesProxy;
classid_mapping["CSpriteTrail"] = &CSpriteTrail; classid_mapping["CSpriteTrail"] = &CSpriteTrail;
classid_mapping["CSpriteOriented"] = &CSpriteOriented; classid_mapping["CSpriteOriented"] = &CSpriteOriented;
classid_mapping["CSprite"] = &CSprite; classid_mapping["CSprite"] = &CSprite;
@ -530,12 +560,13 @@ dynamic::dynamic() {
classid_mapping["CTFProjectile_BallOfFire"] = &CTFProjectile_BallOfFire; classid_mapping["CTFProjectile_BallOfFire"] = &CTFProjectile_BallOfFire;
classid_mapping["CTFPointManager"] = &CTFPointManager; classid_mapping["CTFPointManager"] = &CTFPointManager;
classid_mapping["CTFFlameManager"] = &CTFFlameManager; classid_mapping["CTFFlameManager"] = &CTFFlameManager;
} }
void dynamic::Populate() { void dynamic::Populate()
ClientClass* cc = g_IBaseClient->GetAllClasses(); {
while (cc) { ClientClass *cc = g_IBaseClient->GetAllClasses();
while (cc)
{
std::string name(cc->GetName()); std::string name(cc->GetName());
if (classid_mapping.find(name) != classid_mapping.end()) if (classid_mapping.find(name) != classid_mapping.end())
*classid_mapping[name] = cc->m_ClassID; *classid_mapping[name] = cc->m_ClassID;
@ -544,5 +575,4 @@ void dynamic::Populate() {
} }
dynamic dynamic_list; dynamic dynamic_list;
} }

View File

@ -30,7 +30,8 @@ void CreateMove()
{ {
if (CE_BAD(LOCAL_E)) if (CE_BAD(LOCAL_E))
return; return;
if (!HasWeapon(LOCAL_E, 59) || CE_INT(LOCAL_E, netvar.m_bFeignDeathReady) == 1) if (!HasWeapon(LOCAL_E, 59) ||
CE_INT(LOCAL_E, netvar.m_bFeignDeathReady) == 1)
return; return;
if (CE_INT(LOCAL_E, netvar.iHealth) < 30) if (CE_INT(LOCAL_E, netvar.iHealth) < 30)
g_pUserCmd->buttons |= IN_ATTACK2; g_pUserCmd->buttons |= IN_ATTACK2;

View File

@ -504,7 +504,8 @@ void CreateMove()
if ((g_pUserCmd->buttons & IN_ATTACK) && !bSwitch) if ((g_pUserCmd->buttons & IN_ATTACK) && !bSwitch)
{ {
static int bswitch2 = 0; static int bswitch2 = 0;
if (bswitch2 > 20) { if (bswitch2 > 20)
{
announcer::playsound("piss.wav"); announcer::playsound("piss.wav");
bswitch2 = 0; bswitch2 = 0;
} }

30
src/hacks/Misc.cpp Executable file → Normal file
View File

@ -488,20 +488,23 @@ void Schema_Reload()
{ {
logging::Info("Custom schema loading is not supported right now."); logging::Info("Custom schema loading is not supported right now.");
static uintptr_t InitSchema_s = gSignatures.GetClientSignature("55 89 E5 57 56 53 83 EC ? 8B 5D ? 8B 7D ? 8B 03 89 1C 24 FF 50 ? C7 04 24 ? ? ? ?"); static uintptr_t InitSchema_s = gSignatures.GetClientSignature(
typedef bool(*InitSchema_t)(void*, CUtlBuffer &, int); "55 89 E5 57 56 53 83 EC ? 8B 5D ? 8B 7D ? 8B 03 89 1C 24 FF 50 ? C7 "
static InitSchema_t InitSchema = "04 24 ? ? ? ?");
(InitSchema_t)InitSchema_s; static uintptr_t GetItemSchema_s = typedef bool (*InitSchema_t)(void *, CUtlBuffer &, int);
gSignatures.GetClientSignature("55 89 E5 83 EC ? E8 ? ? ? ? C9 83 C0 ? C3 55 89 E5 8B 45 ?"); static InitSchema_t InitSchema = (InitSchema_t) InitSchema_s;
typedef void*(*GetItemSchema_t)(void); static uintptr_t GetItemSchema_s = gSignatures.GetClientSignature(
static GetItemSchema_t GetItemSchema = (GetItemSchema_t)GetItemSchema_s; //(*(uintptr_t*)GetItemSchema_s +GetItemSchema_s + 4); "55 89 E5 83 EC ? E8 ? ? ? ? C9 83 C0 ? C3 55 89 E5 8B 45 ?");
typedef void *(*GetItemSchema_t)(void);
static GetItemSchema_t GetItemSchema = (GetItemSchema_t)
GetItemSchema_s; //(*(uintptr_t*)GetItemSchema_s +GetItemSchema_s + 4);
logging::Info("0x%08x 0x%08x", InitSchema, GetItemSchema); logging::Info("0x%08x 0x%08x", InitSchema, GetItemSchema);
void* itemschema = (void*)((unsigned)GetItemSchema() + 4); void *itemschema = (void *) ((unsigned) GetItemSchema() + 4);
void* data; void *data;
char* path = strfmt("/opt/cathook/data/items_game.txt"); char *path = strfmt("/opt/cathook/data/items_game.txt");
FILE* file = fopen(path, "r"); FILE *file = fopen(path, "r");
delete [] path; delete[] path;
fseek(file, 0L, SEEK_END); fseek(file, 0L, SEEK_END);
char buffer[5 * 1000 * 1000]; char buffer[5 * 1000 * 1000];
size_t len = ftell(file); size_t len = ftell(file);
@ -510,7 +513,8 @@ void Schema_Reload()
fread(&buffer, sizeof(char), len, file); fread(&buffer, sizeof(char), len, file);
fclose(file); fclose(file);
CUtlBuffer buf(&buffer, 5 * 1000 * 1000, 9); CUtlBuffer buf(&buffer, 5 * 1000 * 1000, 9);
if (ferror(file) != 0) { if (ferror(file) != 0)
{
logging::Info("Error loading file"); logging::Info("Error loading file");
return; return;
} }

3
src/hacks/Walkbot.cpp Executable file → Normal file
View File

@ -1210,7 +1210,8 @@ void Move()
if (ent->m_iTeam == LOCAL_E->m_iTeam) if (ent->m_iTeam == LOCAL_E->m_iTeam)
continue; continue;
const model_t *model = RAW_ENT(ent)->GetModel(); const model_t *model = RAW_ENT(ent)->GetModel();
if (model) { if (model)
{
if ((model == lagexploit::point2 || if ((model == lagexploit::point2 ||
model == lagexploit::point3 || model == lagexploit::point3 ||
model == lagexploit::point4 || model == lagexploit::point4 ||

2
src/hacks/ac/aimbot.cpp Executable file → Normal file
View File

@ -50,7 +50,7 @@ void Update(CachedEntity *player)
auto &angles = angles::data(player); auto &angles = angles::data(player);
float deviation = angles.deviation(2); float deviation = angles.deviation(2);
int widx = CE_INT(player, netvar.hActiveWeapon) & 0xFFF; int widx = CE_INT(player, netvar.hActiveWeapon) & 0xFFF;
CachedEntity* wep = ENTITY(widx); CachedEntity *wep = ENTITY(widx);
if (!CE_GOOD(wep)) if (!CE_GOOD(wep))
return; return;
if (deviation > float(detect_angle) && if (deviation > float(detect_angle) &&

View File

@ -1026,7 +1026,10 @@ void LevelInit_hook(void *_this, const char *newmap)
static LoadNamedSkys_Fn LoadNamedSkys = LoadNamedSkys_Fn(addr); static LoadNamedSkys_Fn LoadNamedSkys = LoadNamedSkys_Fn(addr);
bool succ; bool succ;
#ifdef __clang__ #ifdef __clang__
asm ("movl %1, %%edi; push skynum[(int) skybox_changer]; call %%edi; mov %%eax, %0; add %%esp, 4h" :"=r"(succ) :"r"(LoadNamedSkys)); asm("movl %1, %%edi; push skynum[(int) skybox_changer]; call %%edi; mov "
"%%eax, %0; add %%esp, 4h"
: "=r"(succ)
: "r"(LoadNamedSkys));
#else #else
succ = LoadNamedSkys(skynum[(int) skybox_changer]); succ = LoadNamedSkys(skynum[(int) skybox_changer]);
#endif #endif

8
src/netvars.cpp Executable file → Normal file
View File

@ -28,10 +28,10 @@ void NetVars::Init()
this->movetype = gNetvars.get_offset("DT_BaseEntity", "movetype"); this->movetype = gNetvars.get_offset("DT_BaseEntity", "movetype");
this->m_iAmmo = this->m_iAmmo =
gNetvars.get_offset("DT_BasePlayer", "localdata", "m_iAmmo"); gNetvars.get_offset("DT_BasePlayer", "localdata", "m_iAmmo");
this->m_iPrimaryAmmoType = this->m_iPrimaryAmmoType = gNetvars.get_offset(
gNetvars.get_offset("DT_LocalWeaponData", "localdata", "m_iPrimaryAmmoType"); "DT_LocalWeaponData", "localdata", "m_iPrimaryAmmoType");
this->m_iSecondaryAmmoType = this->m_iSecondaryAmmoType = gNetvars.get_offset(
gNetvars.get_offset("DT_LocalWeaponData", "localdata", "m_iSecondaryAmmoType"); "DT_LocalWeaponData", "localdata", "m_iSecondaryAmmoType");
this->m_iClip1 = gNetvars.get_offset("DT_BaseCombatWeapon", this->m_iClip1 = gNetvars.get_offset("DT_BaseCombatWeapon",
"LocalWeaponData", "m_iClip1"); "LocalWeaponData", "m_iClip1");
this->m_iClip2 = gNetvars.get_offset("DT_BaseCombatWeapon", this->m_iClip2 = gNetvars.get_offset("DT_BaseCombatWeapon",