Some wip changes + ac fix

This commit is contained in:
BenCat07 2018-04-14 13:22:12 +02:00
parent d78495b4c2
commit 04b8bae1af
21 changed files with 1754 additions and 1679 deletions

2
TODO
View File

@ -28,8 +28,6 @@ MAX -> MIN priority // //
// // // //
Hunter Rifle? // // Hunter Rifle? // //
// // // //
AutoDetonator // //
// //
No AutoShoot when disguised // // No AutoShoot when disguised // //
Ambassador bodyshotting // // Ambassador bodyshotting // //
No Trigger Mediguns // // No Trigger Mediguns // //

View File

@ -6,11 +6,9 @@
#ifndef DUMMY_AUTOGEN_HPP #ifndef DUMMY_AUTOGEN_HPP
#define DUMMY_AUTOGEN_HPP #define DUMMY_AUTOGEN_HPP
namespace client_classes namespace client_classes {
{
class dummy class dummy {
{
public: public:
int CTETFParticleEffect { 0 }; int CTETFParticleEffect { 0 };
int CTETFExplosion { 0 }; int CTETFExplosion { 0 };
@ -255,6 +253,7 @@ public:
int CTFMinigun { 0 }; int CTFMinigun { 0 };
int CTFMedigunShield { 0 }; int CTFMedigunShield { 0 };
int CWeaponMedigun { 0 }; int CWeaponMedigun { 0 };
int CTFProjectile_MechanicalArmOrb { 0 };
int CTFMechanicalArm { 0 }; int CTFMechanicalArm { 0 };
int CTFLunchBox_Drink { 0 }; int CTFLunchBox_Drink { 0 };
int CTFLunchBox { 0 }; int CTFLunchBox { 0 };
@ -533,6 +532,7 @@ public:
int CTFProjectile_BallOfFire { 0 }; int CTFProjectile_BallOfFire { 0 };
int CTFPointManager { 0 }; int CTFPointManager { 0 };
int CTFFlameManager { 0 }; int CTFFlameManager { 0 };
}; };
extern dummy dummy_list; extern dummy dummy_list;

View File

@ -6,11 +6,9 @@
#ifndef DYNAMIC_AUTOGEN_HPP #ifndef DYNAMIC_AUTOGEN_HPP
#define DYNAMIC_AUTOGEN_HPP #define DYNAMIC_AUTOGEN_HPP
namespace client_classes namespace client_classes {
{
class dynamic class dynamic {
{
public: public:
dynamic(); dynamic();
void Populate(); void Populate();
@ -257,6 +255,7 @@ public:
int CTFMinigun { 0 }; int CTFMinigun { 0 };
int CTFMedigunShield { 0 }; int CTFMedigunShield { 0 };
int CWeaponMedigun { 0 }; int CWeaponMedigun { 0 };
int CTFProjectile_MechanicalArmOrb { 0 };
int CTFMechanicalArm { 0 }; int CTFMechanicalArm { 0 };
int CTFLunchBox_Drink { 0 }; int CTFLunchBox_Drink { 0 };
int CTFLunchBox { 0 }; int CTFLunchBox { 0 };
@ -535,6 +534,7 @@ public:
int CTFProjectile_BallOfFire { 0 }; int CTFProjectile_BallOfFire { 0 };
int CTFPointManager { 0 }; int CTFPointManager { 0 };
int CTFFlameManager { 0 }; int CTFFlameManager { 0 };
}; };
extern dynamic dynamic_list; extern dynamic dynamic_list;

View File

@ -0,0 +1,18 @@
/*
* AutoDeadringer.hpp
*
* Created on: Apr 12, 2018
* Author: bencat07
*/
#pragma once
namespace hacks
{
namespace shared
{
namespace deadringer
{
void CreateMove();
}
}
}

View File

@ -25,6 +25,7 @@
#include "AutoSticky.hpp" #include "AutoSticky.hpp"
#include "AutoDetonator.hpp" #include "AutoDetonator.hpp"
#include "AntiCheat.hpp" #include "AntiCheat.hpp"
#include "AutoDeadringer.hpp"
#include "Bunnyhop.hpp" #include "Bunnyhop.hpp"
#include "LagExploit.hpp" #include "LagExploit.hpp"
#include "Walkbot.hpp" #include "Walkbot.hpp"

View File

@ -62,6 +62,8 @@ public:
offset_t iBuildingHealth; offset_t iBuildingHealth;
offset_t iBuildingMaxHealth; offset_t iBuildingMaxHealth;
offset_t m_iAmmo; offset_t m_iAmmo;
offset_t m_iPrimaryAmmoType;
offset_t m_iSecondaryAmmoType;
offset_t iHitboxSet; offset_t iHitboxSet;
offset_t vVelocity; offset_t vVelocity;
offset_t bGlowEnabled; offset_t bGlowEnabled;
@ -72,8 +74,10 @@ public:
offset_t flNextAttack; offset_t flNextAttack;
offset_t iNextMeleeCrit; offset_t iNextMeleeCrit;
offset_t flNextPrimaryAttack; offset_t flNextPrimaryAttack;
offset_t flNextSecondaryAttack;
offset_t iNextThinkTick; offset_t iNextThinkTick;
offset_t m_iClip1; offset_t m_iClip1;
offset_t m_iClip2;
// offset_t flReloadPriorNextFire; // offset_t flReloadPriorNextFire;
// offset_t flObservedCritChance; // offset_t flObservedCritChance;
offset_t nTickBase; offset_t nTickBase;

7
include/reclasses/C_TFWeaponBaseMelee.hpp Executable file → Normal file
View File

@ -22,9 +22,12 @@ public:
self, offsets::PlatformOffset(522, offsets::undefined, 522), self, offsets::PlatformOffset(522, offsets::undefined, 522),
0)(self, trace); 0)(self, trace);
} }
inline static int GetSwingRange(IClientEntity* self) { inline static int GetSwingRange(IClientEntity *self)
{
typedef int (*fn_t)(IClientEntity *); typedef int (*fn_t)(IClientEntity *);
return vfunc<fn_t>(self, offsets::PlatformOffset(520, offsets::undefined, 520), 0)(self); return vfunc<fn_t>(
self, offsets::PlatformOffset(520, offsets::undefined, 520),
0)(self);
} }
}; };
} }

