diff --git a/data/menu/nullified-ui.xml b/data/menu/nullified-ui.xml
index 544c1192..68d15e3f 100644
--- a/data/menu/nullified-ui.xml
+++ b/data/menu/nullified-ui.xml
@@ -8,13 +8,10 @@
+
+
-
-
-
-
-
diff --git a/data/menu/nullifiedcat/catbot.xml b/data/menu/nullifiedcat/catbot.xml
index 4fc93eb2..c22208fa 100755
--- a/data/menu/nullifiedcat/catbot.xml
+++ b/data/menu/nullifiedcat/catbot.xml
@@ -3,6 +3,7 @@
+
@@ -22,7 +23,7 @@
-
+
diff --git a/data/menu/nullifiedcat/chat.xml b/data/menu/nullifiedcat/chat.xml
index aa13aa23..42836dc9 100644
--- a/data/menu/nullifiedcat/chat.xml
+++ b/data/menu/nullifiedcat/chat.xml
@@ -33,7 +33,7 @@
-
+
@@ -41,4 +41,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/hackinfo.xml b/data/menu/nullifiedcat/hackinfo.xml
new file mode 100644
index 00000000..99155602
--- /dev/null
+++ b/data/menu/nullifiedcat/hackinfo.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc.xml b/data/menu/nullifiedcat/misc.xml
index a84eb8d0..74e1b66a 100644
--- a/data/menu/nullifiedcat/misc.xml
+++ b/data/menu/nullifiedcat/misc.xml
@@ -3,8 +3,11 @@
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc/Misc2.xml b/data/menu/nullifiedcat/misc/Misc2.xml
new file mode 100644
index 00000000..c99a8fcf
--- /dev/null
+++ b/data/menu/nullifiedcat/misc/Misc2.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc/achievement.xml b/data/menu/nullifiedcat/misc/achievement.xml
index 68cd06d7..1a0c06cf 100644
--- a/data/menu/nullifiedcat/misc/achievement.xml
+++ b/data/menu/nullifiedcat/misc/achievement.xml
@@ -1,5 +1,5 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc/anticheat.xml b/data/menu/nullifiedcat/misc/anticheat.xml
new file mode 100644
index 00000000..f1adc01e
--- /dev/null
+++ b/data/menu/nullifiedcat/misc/anticheat.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc/collective.xml b/data/menu/nullifiedcat/misc/collective.xml
new file mode 100644
index 00000000..60cd93c3
--- /dev/null
+++ b/data/menu/nullifiedcat/misc/collective.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/misc/remove.xml b/data/menu/nullifiedcat/misc/remove.xml
new file mode 100644
index 00000000..58a5f29a
--- /dev/null
+++ b/data/menu/nullifiedcat/misc/remove.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/spyalert.xml b/data/menu/nullifiedcat/spyalert.xml
new file mode 100644
index 00000000..ebe3aa49
--- /dev/null
+++ b/data/menu/nullifiedcat/spyalert.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/menu/nullifiedcat/visuals.xml b/data/menu/nullifiedcat/visuals.xml
index 342d422a..c10ded33 100644
--- a/data/menu/nullifiedcat/visuals.xml
+++ b/data/menu/nullifiedcat/visuals.xml
@@ -1,6 +1,7 @@
+
diff --git a/data/menu/nullifiedcat/visuals/esp.xml b/data/menu/nullifiedcat/visuals/esp.xml
index aa1bddcd..8bea3cfd 100644
--- a/data/menu/nullifiedcat/visuals/esp.xml
+++ b/data/menu/nullifiedcat/visuals/esp.xml
@@ -8,7 +8,18 @@
+
+
+
+
+
+
+
+
diff --git a/data/menu/nullifiedcat/visuals/lightesp.xml b/data/menu/nullifiedcat/visuals/lightesp.xml
new file mode 100644
index 00000000..5de92b46
--- /dev/null
+++ b/data/menu/nullifiedcat/visuals/lightesp.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/include/hacks/SeedPrediction.hpp b/include/hacks/SeedPrediction.hpp
index 8d4e303e..b01c83d9 100644
--- a/include/hacks/SeedPrediction.hpp
+++ b/include/hacks/SeedPrediction.hpp
@@ -8,9 +8,11 @@
#include "reclasses.hpp"
#include "C_TEFireBullets.hpp"
#include "common.hpp"
+#include
#pragma once
namespace hacks::tf2::seedprediction
{
+ extern settings::Bool prediction;
void handleFireBullets(C_TEFireBullets *);
struct seedstruct
{
diff --git a/include/reclasses/C_TEFireBullets.hpp b/include/reclasses/C_TEFireBullets.hpp
index 5d0cbb2a..c4fbbf9a 100644
--- a/include/reclasses/C_TEFireBullets.hpp
+++ b/include/reclasses/C_TEFireBullets.hpp
@@ -10,7 +10,7 @@ class C_TEFireBullets : public C_BaseTempEntity
{
public:
C_TEFireBullets() = delete;
- static C_TEFireBullets *GTEFireBullets();
+ static C_BaseTempEntity *GTEFireBullets();
public:
int m_iSeed();
diff --git a/src/hacks/SeedPrediction.cpp b/src/hacks/SeedPrediction.cpp
index d79a08bf..ed5b0a6a 100644
--- a/src/hacks/SeedPrediction.cpp
+++ b/src/hacks/SeedPrediction.cpp
@@ -4,6 +4,7 @@
* Created on: Jul 27, 2018
* Author: bencat07
*/
+#include
#include "common.hpp"
#include "SeedPrediction.hpp"
#include "reclasses.hpp"
@@ -13,6 +14,7 @@ double clockRes;
float seedFraction = 0.0f;
namespace hacks::tf2::seedprediction
{
+ settings::Bool prediction{"seed-prediction.enable", "false"};
buf bases{9999};
buf2 rebased{9999};
buf3 intervals{9999};
diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp
index 696b69c4..735d0514 100644
--- a/src/hooks/CreateMove.cpp
+++ b/src/hooks/CreateMove.cpp
@@ -8,6 +8,7 @@
#include "common.hpp"
#include "hack.hpp"
#include "MiscTemporary.hpp"
+#include "SeedPrediction.hpp"
#include
#include
#include
@@ -16,7 +17,7 @@
#include "HookedMethods.hpp"
static settings::Bool minigun_jump{ "misc.minigun-jump-tf2c", "false" };
-static settings::Button roll_speedhack{ "misc.roll-speedhack", "false" };
+static settings::Bool roll_speedhack{ "misc.roll-speedhack", "false" };
static settings::Bool engine_pred{ "misc.engine-prediction", "false" };
static settings::Bool debug_projectiles{ "debug.projectiles", "false" };
static settings::Int semiauto{ "misc.semi-auto", "0" };
@@ -418,7 +419,7 @@ DEFINE_HOOKED_METHOD(CreateMove, bool, void *this_, float input_sample_time,
if (CE_GOOD(g_pLocalPlayer->entity))
{
speedapplied = false;
- if (roll_speedhack.isKeyDown() &&
+ if (roll_speedhack && cmd->buttons & IN_DUCK &&
!(cmd->buttons & IN_ATTACK))
{
speed = cmd->forwardmove;
diff --git a/src/hooks/visual/FrameStageNotify.cpp b/src/hooks/visual/FrameStageNotify.cpp
index 517aee3a..ecec8382 100644
--- a/src/hooks/visual/FrameStageNotify.cpp
+++ b/src/hooks/visual/FrameStageNotify.cpp
@@ -19,7 +19,6 @@ static float old_nightmode{ 0.0f };
namespace hooked_methods
{
#include "reclasses.hpp"
-#include "C_TEFireBullets.hpp"
DEFINE_HOOKED_METHOD(FrameStageNotify, void, void *this_,
ClientFrameStage_t stage)
{
@@ -93,14 +92,24 @@ DEFINE_HOOKED_METHOD(FrameStageNotify, void, void *this_,
ipc::UpdateServerAddress();
#endif
}
- C_TEFireBullets *fire = C_TEFireBullets::GTEFireBullets();
- if (fire && !hooks::IsHooked((void *)fire))
- {
- hooks::firebullets.Set(fire);
- hooks::firebullets.HookMethod(HOOK_ARGS(PreDataUpdate));
- hooks::firebullets.Apply();
- }
}
+ /*if (hacks::tf2::seedprediction::prediction && CE_GOOD(LOCAL_E)) {
+ C_BaseTempEntity *fire = C_TEFireBullets::GTEFireBullets();
+ while (fire) {
+ logging::Info("0x%08X", (uintptr_t) fire);
+ C_TEFireBullets *fire2 = nullptr;
+ if (!fire->IsDormant() && fire->GetClientNetworkable()->GetClientClass() && fire->GetClientNetworkable()->GetClientClass()->m_ClassID == CL_CLASS(CTEFireBullets))
+ fire2 = (C_TEFireBullets *) fire;
+ if (fire2 && !hooks::IsHooked((void *) fire2)) {
+ hooks::firebullets.Set(fire2);
+ hooks::firebullets.HookMethod(HOOK_ARGS(PreDataUpdate));
+ hooks::firebullets.Apply();
+ }
+ if (fire2)
+ logging::Info("%d", fire2->m_iSeed());
+ fire = fire->m_pNext;
+ }
+ }*/
if (isHackActive() && !g_Settings.bInvalid && stage == FRAME_RENDER_START)
{
IF_GAME(IsTF())
diff --git a/src/reclasses/C_TEFireBullets.cpp b/src/reclasses/C_TEFireBullets.cpp
index 571949cd..da02dd8d 100644
--- a/src/reclasses/C_TEFireBullets.cpp
+++ b/src/reclasses/C_TEFireBullets.cpp
@@ -7,13 +7,11 @@
#include "reclasses.hpp"
#pragma once
-C_TEFireBullets *C_TEFireBullets::GTEFireBullets()
+C_BaseTempEntity *C_TEFireBullets::GTEFireBullets()
{
- typedef C_TEFireBullets *(*GTEFireBullets_t)();
- static uintptr_t addr1 = gSignatures.GetClientSignature("55 B8 ? ? ? ? 89 E5 5D C3 8D B6 00 00 00 00 55 89 E5 56 53 83 EC ? C7 45");
- GTEFireBullets_t GTEFireBullets_fn = GTEFireBullets_t(addr1);
-
- return GTEFireBullets_fn();
+ static uintptr_t fireaddr = (gSignatures.GetClientSignature("C7 40 ? ? ? ? ? C7 40 ? ? ? ? ? A3 ? ? ? ? 89 50") - 0x4);
+ C_BaseTempEntity * fire = *(C_BaseTempEntity **)fireaddr;
+ return fire;
}
int C_TEFireBullets::m_iSeed()
{