Merge pull request #352 from k0rd/general-devel

Fixing cutting off regions and odd remembered position behavior sending players to an unteleportable place
This commit is contained in:
Lucas Nicodemus 2012-02-04 15:17:54 -08:00
commit fcf573e982
3 changed files with 18 additions and 6 deletions

View file

@ -236,7 +236,7 @@ namespace TShockAPI.DB
}
for (int i = 0; i < Regions.Count; i++)
{
if (Regions[i].InArea(new Rectangle(x, y, 0, 0)) && !Regions[i].HasPermissionToBuildInRegion(ply))
if (Regions[i].InArea(x,y) && !Regions[i].HasPermissionToBuildInRegion(ply))
{
return false;
}
@ -531,6 +531,18 @@ namespace TShockAPI.DB
return false;
}
public bool InArea(int x, int y) //overloaded with x,y
{
if (x >= Area.Left && x <= Area.Right && y >= Area.Top && y <= Area.Bottom)
{
return true;
}
return false;
}
public bool HasPermissionToBuildInRegion(TSPlayer ply)
{
if (!ply.IsLoggedIn)

View file

@ -70,7 +70,7 @@ namespace TShockAPI.DB
{
try
{
using (var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0 AND IP=@1", name, IP))
using (var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0 AND IP=@1 AND WorldID=@2", name, IP, Main.worldID.ToString()))
{
if (reader.Read())
{

View file

@ -856,7 +856,7 @@ namespace TShockAPI
{
if (RememberedPos.GetLeavePos(player.Name, player.IP) != Vector2.Zero){
var pos = RememberedPos.GetLeavePos(player.Name, player.IP);
player.LastNetPosition = pos;
player.Teleport((int) pos.X, (int) pos.Y + 3);
}}