Updated TF2 Extension to fix critical hits.
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402119
This commit is contained in:
parent
f226e6d70b
commit
8df36003a8
@ -318,9 +318,19 @@ void CriticalHitManager::EnableCriticalDetour()
|
|||||||
{
|
{
|
||||||
if (!detoured)
|
if (!detoured)
|
||||||
{
|
{
|
||||||
DoGatePatch((unsigned char *)critical_address, &critical_callback);
|
if (normalcreated)
|
||||||
DoGatePatch((unsigned char *)melee_address, &melee_callback);
|
{
|
||||||
DoGatePatch((unsigned char *)knife_address, &knife_callback);
|
DoGatePatch((unsigned char *)critical_address, &critical_callback);
|
||||||
|
}
|
||||||
|
if (meleecreated)
|
||||||
|
{
|
||||||
|
DoGatePatch((unsigned char *)melee_address, &melee_callback);
|
||||||
|
}
|
||||||
|
if (knifecreated)
|
||||||
|
{
|
||||||
|
DoGatePatch((unsigned char *)knife_address, &knife_callback);
|
||||||
|
}
|
||||||
|
|
||||||
detoured = true;
|
detoured = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,10 @@ public:
|
|||||||
knife_callback = NULL;
|
knife_callback = NULL;
|
||||||
|
|
||||||
forward = NULL;
|
forward = NULL;
|
||||||
|
|
||||||
|
normalcreated = false;
|
||||||
|
meleecreated = false;
|
||||||
|
knifecreated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
~CriticalHitManager()
|
~CriticalHitManager()
|
||||||
@ -61,9 +65,14 @@ public:
|
|||||||
|
|
||||||
void Init()
|
void Init()
|
||||||
{
|
{
|
||||||
if (!CreateCriticalDetour() || !CreateCriticalMeleeDetour() || !CreateCriticalKnifeDetour())
|
normalcreated = CreateCriticalDetour();
|
||||||
|
meleecreated = CreateCriticalMeleeDetour();
|
||||||
|
knifecreated = CreateCriticalKnifeDetour();
|
||||||
|
|
||||||
|
if (!normalcreated && !meleecreated && !knifecreated)
|
||||||
{
|
{
|
||||||
enabled = false;
|
enabled = false;
|
||||||
|
g_pSM->LogError(myself, "No critical hit forwards could be initialised - Disabled critical hit hooks");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +107,10 @@ private:
|
|||||||
bool CreateCriticalKnifeDetour();
|
bool CreateCriticalKnifeDetour();
|
||||||
void DeleteCriticalDetour();
|
void DeleteCriticalDetour();
|
||||||
|
|
||||||
|
bool normalcreated;
|
||||||
|
bool meleecreated;
|
||||||
|
bool knifecreated;
|
||||||
|
|
||||||
/* These patch/unpatch the server.dll */
|
/* These patch/unpatch the server.dll */
|
||||||
void EnableCriticalDetour();
|
void EnableCriticalDetour();
|
||||||
void DisableCriticalDetour();
|
void DisableCriticalDetour();
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
{
|
{
|
||||||
"library" "server"
|
"library" "server"
|
||||||
"linux" "@_ZN8CTFKnife26CalcIsAttackCriticalHelperEv"
|
"linux" "@_ZN8CTFKnife26CalcIsAttackCriticalHelperEv"
|
||||||
"windows" "\x33\xC0\x83\xB9\x20\x05\x00"
|
"windows" "\x33\xC0\x83\xB9\x74\x12\x00\x00\x01\x0F\x94\xC0\xC3"
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user