Addition of teleToLocation method.

This commit is contained in:
MobiusDevelopment
2019-11-23 18:30:26 +00:00
parent cadd7411b1
commit 918a085692
9 changed files with 29 additions and 98 deletions

View File

@@ -48,7 +48,6 @@ import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUser;
import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import org.l2jmobius.gameserver.network.serverpackets.StatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.templates.Npc;
public class AdminCommands extends Thread
@@ -476,11 +475,7 @@ public class AdminCommands extends Thread
final int y = Integer.parseInt(y1);
final String z1 = st.nextToken();
final int z = Integer.parseInt(z1);
final TeleportToLocation tele = new TeleportToLocation(activeChar, x, y, z);
activeChar.sendPacket(tele);
activeChar.setX(x);
activeChar.setY(y);
activeChar.setZ(z);
activeChar.teleToLocation(x, y, z);
activeChar.sendMessage("You have been teleported to " + coords);
showMainPage(client);
}
@@ -869,11 +864,7 @@ public class AdminCommands extends Thread
final String z1 = st.nextToken();
final int z = Integer.parseInt(z1);
player.sendMessage("Admin is teleporting you.");
final TeleportToLocation tele = new TeleportToLocation(player, x, y, z);
player.sendPacket(tele);
player.setX(x);
player.setY(y);
player.setZ(z);
player.teleToLocation(x, y, z);
activeChar.sendMessage("Character " + player.getName() + " teleported to " + x + " " + y + " " + z);
}
showMainPage(client);
@@ -889,14 +880,7 @@ public class AdminCommands extends Thread
}
else
{
final int x = player.getX();
final int y = player.getY();
final int z = player.getZ();
final TeleportToLocation tele = new TeleportToLocation(activeChar, x, y, z);
activeChar.sendPacket(tele);
activeChar.setX(x);
activeChar.setY(y);
activeChar.setZ(z);
player.teleToLocation(player.getX(), player.getY(), player.getZ());
activeChar.sendMessage("You have teleported to character " + player.getName() + ".");
}
showMainPage(client);

View File

@@ -21,14 +21,12 @@ import org.l2jmobius.gameserver.data.MapRegionTable;
import org.l2jmobius.gameserver.data.SkillTable;
import org.l2jmobius.gameserver.handler.IItemHandler;
import org.l2jmobius.gameserver.model.Skill;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.ItemInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUser;
import org.l2jmobius.gameserver.network.serverpackets.SetupGauge;
import org.l2jmobius.gameserver.network.serverpackets.StopMove;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
public class ScrollOfEscape implements IItemHandler
{
@@ -64,22 +62,7 @@ public class ScrollOfEscape implements IItemHandler
activeChar.broadcastPacket(sm);
final ActionFailed af = new ActionFailed();
activeChar.sendPacket(af);
World.getInstance().removeVisibleObject(activeChar);
activeChar.removeAllKnownObjects();
final TeleportToLocation teleport = new TeleportToLocation(activeChar, townCords[0], townCords[1], townCords[2]);
activeChar.sendPacket(teleport);
activeChar.broadcastPacket(teleport);
activeChar.setX(townCords[0]);
activeChar.setY(townCords[1]);
activeChar.setZ(townCords[2]);
try
{
Thread.sleep(2000L);
}
catch (InterruptedException e)
{
// empty catch block
}
activeChar.teleToLocation(townCords[0], townCords[1], townCords[2]);
return 1;
}

View File

@@ -45,6 +45,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.StatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.StopMove;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.templates.Weapon;
import org.l2jmobius.util.Rnd;
@@ -1552,4 +1553,23 @@ public abstract class Creature extends WorldObject
}
}
public void teleToLocation(int x, int y, int z)
{
final TeleportToLocation teleportToLocation = new TeleportToLocation(this, x, y, z);
sendPacket(teleportToLocation);
broadcastPacket(teleportToLocation);
World.getInstance().removeVisibleObject(this);
removeAllKnownObjects();
setX(x);
setY(y);
setZ(z);
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
}
World.getInstance().addVisibleObject(this);
}
}

View File

