[Cheat Detection] Anti-Cheat reimplementation (#1434)

* [Cheat Detection] Anti-Cheat reimplementation

* minor patch fixes

* ceiling to server side runspeed

Warp(LT) was picking up a bunch of expected 6.2 but it was reported back as 6.5, this should help reduce the amount of false positives we get

* use ceil instead of std::ceilf for linux

* boat false positive fix

* stopping the double detection

* fixes and cleanup

* auto merge tricked me...

* dummy divide by 0 checks

this should prevent anyone from setting Zone:MQWarpDetectionDistanceFactor to 0 and causing a crash.

* Formatting

* encapsulation to its own class and clean up

* more detections

* typo

* OP_UnderWorld implmentation

* Update client_packet.h

* Syntax changes, formatting, cleanup

* preventing crashes due to invalid packet size

* typos and clearer logic

* seperated the catagory for cheats

* Updated MQGhost for more detail

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Dencelle
2021-08-31 01:08:31 -05:00
committed by GitHub
parent 26299354b6
commit 7b069dcf20
25 changed files with 664 additions and 26 deletions
+3 -12
View File
@@ -66,6 +66,7 @@ namespace EQ
#include "zone_store.h"
#include "task_manager.h"
#include "task_client_state.h"
#include "cheat_manager.h"
#ifdef _WINDOWS
// since windows defines these within windef.h (which windows.h include)
@@ -120,17 +121,6 @@ typedef enum {
EvacToSafeCoords
} ZoneMode;
typedef enum {
MQWarp,
MQWarpShadowStep,
MQWarpKnockBack,
MQWarpLight,
MQZone,
MQZoneUnknownDest,
MQGate,
MQGhost
} CheatTypes;
enum {
HideCorpseNone = 0,
HideCorpseAll = 1,
@@ -604,7 +594,7 @@ public:
inline double GetEXPModifier(uint32 zone_id) const { return database.GetEXPModifier(CharacterID(), zone_id); };
inline void SetAAEXPModifier(uint32 zone_id, double aa_modifier) { database.SetAAEXPModifier(CharacterID(), zone_id, aa_modifier); };
inline void SetEXPModifier(uint32 zone_id, double exp_modifier) { database.SetEXPModifier(CharacterID(), zone_id, exp_modifier); };
bool UpdateLDoNPoints(uint32 theme_id, int points);
void SetPVPPoints(uint32 Points) { m_pp.PVPCurrentPoints = Points; }
uint32 GetPVPPoints() { return m_pp.PVPCurrentPoints; }
@@ -1598,6 +1588,7 @@ public:
Raid *p_raid_instance;
void ShowDevToolsMenu();
CheatManager cheat_manager;
protected:
friend class Mob;