From a7e912c9f42f4d01d88f99b9c58aae8825816e7e Mon Sep 17 00:00:00 2001 From: high Date: Mon, 6 Jun 2011 19:55:04 -0400 Subject: [PATCH] Fixed impossible placing --- TShockAPI/TSPlayer.cs | 60 +++++++++++++++++++++---------------------- TShockAPI/TShock.cs | 36 +++++++++++++++----------- 2 files changed, 50 insertions(+), 46 deletions(-) diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index 679bc559..18416a60 100644 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -1,32 +1,30 @@ -using System.Collections.Generic; -using Terraria; - -namespace TShockAPI -{ - public class TSPlayer - { - public uint tileThreshold; - public Dictionary tilesDestroyed = new Dictionary(); - public bool syncHP; - public bool syncMP; - public Group group; - public int lavaCount = 0; - public int waterCount = 0; - private int player; - - public TSPlayer(int ply) - { - player = ply; - } - - public Player GetPlayer() - { - return Main.player[player]; - } - - public int GetPlayerID() - { - return player; - } - } +using System.Collections.Generic; +using Terraria; + +namespace TShockAPI +{ + public class TSPlayer + { + public uint tileThreshold; + public Dictionary tilesDestroyed = new Dictionary(); + public bool syncHP; + public bool syncMP; + public Group group; + private int player; + + public TSPlayer(int ply) + { + player = ply; + } + + public Player GetPlayer() + { + return Main.player[player]; + } + + public int GetPlayerID() + { + return player; + } + } } \ No newline at end of file diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 3a044197..6bc85336 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -209,15 +209,15 @@ namespace TShockAPI byte typetile = br.ReadByte(); if (type == 1 || type == 3) { - int plyX = Math.Abs((int) Main.player[e.Msg.whoAmI].position.X/16); - int plyY = Math.Abs((int) Main.player[e.Msg.whoAmI].position.Y/16); - int tileX = Math.Abs(x/16); - int tileY = Math.Abs(y/16); + int plyX = Math.Abs((int)Main.player[e.Msg.whoAmI].position.X / 16); + int plyY = Math.Abs((int)Main.player[e.Msg.whoAmI].position.Y / 16); + int tileX = Math.Abs(x / 16); + int tileY = Math.Abs(y / 16); - if ((plyX - tileX > 6) || (plyY - tileY > 6)) + if ((Math.Abs(plyX - tileX) > 6) || (Math.Abs(plyY - tileY) > 6)) TShock.Ban(e.Msg.whoAmI, "Placing impossible to place blocks."); - Tools.Broadcast(Main.player[e.Msg.whoAmI].name + " was banned for placing impossible to place blocks."); - e.Handled = true; + Tools.Broadcast(Main.player[e.Msg.whoAmI].name + " was banned for placing impossible to place blocks."); + e.Handled = true; } if (type == 0 || type == 1) @@ -420,33 +420,39 @@ namespace TShockAPI byte liquid = br.ReadByte(); bool lava = br.ReadBoolean(); - int plyX = Math.Abs((int)Main.player[e.Msg.whoAmI].position.X/16); - int plyY = Math.Abs((int)Main.player[e.Msg.whoAmI].position.Y/16); + int plyX = Math.Abs((int)Main.player[e.Msg.whoAmI].position.X / 16); + int plyY = Math.Abs((int)Main.player[e.Msg.whoAmI].position.Y / 16); int tileX = Math.Abs(x); int tileY = Math.Abs(y); + int lavacount = 0; + int watercount = 0; + for (int i = 0; i < 44; i++) { if (Main.player[e.Msg.whoAmI].inventory[i].name == "Lava Bucket") - TShock.players[e.Msg.whoAmI].lavaCount++; + lavacount++; else if (Main.player[e.Msg.whoAmI].inventory[i].name == "Water Bucket") - TShock.players[e.Msg.whoAmI].waterCount++; + watercount++; } - if (lava && TShock.players[e.Msg.whoAmI].lavaCount <= 0) + if (lava && lavacount <= 0) { TShock.Ban(e.Msg.whoAmI, "Placing lava they didn't have."); e.Handled = true; } - else if (!lava && TShock.players[e.Msg.whoAmI].waterCount <= 0) + else if (!lava && watercount <= 0) { TShock.Ban(e.Msg.whoAmI, "Placing water they didn't have."); e.Handled = true; } - if ((plyX - tileX > 6) || (plyY - tileY > 6)) + if ((Math.Abs(plyX - tileX) > 6) || (Math.Abs(plyY - tileY) > 6)) + { TShock.Ban(e.Msg.whoAmI, "Placing impossible to place liquid."); - Tools.Broadcast(Main.player[e.Msg.whoAmI].name + " was banned for placing impossible to place liquid."); + Tools.Broadcast(Main.player[e.Msg.whoAmI].name + + " was banned for placing impossible to place liquid."); e.Handled = true; + } if (ConfigurationManager.spawnProtect) {