private static bool HandleTile(GetDataHandlerArgs args) { byte type = args.Data.ReadInt8(); int x = args.Data.ReadInt32(); int y = args.Data.ReadInt32(); byte tiletype = args.Data.ReadInt8(); var player = HTools.GetPlayerByID(args.Player.Index); int tilex = Math.Abs(x); int tiley = Math.Abs(y); if (player.AwaitingHouseName) { if (HTools.InAreaHouseName(x, y) == null) { args.Player.SendMessage("Tile is not in any House", Color.Yellow); } else { args.Player.SendMessage("House Name: " + HTools.InAreaHouseName(x, y), Color.Yellow); } args.Player.SendTileSquare(x, y); player.AwaitingHouseName = false; return(true); } if (args.Player.AwaitingTempPoint > 0) { args.Player.TempPoints[args.Player.AwaitingTempPoint - 1].X = x; args.Player.TempPoints[args.Player.AwaitingTempPoint - 1].Y = y; args.Player.SendMessage("Set Temp Vector2 " + args.Player.AwaitingTempPoint, Color.Yellow); args.Player.SendTileSquare(x, y); args.Player.AwaitingTempPoint = 0; return(true); } if (!args.Player.Group.HasPermission("edithouse")) { lock (HousingDistricts.HPlayers) { foreach (House house in HousingDistricts.Houses) { if (house.HouseArea.Intersects(new Rectangle(tilex, tiley, 1, 1)) && house.WorldID == Main.worldID.ToString()) { if (!HTools.OwnsHouse(args.Player.UserID.ToString(), house.Name)) { args.Player.SendTileSquare(tilex, tiley); return(true); } } } } } return(false); }
private static bool HandlePlaceObject(GetDataHandlerArgs args) { var Start = DateTime.Now; int x = args.Data.ReadInt16(); int y = args.Data.ReadInt16(); //short tiletype = args.Data.ReadInt16(); var player = HTools.GetPlayerByID(args.Player.Index); if (player.AwaitingHouseName) { if (HTools.InAreaHouseName(x, y) == null) { args.Player.SendMessage("Tile is not in any House", Color.Yellow); } else { args.Player.SendMessage("House Name: " + HTools.InAreaHouseName(x, y), Color.Yellow); } args.Player.SendTileSquare(x, y); player.AwaitingHouseName = false; return(true); } if (args.Player.AwaitingTempPoint > 0) { args.Player.TempPoints[args.Player.AwaitingTempPoint - 1].X = x; args.Player.TempPoints[args.Player.AwaitingTempPoint - 1].Y = y; if (args.Player.AwaitingTempPoint == 1) { args.Player.SendMessage("Top-left corner of protection area has been set!", Color.Yellow); } if (args.Player.AwaitingTempPoint == 2) { args.Player.SendMessage("Bottom-right corner of protection area has been set!", Color.Yellow); } args.Player.SendTileSquare(x, y); args.Player.AwaitingTempPoint = 0; return(true); } if (!args.Player.Group.HasPermission(EditHouse)) { //lock (HousingDistricts.HPlayers) { var rect = new Rectangle(x, y, 1, 1); return(House.HandlerAction((house) => { if (HousingDistricts.Timeout(Start)) { return false; } if (house != null && house.HouseArea.Intersects(rect)) { if (!HTools.OwnsHouse(args.Player.User, house)) { args.Player.SendTileSquare(x, y); return true; } } return false; })); } } return(false); }