Hello everyone,
I want to share a small mod for the collision system that removes the annoying block from normal monsters.
After applying this, only Boss and King mobs will block your movement, while all other monsters can be walked through.
1. Edit in Client Source GameLib/ActorInstanceCollisionDetection.cpp
Add on Top
#include "../UserInterface/PythonNonPlayer.h"
After:
BOOL CActorInstance::TestActorCollision(CActorInstance& rVictim)
{
if (rVictim.IsDead())
return FALSE;
Add :
// --- No-Clip Patch: Normal monsters won't block anymore ---
{
DWORD vnum = rVictim.GetRace();
const CPythonNonPlayer::TMobTable* pMob = CPythonNonPlayer::Instance().GetTable(vnum);
if (pMob)
{
// Only Boss and King should block
if (pMob->bRank != CPythonNonPlayer::MOB_RANK_BOSS &&
pMob->bRank != CPythonNonPlayer::MOB_RANK_KING)
{
return FALSE;
}
}
}
// -----------------------------------------------------------
1. Edit in Client Source UserInterface/PythonNonPlayer.h
After
enum EMobEnchants
{
MOB_ENCHANT_CURSE,
MOB_ENCHANT_SLOW,
MOB_ENCHANT_POISON,
MOB_ENCHANT_STUN,
MOB_ENCHANT_CRITICAL,
MOB_ENCHANT_PENETRATE,
MOB_ENCHANTS_MAX_NUM
};
Add mob ranks
enum EMobRank
{
MOB_RANK_PAWN,
MOB_RANK_S_PAWN,
MOB_RANK_KNIGHT,
MOB_RANK_S_KNIGHT,
MOB_RANK_BOSS,
MOB_RANK_KING,
};
Result
Normal mobs (Pawn, Knight, etc.) will no longer block the player.
Only Boss and King will block movement.
This makes gameplay smoother, especially in rooms with many mobs.