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;
}
@ -530,6 +530,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)
{
@ -598,4 +610,4 @@ namespace TShockAPI.DB
return AllowedGroups.Remove(groupName);
}
}
}
}

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

@ -854,9 +854,9 @@ namespace TShockAPI
if (Config.RememberLeavePos)
{
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);
player.LastNetPosition = pos;
player.Teleport((int) pos.X, (int) pos.Y + 3);
}}
@ -1433,4 +1433,4 @@ namespace TShockAPI
Utils.HashAlgo = file.HashAlgorithm;
}
}
}
}