Самое простое решение, если геодиг выключен - запретить передвижение стрелками в радиусе, допустим 100, возле дверей. Проверка в л2ж подобных сборках осуществляется следующим методом:
Код:
@Override
public Location moveCheck(int x, int y, int z, int tx, int ty, int tz, int instanceId)
{
Location startpoint = new Location(x, y, z);
if (DoorTable.getInstance().checkIfDoorsBetween(x, y, z, tx, ty, tz, instanceId))
return startpoint;
Location destiny = new Location(tx, ty, tz);
return moveCheck(startpoint, destiny, (x - L2World.MAP_MIN_X) >> 4, (y - L2World.MAP_MIN_Y) >> 4, z, (tx - L2World.MAP_MIN_X) >> 4, (ty - L2World.MAP_MIN_Y) >> 4, tz);
}