Active Member Koray 2002 Posted October 28, 2015 Active Member Share Posted October 28, 2015 M2 Download Center This is the hidden content, please Sign In or Sign Up ( Internal ) Spoiler *UserInterface/InstanceBase.h Search: protected: UINT __LessRenderOrder_GetLODLevel(); Add it upper: public: bool __CanSkipCollision(); *UserInterface/InstanceBase.cpp Search: void CInstanceBase::__DisableSkipCollision() { m_GraphicThingInstance.DisableSkipCollision(); } Add it under: bool CInstanceBase::__CanSkipCollision() { return m_GraphicThingInstance.CanSkipCollision(); } *UserInterface/PythonNetworkStreamPhaseGame.cpp Search: if (fDstRot < 0.0f) fDstRot = 360 + fDstRot; else if (fDstRot > 360.0f) fDstRot = fmodf(fDstRot, 360.0f); Add it upper any of: Only warning: CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if (pkInstMain){ if (!pkInstMain->IsGoing() && pkInstMain->__CanSkipCollision()){ CPythonChat::Instance().AppendChat(CHAT_TYPE_NOTICE, "Wall hack !"); return false; } } Close game client: CPythonCharacterManager& rkChrMgr =CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if(pkInstMain){ if(!pkInstMain->IsGoing()&& pkInstMain->__CanSkipCollision()){ PostQuitMessage(0); } } Send log and close connection: CPythonCharacterManager& rkChrMgr =CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if(pkInstMain){ if(!pkInstMain->IsGoing()&& pkInstMain->__CanSkipCollision()){ __SendHack("WallHack detected"); } } 15 1 6 17 Link to comment Share on other sites More sharing options...
Premium Galet 510 Posted October 28, 2015 Premium Share Posted October 28, 2015 Thank you Koray ! Thank you Koray ! 1 Link to comment Share on other sites More sharing options...
TheSLZ 105 Posted October 28, 2015 Share Posted October 28, 2015 Better than https://metin2dev.org/board/index.php?/topic/8508-serverside-anticheat-guide/ ? Link to comment Share on other sites More sharing options...
Active Member Koray 2002 Posted October 28, 2015 Author Active Member Share Posted October 28, 2015 Serverside solutions always better but have some problems detect for wallhack in serverside For the present, This solution better Link to comment Share on other sites More sharing options...
Former Staff Shisui 491 Posted October 30, 2015 Former Staff Share Posted October 30, 2015 Can you make this function say the player name? CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain = rkChrMgr.GetMainInstancePtr(); if (pkInstMain){ if (!pkInstMain->IsGoing() && pkInstMain->__CanSkipCollision()){ CPythonChat::Instance().AppendChat(CHAT_TYPE_NOTICE, "Wall hack !"); return false; } } 1 Link to comment Share on other sites More sharing options...
Active Member Koray 2002 Posted October 30, 2015 Author Active Member Share Posted October 30, 2015 This function for only for him no one else. if you want notice for all players you can use and modify sendhack function In input_main.cpp void CInputMain::Hack(LPCHARACTER ch, const char * c_pData) You can use notice all like this char nbuf[200]; sprintf(nbuf, "%s in %s named player", buf, ch->GetName()); SendNotice(nbuf); 5 Link to comment Share on other sites More sharing options...
Recommended Posts