Merge branch 'master' of github.com:TShock/TShock into general-devel

This commit is contained in:
high 2011-06-30 01:15:11 -04:00
commit 527d9bb203
2 changed files with 31 additions and 17 deletions

View file

@ -696,8 +696,6 @@ namespace TShockAPI
if (args.Player.Teleport(Main.spawnTileX, Main.spawnTileY)) if (args.Player.Teleport(Main.spawnTileX, Main.spawnTileY))
args.Player.SendMessage("Teleported to the map's spawnpoint."); args.Player.SendMessage("Teleported to the map's spawnpoint.");
else
args.Player.SendMessage("Teleport unavailable - Spawn point set to Bed. To unset, destroy Bed and suicide at least once.", Color.Red);
} }
private static void TP(CommandArgs args) private static void TP(CommandArgs args)
@ -725,8 +723,6 @@ namespace TShockAPI
var plr = players[0]; var plr = players[0];
if (args.Player.Teleport(plr.TileX, plr.TileY + 3)) if (args.Player.Teleport(plr.TileX, plr.TileY + 3))
args.Player.SendMessage(string.Format("Teleported to {0}", plr.Name)); args.Player.SendMessage(string.Format("Teleported to {0}", plr.Name));
else
args.Player.SendMessage("Teleport unavailable - Spawn point set to Bed. To unset, destroy Bed and suicide at least once.", Color.Red);
} }
} }
@ -762,8 +758,6 @@ namespace TShockAPI
plr.SendMessage(string.Format("You were teleported to {0}.", plr.Name)); plr.SendMessage(string.Format("You were teleported to {0}.", plr.Name));
args.Player.SendMessage(string.Format("You brought {0} here.", plr.Name)); args.Player.SendMessage(string.Format("You brought {0} here.", plr.Name));
} }
else
args.Player.SendMessage("Teleport unavailable - Target player has spawn point set to Bed.", Color.Red);
} }
} }
@ -851,9 +845,6 @@ namespace TShockAPI
{ {
if (args.Player.Teleport((int)warp.X, (int)warp.Y + 3)) if (args.Player.Teleport((int)warp.X, (int)warp.Y + 3))
args.Player.SendMessage("Warped to " + warpName, Color.Yellow); args.Player.SendMessage("Warped to " + warpName, Color.Yellow);
else
args.Player.SendMessage("Warp unavailable - Spawn point set to Bed. To unset, destroy Bed and suicide at least once.", Color.Red);
} }
else else
{ {

View file

@ -39,6 +39,7 @@ namespace TShockAPI
public DateTime LastExplosive { get; set; } public DateTime LastExplosive { get; set; }
public bool InitSpawn = false; public bool InitSpawn = false;
public bool DisplayLogs = true; public bool DisplayLogs = true;
public Vector2 oldSpawn = Vector2.Zero;
public bool RealPlayer public bool RealPlayer
{ {
@ -142,26 +143,48 @@ namespace TShockAPI
int spawnTileY = Main.spawnTileY; int spawnTileY = Main.spawnTileY;
Main.spawnTileX = tileX; Main.spawnTileX = tileX;
Main.spawnTileY = tileY; Main.spawnTileY = tileY;
SendData(PacketTypes.WorldInfo);
SendTileSquare(tileX, tileY, 50);
SendData(PacketTypes.WorldInfo);
//150 Should avoid all client crash errors
//The error occurs when a tile trys to update which the client hasnt load yet, Clients only update tiles withen 150 blocks
//Try 300 if it does not work (Higher number - Longer load times - Less chance of error)
SendTileSquare(tileX, tileY, 150);
if (TPlayer.SpawnX > 0 && TPlayer.SpawnY > 0) if (TPlayer.SpawnX > 0 && TPlayer.SpawnY > 0)
{ {
Main.tile[TPlayer.SpawnX, TPlayer.SpawnY].active = false; int spX = TPlayer.SpawnX;
NetMessage.SendTileSquare(Index, TPlayer.SpawnX, TPlayer.SpawnY, 1); int spY = TPlayer.SpawnY;
Main.tile[spX, spY].active = false;
SendTileSquare(spX, spY);
Spawn(); Spawn();
Main.tile[TPlayer.SpawnX, TPlayer.SpawnY].active = true; Main.tile[spX, spY].active = true;
NetMessage.SendTileSquare(Index, TPlayer.SpawnX, TPlayer.SpawnY, 1); SendTileSquare(spX, spY);
SendMessage("Warning! Your bed spawn point has been destroyed because of warp", Color.Red); oldSpawn = new Vector2(spX, spY);
} }
else else
{
//Checks if Player has spawn point set (Server may think player does not have spawn)
if (oldSpawn != Vector2.Zero)
{
Main.tile[(int)oldSpawn.X, (int)oldSpawn.Y].active = false;
SendTileSquare((int)oldSpawn.X, (int)oldSpawn.Y);
Spawn();
Main.tile[(int)oldSpawn.X, (int)oldSpawn.Y].active = true;
SendTileSquare((int)oldSpawn.X, (int)oldSpawn.Y);
NetMessage.syncPlayers();
}
//Player has no spawn point set
else
{ {
Spawn(); Spawn();
} }
}
Main.spawnTileX = spawnTileX; Main.spawnTileX = spawnTileX;
Main.spawnTileY = spawnTileY; Main.spawnTileY = spawnTileY;
SendData(PacketTypes.WorldInfo); SendData(PacketTypes.WorldInfo);
return true; return true;
} }