Fixes the no teleporting glitch. uses a IsTP command to send either cfg.spawnTile, or Main.spawntile

This commit is contained in:
Twitchy 2011-06-25 05:16:46 +12:00
parent 57627f6846
commit 3644719c1c
2 changed files with 79 additions and 69 deletions

View file

@ -142,6 +142,7 @@ namespace TShockAPI
int spawnTileY = Main.spawnTileY; int spawnTileY = Main.spawnTileY;
Main.spawnTileX = tileX; Main.spawnTileX = tileX;
Main.spawnTileY = tileY; Main.spawnTileY = tileY;
TShock.IsTP = true;
NetMessage.SendData((int)PacketTypes.WorldInfo, Index, -1, "", 0, 0.0f, 0.0f, 0.0f); NetMessage.SendData((int)PacketTypes.WorldInfo, Index, -1, "", 0, 0.0f, 0.0f, 0.0f);
if (TPlayer.SpawnX >= 0 && TPlayer.SpawnY >= 0) if (TPlayer.SpawnX >= 0 && TPlayer.SpawnY >= 0)
{ {
@ -159,6 +160,7 @@ namespace TShockAPI
Main.spawnTileX = spawnTileX; Main.spawnTileX = spawnTileX;
Main.spawnTileY = spawnTileY; Main.spawnTileY = spawnTileY;
NetMessage.SendData((int)PacketTypes.WorldInfo, Index, -1, "", 0, 0.0f, 0.0f, 0.0f); NetMessage.SendData((int)PacketTypes.WorldInfo, Index, -1, "", 0, 0.0f, 0.0f, 0.0f);
TShock.IsTP = false;
return true; return true;
} }

View file

@ -43,6 +43,8 @@ namespace TShockAPI
public static BanManager Bans = new BanManager(Path.Combine(SavePath, "bans.txt")); public static BanManager Bans = new BanManager(Path.Combine(SavePath, "bans.txt"));
public static BackupManager Backups = new BackupManager(Path.Combine(SavePath, "backups")); public static BackupManager Backups = new BackupManager(Path.Combine(SavePath, "backups"));
public static bool IsTP = false;
public override Version Version public override Version Version
{ {
get { return VersionNum; } get { return VersionNum; }
@ -333,6 +335,8 @@ namespace TShockAPI
int num2 = 5; int num2 = 5;
int num3 = num2; int num3 = num2;
if (e.MsgID == PacketTypes.WorldInfo) if (e.MsgID == PacketTypes.WorldInfo)
{
if (!IsTP)
{ {
byte[] bytes18 = BitConverter.GetBytes((int)e.MsgID); byte[] bytes18 = BitConverter.GetBytes((int)e.MsgID);
byte[] bytes19 = BitConverter.GetBytes((int)Main.time); byte[] bytes19 = BitConverter.GetBytes((int)Main.time);
@ -349,8 +353,11 @@ namespace TShockAPI
} }
byte[] bytes20 = BitConverter.GetBytes(Main.maxTilesX); byte[] bytes20 = BitConverter.GetBytes(Main.maxTilesX);
byte[] bytes21 = BitConverter.GetBytes(Main.maxTilesY); byte[] bytes21 = BitConverter.GetBytes(Main.maxTilesY);
byte[] bytes22 = BitConverter.GetBytes(ConfigurationManager.spawnTileX); byte[] bytes22 = BitConverter.GetBytes(ConfigurationManager.spawnTileX);
byte[] bytes23 = BitConverter.GetBytes(ConfigurationManager.spawnTileY); byte[] bytes23 = BitConverter.GetBytes(ConfigurationManager.spawnTileY);
byte[] bytes24 = BitConverter.GetBytes((int)Main.worldSurface); byte[] bytes24 = BitConverter.GetBytes((int)Main.worldSurface);
byte[] bytes25 = BitConverter.GetBytes((int)Main.rockLayer); byte[] bytes25 = BitConverter.GetBytes((int)Main.rockLayer);
byte[] bytes26 = BitConverter.GetBytes(Main.worldID); byte[] bytes26 = BitConverter.GetBytes(Main.worldID);
@ -404,6 +411,7 @@ namespace TShockAPI
num3 += bytes27.Length; num3 += bytes27.Length;
e.Handled = true; e.Handled = true;
} }
}
if (e.Handled) if (e.Handled)
{ {
if (Main.netMode != 1) if (Main.netMode != 1)
@ -593,9 +601,9 @@ namespace TShockAPI
{ {
foreach (RemeberedPos playerIP in RemeberedPosManager.RemeberedPosistions) foreach (RemeberedPos playerIP in RemeberedPosManager.RemeberedPosistions)
{ {
if (playerIP.IP == Players[who].IP) if (playerIP.IP == player.IP)
{ {
Players[who].Teleport((int)playerIP.Pos.X, (int)playerIP.Pos.Y); player.Teleport((int)playerIP.Pos.X, (int)playerIP.Pos.Y);
RemeberedPosManager.RemeberedPosistions.Remove(playerIP); RemeberedPosManager.RemeberedPosistions.Remove(playerIP);
RemeberedPosManager.WriteSettings(); RemeberedPosManager.WriteSettings();
break; break;