View File

@ -3,13 +3,11 @@
#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;
@ -29,8 +27,7 @@ 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"] = classid_mapping["CTFProjectile_GrapplingHook"] = &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;
@ -112,8 +109,7 @@ 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"] = classid_mapping["CTest_ProxyToggle_Networkable"] = &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;
@ -121,8 +117,7 @@ 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"] = classid_mapping["CParticlePerformanceMonitor"] = &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;
@ -205,12 +200,9 @@ 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"] = classid_mapping["CTFProjectile_ThrowableBreadMonster"] = &CTFProjectile_ThrowableBreadMonster;
&CTFProjectile_ThrowableBreadMonster; classid_mapping["CTFProjectile_ThrowableBrick"] = &CTFProjectile_ThrowableBrick;
classid_mapping["CTFProjectile_ThrowableBrick"] = classid_mapping["CTFProjectile_ThrowableRepel"] = &CTFProjectile_ThrowableRepel;
&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;
@ -234,10 +226,8 @@ 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"] = classid_mapping["CTFRocketLauncher_AirStrike"] = &CTFRocketLauncher_AirStrike;
&CTFRocketLauncher_AirStrike; classid_mapping["CTFRocketLauncher_DirectHit"] = &CTFRocketLauncher_DirectHit;
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;
@ -248,14 +238,10 @@ 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"] = classid_mapping["CTFWeaponPDA_Engineer_Destroy"] = &CTFWeaponPDA_Engineer_Destroy;
&CTFWeaponPDA_Engineer_Destroy; classid_mapping["CTFWeaponPDA_Engineer_Build"] = &CTFWeaponPDA_Engineer_Build;
classid_mapping["CTFWeaponPDA_Engineer_Build"] = classid_mapping["CTFWeaponPDAExpansion_Teleporter"] = &CTFWeaponPDAExpansion_Teleporter;
&CTFWeaponPDA_Engineer_Build; classid_mapping["CTFWeaponPDAExpansion_Dispenser"] = &CTFWeaponPDAExpansion_Dispenser;
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;
@ -265,6 +251,7 @@ 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["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;
@ -278,8 +265,7 @@ 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"] = classid_mapping["CTFGrenadePipebombProjectile"] = &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;
@ -302,8 +288,7 @@ 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"] = classid_mapping["CTFWeaponBaseMerasmusGrenade"] = &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;
@ -318,16 +303,12 @@ 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"] = classid_mapping["CTFRobotDestruction_RobotGroup"] = &CTFRobotDestruction_RobotGroup;
&CTFRobotDestruction_RobotGroup; classid_mapping["CTFRobotDestruction_RobotSpawn"] = &CTFRobotDestruction_RobotSpawn;
classid_mapping["CTFRobotDestruction_RobotSpawn"] =
&CTFRobotDestruction_RobotSpawn;
classid_mapping["CTFPlayerDestructionLogic"] = &CTFPlayerDestructionLogic; classid_mapping["CTFPlayerDestructionLogic"] = &CTFPlayerDestructionLogic;
classid_mapping["CPlayerDestructionDispenser"] = classid_mapping["CPlayerDestructionDispenser"] = &CPlayerDestructionDispenser;
&CPlayerDestructionDispenser;
classid_mapping["CTFMinigameLogic"] = &CTFMinigameLogic; classid_mapping["CTFMinigameLogic"] = &CTFMinigameLogic;
classid_mapping["CTFHalloweenMinigame_FallingPlatforms"] = classid_mapping["CTFHalloweenMinigame_FallingPlatforms"] = &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;
@ -339,27 +320,19 @@ 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"] = classid_mapping["CTFProjectile_SpellKartBats"] = &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"] = classid_mapping["CTFProjectile_SpellLightningOrb"] = &CTFProjectile_SpellLightningOrb;
&CTFProjectile_SpellLightningOrb; classid_mapping["CTFProjectile_SpellTransposeTeleport"] = &CTFProjectile_SpellTransposeTeleport;
classid_mapping["CTFProjectile_SpellTransposeTeleport"] = classid_mapping["CTFProjectile_SpellMeteorShower"] = &CTFProjectile_SpellMeteorShower;
&CTFProjectile_SpellTransposeTeleport; classid_mapping["CTFProjectile_SpellSpawnBoss"] = &CTFProjectile_SpellSpawnBoss;
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"] = classid_mapping["CTFProjectile_SpellSpawnHorde"] = &CTFProjectile_SpellSpawnHorde;
&CTFProjectile_SpellSpawnHorde; classid_mapping["CTFProjectile_SpellSpawnZombie"] = &CTFProjectile_SpellSpawnZombie;
classid_mapping["CTFProjectile_SpellSpawnZombie"] =
&CTFProjectile_SpellSpawnZombie;
classid_mapping["CTFProjectile_SpellBats"] = &CTFProjectile_SpellBats; classid_mapping["CTFProjectile_SpellBats"] = &CTFProjectile_SpellBats;
classid_mapping["CTFProjectile_SpellFireball"] = classid_mapping["CTFProjectile_SpellFireball"] = &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;
@ -371,8 +344,7 @@ 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"] = classid_mapping["CTeamplayRoundBasedRulesProxy"] = &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;
@ -558,13 +530,12 @@ 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(); ClientClass* cc = g_IBaseClient->GetAllClasses();
while (cc) 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;
@ -573,4 +544,5 @@ void dynamic::Populate()
} }
dynamic dynamic_list; dynamic dynamic_list;
} }

