Jump to content

Basic anti cheat


Recommended Posts

Gamelib/

ActorInstance.cpp

replace the relevant code block



void CActorInstance::SetAttackSpeed(float fAtkSpd)
{
    if(m_fAtkSpd > 1.7f){m_fAtkSpd = 1.7f;return;}//anticheat01
    
    m_fAtkSpd=fAtkSpd;
}

void CActorInstance::SetMoveSpeed(float fMovSpd)
{
    if(m_fMovSpd > 2.0f){m_fMovSpd = 2.0f;return;}//anticheat01
    
    if (m_fMovSpd==fMovSpd)
        return;

    m_fMovSpd=fMovSpd;

    if (__IsMoveMotion())
    {
        Stop();
        Move();
    }
}
 

ActorInstanceBattle.cpp

replace the relevant code block

 

void CActorInstance::__RunNextCombo()
{

    //anticheat01
    if(m_fAtkSpd > 1.7f)
    {
        SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)NULL);
        __asm{
            mov eax,0x444
            jmp eax
        }
    }
    //anticheat01
    
     ++m_dwcurComboIndex;
    ///////////////////////////

 

ActorInstanceBattle.cpp

replace the relevant code block

 

void CActorInstance::__OnMove()
{
	
	//anticheat01
	if(m_fMovSpd > 2.0f)
	{
		__asm{
			mov eax,0x444
			jmp eax
		}
	}
	//anticheat01
	
	IEventHandler& rkEventHandler=__GetEventHandlerRef();


replace the relevant code block

void CActorInstance::__OnAttack(WORD wMotionIndex)
{
	
	//anticheat01
	if(m_fAtkSpd > 1.7f)
	{
		__asm{
			mov eax,0x444
			jmp eax
		}
	}
	//anticheat01
	
	IEventHandler& rkEventHandler=__GetEventHandlerRef();


PythonNetworkStreamPhaseGame.cpp


 

ADD

#ifdef ENABLE_NEW_ATTACK_METHOD
#include "ProcessCRC.h"
#include <ThemidaSDK.h>
#endif

replace the relevant code block

bool CPythonNetworkStream::SendAttackPacket(
#ifdef ENABLE_NEW_ATTACK_METHOD
uint32_t type,
#endif
UINT uMotAttack, DWORD dwVIDVictim
#ifdef ENABLE_NEW_ATTACK_METHOD
, uint32_t crc32
#endif
)
{
#ifdef ENABLE_NEW_ATTACK_METHOD
	VM_START
	if (type != 3 || crc32 != 213334) {
		return false;
	}
#endif

	if (!__CanActMainInstance())
		return true;

#ifdef ATTACK_TIME_LOG
	static DWORD prevTime = timeGetTime();
	DWORD curTime = timeGetTime();
	TraceError("TIME: %.4f(%.4f) ATTACK_PACKET: %d TARGET: %d", curTime/1000.0f, (curTime-prevTime)/1000.0f, uMotAttack, dwVIDVictim);
	prevTime = curTime;
#endif

	TPacketCGAttack kPacketAtk;

	kPacketAtk.header = HEADER_CG_ATTACK;
	kPacketAtk.bType = uMotAttack;
	kPacketAtk.dwVictimVID = dwVIDVictim;

	if (!SendSpecial(sizeof(kPacketAtk), &kPacketAtk))
	{
		Tracen("Send Battle Attack Packet Error");
		return false;
	}
#ifdef ENABLE_NEW_ATTACK_METHOD
	VM_END
#endif
	return SendSequence();
}




PythonPlayerEventHandler.cpp

replace the relevant code block

void CPythonPlayerEventHandler::CNormalBowAttack_FlyEventHandler_AutoClear::OnExplodingAtAnotherTarget(DWORD dwSkillIndex, DWORD dwVID)
{
	return;

	Tracef("Shoot : Hitting another target : %d, %d\n", dwSkillIndex, dwVID);

	CPythonNetworkStream& rkStream=CPythonNetworkStream::Instance();
	rkStream.SendAttackPacket(
#ifdef ENABLE_NEW_ATTACK_METHOD
	3,
#endif
	dwSkillIndex, dwVID
#ifdef ENABLE_NEW_ATTACK_METHOD
	, 213334
#endif
	);
	
	CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance();
	CInstanceBase * pInstance = rkChrMgr.GetInstancePtr(dwVID);
	if (pInstance)
	{
		pInstance->GetGraphicThingInstanceRef().OnShootDamage();
	}
}


replace the relevant code block

void CPythonPlayerEventHandler::CNormalBowAttack_FlyEventHandler_AutoClear::OnExplodingAtAnotherTarget(DWORD dwSkillIndex, DWORD dwVID)
{
	return;

	Tracef("Shoot : Hitting another target : %d, %d\n", dwSkillIndex, dwVID);

	CPythonNetworkStream& rkStream=CPythonNetworkStream::Instance();
	rkStream.SendAttackPacket(
#ifdef ENABLE_NEW_ATTACK_METHOD
	3,
#endif
	dwSkillIndex, dwVID
#ifdef ENABLE_NEW_ATTACK_METHOD
	, 213334
#endif
	);
	
	CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance();
	CInstanceBase * pInstance = rkChrMgr.GetInstancePtr(dwVID);
	if (pInstance)
	{
		pInstance->GetGraphicThingInstanceRef().OnShootDamage();
	}
}


PythonNetworkStream.h

replace the relevant code block

 

		bool SendAttackPacket(
#ifdef ENABLE_NEW_ATTACK_METHOD
		uint32_t type,
#endif
		UINT uMotAttack, DWORD dwVIDVictim
#ifdef ENABLE_NEW_ATTACK_METHOD
		, uint32_t crc32
#endif
		);
		



 

  • kekw 1
  • Confused 1
  • Lmao 3
Link to comment
Share on other sites

  • 6 months later...

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.