|
|
|
@@ -469,28 +469,15 @@ public enum MovementManager {
|
|
|
|
|
|
|
|
|
|
if (targetLoc == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
Vector3fImmutable oldLoc = new Vector3fImmutable(teleporter.getLoc());
|
|
|
|
|
|
|
|
|
|
teleporter.stopMovement(targetLoc);
|
|
|
|
|
|
|
|
|
|
//mobs ignore region sets for now.
|
|
|
|
|
if (teleporter.getObjectType().equals(GameObjectType.Mob)) {
|
|
|
|
|
teleporter.setInBuildingID(0);
|
|
|
|
|
teleporter.setInBuilding(-1);
|
|
|
|
|
teleporter.setInFloorID(-1);
|
|
|
|
|
TeleportToPointMsg msg = new TeleportToPointMsg(teleporter, targetLoc.getX(), targetLoc.getY(), targetLoc.getZ(), 0, -1, -1);
|
|
|
|
|
DispatchMessage.dispatchMsgToInterestArea(oldLoc, teleporter, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, false, false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
TeleportToPointMsg msg = new TeleportToPointMsg(teleporter, targetLoc.getX(), targetLoc.getY(), targetLoc.getZ(), 0, -1, -1);
|
|
|
|
|
//we shouldnt need to send teleport message to new area, as loadjob should pick it up.
|
|
|
|
|
// DispatchMessage.dispatchMsgToInterestArea(teleporter, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false);
|
|
|
|
|
DispatchMessage.dispatchMsgToInterestArea(oldLoc, teleporter, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false);
|
|
|
|
|
|
|
|
|
|
Vector3fImmutable oldLoc = new Vector3fImmutable(teleporter.getLoc());
|
|
|
|
|
teleporter.setLoc(targetLoc);
|
|
|
|
|
if (teleporter.getObjectType().equals(GameObjectType.PlayerCharacter))
|
|
|
|
|
InterestManager.INTERESTMANAGER.HandleLoadForTeleport((PlayerCharacter) teleporter);
|
|
|
|
|
|
|
|
|
|
TeleportToPointMsg msg = new TeleportToPointMsg(teleporter, teleporter.loc.getX(), teleporter.loc.getY(), teleporter.loc.getZ(), 0, -1, -1);
|
|
|
|
|
DispatchMessage.dispatchMsgToInterestArea(oldLoc, teleporter, msg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void syncLoc(AbstractCharacter ac, Vector3fImmutable clientLoc, boolean useClientLoc) {
|
|
|
|
|