View File

@ -0,0 +1,50 @@
/*
* AutoDeadringer.cpp
*
* Created on: Apr 12, 2018
* Author: bencat07
*/
#include "common.hpp"
namespace hacks
{
namespace shared
{
namespace deadringer
{
CatVar enabled(CV_SWITCH, "deadringer_auto", "0", "Auto deadringer",
"automatically pull out DR on low health or projectile nearby");
bool IsProjectile(CachedEntity *ent)
{
return (ent->m_iClassID == CL_CLASS(CTFProjectile_Rocket) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_Flare) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_EnergyBall) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_HealingBolt) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_Arrow) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_SentryRocket) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_Cleaver) ||
ent->m_iClassID == CL_CLASS(CTFGrenadePipebombProjectile) ||
ent->m_iClassID == CL_CLASS(CTFProjectile_EnergyRing));
}
void CreateMove()
{
if (CE_BAD(LOCAL_E))
return;
if (!HasWeapon(LOCAL_E, 59) || CE_INT(LOCAL_E, netvar.m_bFeignDeathReady) == 1)
return;
if (CE_INT(LOCAL_E, netvar.iHealth) < 30)
g_pUserCmd->buttons |= IN_ATTACK2;
for (int i = 0; i < HIGHEST_ENTITY; i++)
{
CachedEntity *ent = ENTITY(i);
if (CE_BAD(ent))
continue;
if (!IsProjectile(ent))
continue;
if (ent->m_flDistance < 100.0f)
g_pUserCmd->buttons |= IN_ATTACK2;
}
}
}
}
}

