Merge remote branch 'origin' into 1.2_terraria
This commit is contained in:
commit
954b5f8b4c
4 changed files with 45 additions and 64 deletions
|
|
@ -482,7 +482,7 @@ namespace TShockAPI
|
||||||
if (TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP) != Vector2.Zero)
|
if (TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP) != Vector2.Zero)
|
||||||
{
|
{
|
||||||
Vector2 pos = TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP);
|
Vector2 pos = TShock.RememberedPos.GetLeavePos(args.Player.Name, args.Player.IP);
|
||||||
args.Player.Teleport((int)pos.X, (int)pos.Y + 3);
|
args.Player.Teleport((int)pos.X*16, (int)pos.Y *16 + 48);
|
||||||
}
|
}
|
||||||
args.Player.LoginHarassed = false;
|
args.Player.LoginHarassed = false;
|
||||||
|
|
||||||
|
|
@ -1633,7 +1633,7 @@ namespace TShockAPI
|
||||||
|
|
||||||
private static void Spawn(CommandArgs args)
|
private static void Spawn(CommandArgs args)
|
||||||
{
|
{
|
||||||
if (args.Player.Teleport(Main.spawnTileX, Main.spawnTileY))
|
if (args.Player.Teleport(Main.spawnTileX*16, Main.spawnTileY*16))
|
||||||
args.Player.SendSuccessMessage("Teleported to the map's spawnpoint.");
|
args.Player.SendSuccessMessage("Teleported to the map's spawnpoint.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1645,29 +1645,39 @@ namespace TShockAPI
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string plStr = String.Join(" ", args.Parameters);
|
if (args.Parameters.Count < 2)
|
||||||
var players = TShock.Utils.FindPlayer(plStr);
|
|
||||||
if (players.Count == 0)
|
|
||||||
args.Player.SendErrorMessage("Invalid player!");
|
|
||||||
else if (players.Count > 1)
|
|
||||||
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name));
|
|
||||||
else if (!players[0].TPAllow && !args.Player.Group.HasPermission(Permissions.tpall))
|
|
||||||
{
|
{
|
||||||
var plr = players[0];
|
string plStr = String.Join(" ", args.Parameters);
|
||||||
args.Player.SendErrorMessage(plr.Name + " has prevented users from teleporting to them.");
|
var players = TShock.Utils.FindPlayer(plStr);
|
||||||
plr.SendInfoMessage(args.Player.Name + " attempted to teleport to you.");
|
if (players.Count == 0)
|
||||||
|
args.Player.SendErrorMessage("Invalid player!");
|
||||||
|
else if (players.Count > 1)
|
||||||
|
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name));
|
||||||
|
else if (!players[0].TPAllow && !args.Player.Group.HasPermission(Permissions.tpall))
|
||||||
|
{
|
||||||
|
var plr = players[0];
|
||||||
|
args.Player.SendErrorMessage(plr.Name + " has prevented users from teleporting to them.");
|
||||||
|
plr.SendInfoMessage(args.Player.Name + " attempted to teleport to you.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var plr = players[0];
|
||||||
|
if (args.Player.Teleport(plr.TileX*16, plr.TileY*16 + 48))
|
||||||
|
{
|
||||||
|
args.Player.SendSuccessMessage(string.Format("Teleported to {0}.", plr.Name));
|
||||||
|
if (!args.Player.Group.HasPermission(Permissions.tphide))
|
||||||
|
plr.SendInfoMessage(args.Player.Name + " teleported to you.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var plr = players[0];
|
float x = float.Parse(args.Parameters[0]);
|
||||||
if (args.Player.Teleport(plr.TileX, plr.TileY + 3))
|
float y = float.Parse(args.Parameters[1]);
|
||||||
{
|
args.Player.Teleport(x, y);
|
||||||
args.Player.SendSuccessMessage(string.Format("Teleported to {0}.", plr.Name));
|
args.Player.SendSuccessMessage("Teleported!");
|
||||||
if (!args.Player.Group.HasPermission(Permissions.tphide))
|
|
||||||
plr.SendInfoMessage(args.Player.Name + " teleported to you.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void TPHere(CommandArgs args)
|
private static void TPHere(CommandArgs args)
|
||||||
{
|
{
|
||||||
|
|
@ -1686,7 +1696,7 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
if (Main.player[i].active && (Main.player[i] != args.TPlayer))
|
if (Main.player[i].active && (Main.player[i] != args.TPlayer))
|
||||||
{
|
{
|
||||||
if (TShock.Players[i].Teleport(args.Player.TileX, args.Player.TileY + 3))
|
if (TShock.Players[i].Teleport(args.Player.TileX*16, args.Player.TileY*16 + 48))
|
||||||
TShock.Players[i].SendSuccessMessage(string.Format("You were teleported to {0}.", args.Player.Name) + ".");
|
TShock.Players[i].SendSuccessMessage(string.Format("You were teleported to {0}.", args.Player.Name) + ".");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1705,7 +1715,7 @@ namespace TShockAPI
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var plr = players[0];
|
var plr = players[0];
|
||||||
if (plr.Teleport(args.Player.TileX, args.Player.TileY + 3))
|
if (plr.Teleport(args.Player.TileX*16, args.Player.TileY*16 + 48))
|
||||||
{
|
{
|
||||||
plr.SendInfoMessage(string.Format("You were teleported to {0}.", args.Player.Name));
|
plr.SendInfoMessage(string.Format("You were teleported to {0}.", args.Player.Name));
|
||||||
args.Player.SendSuccessMessage(string.Format("You brought {0} here.", plr.Name));
|
args.Player.SendSuccessMessage(string.Format("You brought {0} here.", plr.Name));
|
||||||
|
|
@ -1849,7 +1859,7 @@ namespace TShockAPI
|
||||||
var plr = foundplr[0];
|
var plr = foundplr[0];
|
||||||
if (warp.WarpPos != Vector2.Zero)
|
if (warp.WarpPos != Vector2.Zero)
|
||||||
{
|
{
|
||||||
if (plr.Teleport((int)warp.WarpPos.X, (int)warp.WarpPos.Y + 3))
|
if (plr.Teleport((int)warp.WarpPos.X*16, (int)warp.WarpPos.Y*16 + 48))
|
||||||
{
|
{
|
||||||
plr.SendSuccessMessage(string.Format("{0} warped you to {1}.", args.Player.Name, warpName));
|
plr.SendSuccessMessage(string.Format("{0} warped you to {1}.", args.Player.Name, warpName));
|
||||||
args.Player.SendSuccessMessage(string.Format("You warped {0} to {1}.", plr.Name, warpName));
|
args.Player.SendSuccessMessage(string.Format("You warped {0} to {1}.", plr.Name, warpName));
|
||||||
|
|
@ -1867,7 +1877,7 @@ namespace TShockAPI
|
||||||
var warp = TShock.Warps.FindWarp(warpName);
|
var warp = TShock.Warps.FindWarp(warpName);
|
||||||
if (warp.WarpPos != Vector2.Zero)
|
if (warp.WarpPos != Vector2.Zero)
|
||||||
{
|
{
|
||||||
if (args.Player.Teleport((int)warp.WarpPos.X, (int)warp.WarpPos.Y + 3))
|
if (args.Player.Teleport((int)warp.WarpPos.X*16, (int)warp.WarpPos.Y*16 + 48))
|
||||||
args.Player.SendSuccessMessage("Warped to " + warpName + ".");
|
args.Player.SendSuccessMessage("Warped to " + warpName + ".");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -3025,7 +3035,7 @@ namespace TShockAPI
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
args.Player.Teleport(region.Area.Center.X, region.Area.Center.Y + 3);
|
args.Player.Teleport(region.Area.Center.X*16, region.Area.Center.Y*16 + 48);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2037,8 +2037,8 @@ namespace TShockAPI
|
||||||
args.Player.SendMessage("PvP is forced! Enable PvP or else you can't do anything!",
|
args.Player.SendMessage("PvP is forced! Enable PvP or else you can't do anything!",
|
||||||
Color.Red);
|
Color.Red);
|
||||||
}
|
}
|
||||||
int lastTileX = (int) (args.Player.LastNetPosition.X/16f);
|
var lastTileX = args.Player.LastNetPosition.X;
|
||||||
int lastTileY = (int) (args.Player.LastNetPosition.Y/16f);
|
var lastTileY = args.Player.LastNetPosition.Y;
|
||||||
if (!args.Player.Teleport(lastTileX, lastTileY))
|
if (!args.Player.Teleport(lastTileX, lastTileY))
|
||||||
{
|
{
|
||||||
args.Player.Spawn();
|
args.Player.Spawn();
|
||||||
|
|
@ -2057,9 +2057,9 @@ namespace TShockAPI
|
||||||
TSCheckNoclip(pos, args.TPlayer.width, args.TPlayer.height) && !TShock.Config.IgnoreNoClip
|
TSCheckNoclip(pos, args.TPlayer.width, args.TPlayer.height) && !TShock.Config.IgnoreNoClip
|
||||||
&& !args.TPlayer.tongued)
|
&& !args.TPlayer.tongued)
|
||||||
{
|
{
|
||||||
int lastTileX = (int)(args.Player.LastNetPosition.X / 16f);
|
var lastTileX = args.Player.LastNetPosition.X;
|
||||||
int lastTileY = (int)(args.Player.LastNetPosition.Y / 16f);
|
var lastTileY = args.Player.LastNetPosition.Y;
|
||||||
if (!args.Player.Teleport(lastTileX, lastTileY + 3))
|
if (!args.Player.Teleport(lastTileX, lastTileY + 48))
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("You got stuck in a solid object, Sent to spawn point.");
|
args.Player.SendErrorMessage("You got stuck in a solid object, Sent to spawn point.");
|
||||||
args.Player.Spawn();
|
args.Player.Spawn();
|
||||||
|
|
|
||||||
|
|
@ -505,38 +505,10 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Teleport(int tilex, int tiley)
|
public bool Teleport(float x, float y)
|
||||||
{
|
{
|
||||||
InitSpawn = false;
|
TPlayer.Teleport(new Vector2(x, y), 1);
|
||||||
|
NetMessage.SendData(65, -1, -1, "", 0, (float)TPlayer.whoAmi, x, y, 1);
|
||||||
SendWorldInfo(tilex, tiley, true);
|
|
||||||
|
|
||||||
//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)
|
|
||||||
//Should we properly send sections so that clients don't get tiles twice?
|
|
||||||
SendTileSquare(tilex, tiley, 150);
|
|
||||||
|
|
||||||
/* //We shouldn't need this section anymore -it can prevent otherwise acceptable teleportation under some circumstances.
|
|
||||||
|
|
||||||
if (!SendTileSquare(tilex, tiley, 150))
|
|
||||||
{
|
|
||||||
InitSpawn = true;
|
|
||||||
SendWorldInfo(Main.spawnTileX, Main.spawnTileY, false);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
Spawn(-1, -1);
|
|
||||||
|
|
||||||
SendWorldInfo(Main.spawnTileX, Main.spawnTileY, false);
|
|
||||||
|
|
||||||
TPlayer.position.X = (float)(tilex * 16 + 8 - TPlayer.width /2);
|
|
||||||
TPlayer.position.Y = (float)(tiley * 16 - TPlayer.height);
|
|
||||||
//We need to send the tile data again to prevent clients from thinking they *really* destroyed blocks just now.
|
|
||||||
|
|
||||||
SendTileSquare(tilex, tiley, 10);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -639,12 +639,11 @@ namespace TShockAPI
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int count = 0;
|
|
||||||
foreach (TSPlayer player in Players)
|
foreach (TSPlayer player in Players)
|
||||||
{
|
{
|
||||||
if (player != null && player.Active)
|
if (player != null && player.Active)
|
||||||
{
|
{
|
||||||
count++;
|
|
||||||
if (player.TilesDestroyed != null)
|
if (player.TilesDestroyed != null)
|
||||||
{
|
{
|
||||||
if (player.TileKillThreshold >= Config.TileKillThreshold)
|
if (player.TileKillThreshold >= Config.TileKillThreshold)
|
||||||
|
|
@ -1073,7 +1072,7 @@ namespace TShockAPI
|
||||||
if (RememberedPos.GetLeavePos(player.Name, player.IP) != Vector2.Zero){
|
if (RememberedPos.GetLeavePos(player.Name, player.IP) != Vector2.Zero){
|
||||||
var pos = RememberedPos.GetLeavePos(player.Name, player.IP);
|
var pos = RememberedPos.GetLeavePos(player.Name, player.IP);
|
||||||
|
|
||||||
player.Teleport((int) pos.X, (int) pos.Y + 3);
|
player.Teleport(pos.X*16, pos.Y*16 + 48);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue