Browse Source

errant characters recall to SDR

lakebane-master
FatBoy-DOTC 6 months ago
parent
commit
4d8cb339c3
  1. 33
      src/engine/powers/poweractions/RecallPowerAction.java

33
src/engine/powers/poweractions/RecallPowerAction.java

@ -11,22 +11,22 @@ package engine.powers.poweractions; @@ -11,22 +11,22 @@ package engine.powers.poweractions;
import engine.Enum.GameObjectType;
import engine.InterestManagement.WorldGrid;
import engine.gameManager.DbManager;
import engine.gameManager.MovementManager;
import engine.gameManager.ZoneManager;
import engine.math.Vector3fImmutable;
import engine.net.Dispatch;
import engine.net.DispatchMessage;
import engine.net.client.ClientConnection;
import engine.net.client.msg.PromptRecallMsg;
import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
import engine.objects.Mob;
import engine.objects.PlayerCharacter;
import engine.objects.*;
import engine.powers.ActionsBase;
import engine.powers.PowersBase;
import engine.server.MBServerStatics;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.concurrent.ThreadLocalRandom;
public class RecallPowerAction extends AbstractPowerAction {
@ -48,8 +48,6 @@ public class RecallPowerAction extends AbstractPowerAction { @@ -48,8 +48,6 @@ public class RecallPowerAction extends AbstractPowerAction {
if (pc.hasBoon())
return;
ClientConnection cc = pc.getClientConnection();
if (source.getObjectUUID() != pc.getObjectUUID()) {
pc.setTimeStampNow("PromptRecall");
pc.setTimeStamp("LastRecallType", 1); //recall to bind
@ -58,7 +56,28 @@ public class RecallPowerAction extends AbstractPowerAction { @@ -58,7 +56,28 @@ public class RecallPowerAction extends AbstractPowerAction {
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY);
} else {
MovementManager.translocate(awoac, awoac.getBindLoc(), null);
if(pc.guild.equals(Guild.getErrantGuild()) || pc.guild.getNation().equals(Guild.getErrantGuild())){
Vector3fImmutable loc;
for (AbstractGameObject cityAgo : DbManager.getList(GameObjectType.City)) {
City city = (City) cityAgo;
if (city == null)
continue;
if (!city.getCityName().equalsIgnoreCase("sea dog's rest"))
continue;
Zone zone = city.getParent();
if (zone != null) {
if (zone.isNPCCity() || zone.isPlayerCity())
loc = Vector3fImmutable.getRandomPointOnCircle(zone.getLoc(), MBServerStatics.TREE_TELEPORT_RADIUS);
else
loc = zone.getLoc();
MovementManager.translocate(awoac, loc, null);
break;
}
}
} else {
MovementManager.translocate(awoac, awoac.getBindLoc(), null);
}
}
} else {
Vector3fImmutable bindloc = awoac.getBindLoc();

Loading…
Cancel
Save