View File

@ -80,7 +80,7 @@ static CatVar infinite_packs(CV_SWITCH, "infinite_packs", "0",
"Infinite Pickups", "Infinite Pickups",
"Activate sequence exploit when standing on " "Activate sequence exploit when standing on "
"pickups while having not full HP/Ammo"); "pickups while having not full HP/Ammo");
float servertime, nextattack; float servertime, nextattack, nextattack2;
static int lastwep = 0; static int lastwep = 0;
void CreateMove() void CreateMove()
{ {
@ -430,6 +430,7 @@ void CreateMove()
if (doom || razorback) if (doom || razorback)
{ {
static int i = 0; static int i = 0;
static int i2 = 0;
servertime = servertime =
(float) (CE_INT(g_pLocalPlayer->entity, netvar.nTickBase)) * (float) (CE_INT(g_pLocalPlayer->entity, netvar.nTickBase)) *
g_GlobalVars->interval_per_tick; g_GlobalVars->interval_per_tick;
@ -437,22 +438,31 @@ void CreateMove()
g_pLocalPlayer->weapon()->m_iClassID != lastwep) g_pLocalPlayer->weapon()->m_iClassID != lastwep)
nextattack = nextattack =
CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flNextPrimaryAttack); CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flNextPrimaryAttack);
if (!nextattack2 || !i ||
g_pLocalPlayer->weapon()->m_iClassID != lastwep)
nextattack2 =
CE_FLOAT(g_pLocalPlayer->weapon(), netvar.flNextSecondaryAttack);
if (servertime - nextattack > 75.0f) if (servertime - nextattack > 75.0f)
nextattack = servertime - 75.0f; nextattack = servertime - 75.0f;
if (doom && servertime - nextattack > 0.0f && if (servertime - nextattack2 > 75.0f)
(g_pUserCmd->buttons & IN_ATTACK || nextattack2 = servertime - 75.0f;
g_pUserCmd->buttons & IN_ATTACK2)) if (doom && servertime - nextattack > 0.0f && g_pUserCmd->buttons & IN_ATTACK)
{ {
if (!i) if (!i)
i = ((int) servertime - (int) nextattack); i = ((int) servertime - (int) nextattack);
amount = i * 66; amount = i * 66;
if (CE_INT(g_pLocalPlayer->weapon(), netvar.m_iClip1) == 0) if (CE_INT(g_pLocalPlayer->weapon(), netvar.m_iClip1) == 0)
{
g_pUserCmd->buttons &= ~IN_ATTACK; g_pUserCmd->buttons &= ~IN_ATTACK;
}
if (doom && servertime - nextattack2 > 0.0f && g_pUserCmd->buttons & IN_ATTACK2) {
if (!i2)
i2 = ((int) servertime - (int) nextattack2);
amount = i2 * 66;
if (CE_INT(g_pLocalPlayer->weapon(), netvar.m_iClip2) == 0)
g_pUserCmd->buttons &= ~IN_ATTACK2; g_pUserCmd->buttons &= ~IN_ATTACK2;
} }
} if (razorback && servertime - nextattack > 3.0f &&
else if (razorback && servertime - nextattack > 3.0f &&
(g_pUserCmd->buttons & IN_ATTACK || (g_pUserCmd->buttons & IN_ATTACK ||
g_pUserCmd->buttons & IN_ATTACK2)) g_pUserCmd->buttons & IN_ATTACK2))
{ {
@ -484,10 +494,14 @@ void CreateMove()
void Draw() void Draw()
{ {
#if ENABLE_VISUALS == 1 #if ENABLE_VISUALS == 1
if (doom && servertime - nextattack > 0.0f) if (doom && (servertime - nextattack > 0.0f || servertime - nextattack2))
{ {
auto amount = (int) servertime - (int) nextattack; auto amount = (int) servertime - (int) nextattack;
AddCenterString(format("Fireable amount: ", amount), colors::orange); auto amount2 = (int) servertime - (int) nextattack2;
if (amount > 0.0f)
AddCenterString(format("Fireable Primary amount: ", amount), colors::orange);
if (amount2 > 0.0f)
AddCenterString(format("Fireable Secondary amount: ", amount2), colors::orange);
} }
if (razorback) if (razorback)
if (servertime - nextattack > 3.0f) if (servertime - nextattack > 3.0f)

View File

@ -487,39 +487,36 @@ void DrawText()
void Schema_Reload() 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 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 ? ? ? ?");
56 53 83 EC 4C 0F B6 7D 14 C7 04 ? ? ? ? 01 8B 5D 18 8B 75 0C 89 5C 24 04 E8 typedef bool(*InitSchema_t)(void*, CUtlBuffer &, int);
? ? ? ? 89 F8 C7 45 C8 00 00 00 00 8D 7D C8 84 C0 8B 45 10 C7 45 CC"); static InitSchema_t InitSchema =
typedef void(*InitSchema_t)(void*, void*, CUtlBuffer& buffer, bool byte,
unsigned version); static InitSchema_t InitSchema =
(InitSchema_t)InitSchema_s; static uintptr_t GetItemSchema_s = (InitSchema_t)InitSchema_s; static uintptr_t GetItemSchema_s =
gSignatures.GetClientSignature("55 89 E5 83 EC 18 89 5D F8 8B 1D ? ? ? ? 89 gSignatures.GetClientSignature("55 89 E5 83 EC ? E8 ? ? ? ? C9 83 C0 ? C3 55 89 E5 8B 45 ?");
7D FC 85 DB 74 12 89 D8 8B 7D FC 8B 5D F8 89 EC 5D C3 8D B6 00 00 00 00 C7 typedef void*(*GetItemSchema_t)(void);
04 24 A8 06 00 00 E8 ? ? ? ? B9 AA 01 00 00 89 C3 31 C0 89 DF"); typedef static GetItemSchema_t GetItemSchema = (GetItemSchema_t)GetItemSchema_s; //(*(uintptr_t*)GetItemSchema_s +GetItemSchema_s + 4);
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;
passwd* pwd = getpwuid(getuid()); char* path = strfmt("/opt/cathook/data/items_game.txt");
char* user = pwd->pw_name;
char* path = strfmt("/home/%s/.cathook/items_game.txt", user);
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[4 * 1000 * 1000]; char buffer[5 * 1000 * 1000];
size_t len = ftell(file); size_t len = ftell(file);
rewind(file); rewind(file);
buffer[len + 1] = 0; buffer[len + 1] = 0;
fread(&buffer, sizeof(char), len, file); fread(&buffer, sizeof(char), len, file);
fclose(file); fclose(file);
CUtlBuffer buf(&buffer, 4 * 1000 * 1000, 9); CUtlBuffer buf(&buffer, 5 * 1000 * 1000, 9);
if (ferror(file) != 0) {
logging::Info("Error loading file");
return;
}
logging::Info("0x%08x 0x%08x", InitSchema, GetItemSchema); logging::Info("0x%08x 0x%08x", InitSchema, GetItemSchema);
InitSchema(0, itemschema, buf, false, 0xDEADCA7); bool ret = InitSchema(GetItemSchema(), buf, 133769);
*/ logging::Info("Loading %s", ret ? "Successful" : "Unsuccessful");
} }
CatCommand schema("schema", "Load custom schema", Schema_Reload); CatCommand schema("schema", "Load custom schema", Schema_Reload);

View File

@ -49,8 +49,12 @@ 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;
CachedEntity* wep = ENTITY(widx);
if (!CE_GOOD(wep))
return;
if (deviation > float(detect_angle) && if (deviation > float(detect_angle) &&
player->m_iClassID != CL_CLASS(CTFFlameThrower)) wep->m_iClassID != CL_CLASS(CTFFlameThrower))
{ {
am++; am++;
// logging::Info("[ac] %d deviation %.2f #%d", player->m_IDX, // logging::Info("[ac] %d deviation %.2f #%d", player->m_IDX,

4
src/hooks/CreateMove.cpp Executable file → Normal file
View File

@ -357,6 +357,10 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd)
PROF_SECTION(CM_noisemaker); PROF_SECTION(CM_noisemaker);
hacks::tf2::noisemaker::CreateMove(); hacks::tf2::noisemaker::CreateMove();
} }
{
PROF_SECTION(CM_deadringer);
hacks::shared::deadringer::CreateMove();
}
{ {
PROF_SECTION(CM_bunnyhop); PROF_SECTION(CM_bunnyhop);
hacks::shared::bunnyhop::CreateMove(); hacks::shared::bunnyhop::CreateMove();

View File

@ -1011,7 +1011,9 @@ CatEnum skys({ "sky_tf2_04",
static CatVar static CatVar
skybox_changer(skys, "skybox_changer", "0", "Change Skybox to this skybox", skybox_changer(skys, "skybox_changer", "0", "Change Skybox to this skybox",
"Change Skybox to this skybox, only changes on map load"); "Change Skybox to this skybox, only changes on map load");
static CatVar halloween_mode(CV_SWITCH, "halloween_mode", "Forced Halloween mode", "forced tf_forced_holiday 2"); static CatVar halloween_mode(CV_SWITCH, "halloween_mode", "0",
"Forced Halloween mode",
"forced tf_forced_holiday 2");
void LevelInit_hook(void *_this, const char *newmap) void LevelInit_hook(void *_this, const char *newmap)
{ {
static const LevelInit_t original = static const LevelInit_t original =
@ -1030,7 +1032,6 @@ void LevelInit_hook(void *_this, const char *newmap)
holiday->SetValue(2); holiday->SetValue(2);
else if (holiday->m_nValue == 2) else if (holiday->m_nValue == 2)
holiday->SetValue(2); holiday->SetValue(2);
g_IEngine->ClientCmd_Unrestricted("exec cat_matchexec"); g_IEngine->ClientCmd_Unrestricted("exec cat_matchexec");
hacks::shared::aimbot::Reset(); hacks::shared::aimbot::Reset();
chat_stack::Reset(); chat_stack::Reset();

View File

@ -655,6 +655,7 @@ static const std::string list_tf2 = R"(
] ]
"Misc" [ "Misc" [
"Misc Menu" "Misc Menu"
"deadringer_auto"
"halloween_mode" "halloween_mode"
"name" "name"
"disconnect_reason" "disconnect_reason"

View File

@ -28,8 +28,14 @@ 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 =
gNetvars.get_offset("DT_LocalWeaponData", "localdata", "m_iPrimaryAmmoType");
this->m_iSecondaryAmmoType =
gNetvars.get_offset("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",
"LocalWeaponData", "m_iClip2");
this->m_Collision = gNetvars.get_offset("DT_BaseEntity", "m_Collision"); this->m_Collision = gNetvars.get_offset("DT_BaseEntity", "m_Collision");
m_flSimulationTime = m_flSimulationTime =
gNetvars.get_offset("DT_BaseEntity", "m_flSimulationTime"); gNetvars.get_offset("DT_BaseEntity", "m_flSimulationTime");
@ -156,6 +162,9 @@ void NetVars::Init()
this->flNextPrimaryAttack = this->flNextPrimaryAttack =
gNetvars.get_offset("DT_BaseCombatWeapon", "LocalActiveWeaponData", gNetvars.get_offset("DT_BaseCombatWeapon", "LocalActiveWeaponData",
"m_flNextPrimaryAttack"); "m_flNextPrimaryAttack");
this->flNextSecondaryAttack =
gNetvars.get_offset("DT_BaseCombatWeapon", "LocalActiveWeaponData",
"m_flNextSecondaryAttack");
this->iNextThinkTick = gNetvars.get_offset( this->iNextThinkTick = gNetvars.get_offset(
"DT_BaseCombatWeapon", "LocalActiveWeaponData", "m_nNextThinkTick"); "DT_BaseCombatWeapon", "LocalActiveWeaponData", "m_nNextThinkTick");
this->nTickBase = this->nTickBase =

View File

@ -21,8 +21,7 @@ C_MannVsMachineStats *C_MannVsMachineStats::G_MannVsMachineStats()
} }
int *C_MannVsMachineStats::AddLocalPlayerUpgrade(int id, int &a3) int *C_MannVsMachineStats::AddLocalPlayerUpgrade(int id, int &a3)
{ {
typedef int *(*AddLocalPlayerUpgrade_t)(C_MannVsMachineStats *, int, typedef int *(*AddLocalPlayerUpgrade_t)(C_MannVsMachineStats *, int, int);
int);
static uintptr_t addr = gSignatures.GetClientSignature( static uintptr_t addr = gSignatures.GetClientSignature(
"55 89 E5 57 56 53 83 EC ? 8B 5D ? 8B 75 ? 8B 7D ? 8B 43 ? 8B 53 ? 83 " "55 89 E5 57 56 53 83 EC ? 8B 5D ? 8B 75 ? 8B 7D ? 8B 43 ? 8B 53 ? 83 "
"C0 ? 39 D0 7E ? 29 D0 89 1C 24 89 44 24 ? E8 ? ? ? ? 8B 43 ? 83 C0 ? " "C0 ? 39 D0 7E ? 29 D0 89 1C 24 89 44 24 ? E8 ? ? ? ? 8B 43 ? 83 C0 ? "