@@ -1834,7 +1834,8 @@ public class PlayerInstance extends Creature
// TODO: Check for more?
if (((regionX == 18) && (regionY == 19)) // School of Dark Arts
|| ((regionX == 18) && (regionY == 23)) // Forgotten Temple
|| ((regionX == 19) && (regionY == 23)) // Ant Nest
|| ((regionX == 19) && (regionY == 23)) // Wastelands - Ant Nest
|| ((regionX == 19) && (regionY == 24)) // Wastelands - Southern Entrance
|| ((regionX == 20) && (regionY == 18)) // Dark Elf Village
|| ((regionX == 20) && (regionY == 21)) // Cruma Tower
|| ((regionX == 21) && (regionY == 18)) // Sea of Spores

View File

@@ -21,10 +21,8 @@ import java.util.logging.Logger;
import org.l2jmobius.gameserver.data.TeleportLocationTable;
import org.l2jmobius.gameserver.model.TeleportLocation;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.templates.Npc;
public class TeleporterInstance extends NpcInstance
@@ -69,21 +67,7 @@ public class TeleporterInstance extends NpcInstance
if (player.getAdena() >= list.getPrice())
{
player.reduceAdena(list.getPrice());
final TeleportToLocation Tloc = new TeleportToLocation(player, list.getLocX(), list.getLocY(), list.getLocZ());
player.sendPacket(Tloc);
World.getInstance().removeVisibleObject(player);
player.removeAllKnownObjects();
player.setX(list.getLocX());
player.setY(list.getLocY());
player.setZ(list.getLocZ());
try
{
Thread.sleep(2000L);
}
catch (InterruptedException e)
{
}
World.getInstance().addVisibleObject(player);
player.teleToLocation(list.getLocX(), list.getLocY(), list.getLocZ());
}
else
{

View File

@@ -32,7 +32,6 @@ import org.l2jmobius.gameserver.network.serverpackets.Die;
import org.l2jmobius.gameserver.network.serverpackets.ItemList;
import org.l2jmobius.gameserver.network.serverpackets.ShortCutInit;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
import org.l2jmobius.gameserver.network.serverpackets.UserInfo;
public class EnterWorld extends ClientBasePacket
@@ -98,20 +97,7 @@ public class EnterWorld extends ClientBasePacket
if (activeChar.getZ() < -16000)
{
final int[] townCords = MapRegionTable.getInstance().getClosestTownCords(activeChar);
activeChar.sendPacket(new TeleportToLocation(activeChar, townCords[0], townCords[1], townCords[2]));
World.getInstance().removeVisibleObject(activeChar);
activeChar.removeAllKnownObjects();
activeChar.setX(townCords[0]);
activeChar.setY(townCords[1]);
activeChar.setZ(townCords[2]);
try
{
Thread.sleep(2000L);
}
catch (InterruptedException e)
{
}
World.getInstance().addVisibleObject(activeChar);
activeChar.teleToLocation(townCords[0], townCords[1], townCords[2]);
}
// Water check.

View File

@@ -18,7 +18,6 @@
package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.gameserver.enums.CreatureState;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.ClientThread;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
@@ -58,10 +57,6 @@ public class MoveBackwardToLocation extends ClientBasePacket
activeChar.setZ(originZ);
activeChar.moveTo(targetX, targetY, targetZ, 0);
final int x = ((activeChar.getX() - World.MAP_MIN_X) >> 15) + World.TILE_X_MIN;
final int y = ((activeChar.getY() - World.MAP_MIN_Y) >> 15) + World.TILE_Y_MIN;
System.out.println(x + " " + y);
// Water check.
activeChar.checkWaterState();
}

View File

@@ -20,7 +20,6 @@ package org.l2jmobius.gameserver.network.clientpackets;
import java.io.IOException;
import org.l2jmobius.gameserver.data.MapRegionTable;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.ClientThread;
import org.l2jmobius.gameserver.network.Connection;
@@ -28,7 +27,6 @@ import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.Revive;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.StopMove;
import org.l2jmobius.gameserver.network.serverpackets.TeleportToLocation;
public class RequestRestartPoint extends ClientBasePacket
{
@@ -45,25 +43,10 @@ public class RequestRestartPoint extends ClientBasePacket
final ActionFailed actionFailed = new ActionFailed();
con.sendPacket(actionFailed);
activeChar.broadcastPacket(stopMove);
final TeleportToLocation teleport = new TeleportToLocation(activeChar, townCords[0], townCords[1], townCords[2]);
activeChar.sendPacket(teleport);
World.getInstance().removeVisibleObject(activeChar);
activeChar.removeAllKnownObjects();
activeChar.setX(townCords[0]);
activeChar.setY(townCords[1]);
activeChar.setZ(townCords[2]);
activeChar.teleToLocation(townCords[0], townCords[1], townCords[2]);
activeChar.setCurrentHp(0.6 * activeChar.getMaxHp());
activeChar.setCurrentMp(0.6 * activeChar.getMaxMp());
final Revive revive = new Revive(activeChar);
try
{
Thread.sleep(2000L);
}
catch (InterruptedException e)
{
// empty catch block
}
World.getInstance().addVisibleObject(activeChar);
final SocialAction sa = new SocialAction(activeChar.getObjectId(), 15);
activeChar.broadcastPacket(sa);
activeChar.sendPacket(sa);

View File

@@ -46,11 +46,6 @@ public class ValidatePosition extends ClientBasePacket
final PlayerInstance activeChar = client.getActiveChar();
if (activeChar != null)
{
// Connection con = client.getConnection();
// int realX = activeChar.getX();
// int realY = activeChar.getY();
// int realZ = activeChar.getZ();
// int realHeading = activeChar.getHeading();
activeChar.setZ(z);
activeChar.updateKnownCounter = (byte) (activeChar.updateKnownCounter + 1);
if (activeChar.updateKnownCounter > 3)