Fixed issue where players with > 100 MP/HP would get flagged as their max didn't get synced.

This commit is contained in:
Deathmax 2011-06-03 22:38:13 +08:00
parent cd539e0e7e
commit 16e5cfe342
2 changed files with 23 additions and 11 deletions

View file

@ -11,6 +11,8 @@ namespace TShockAPI
private int player; private int player;
private bool admin; private bool admin;
private bool adminSet; private bool adminSet;
public bool syncHP = false;
public bool syncMP = false;
public TSPlayer(int ply) public TSPlayer(int ply)
{ {

View file

@ -199,10 +199,13 @@ namespace TShockAPI
life = br.ReadInt16(); life = br.ReadInt16();
maxLife = br.ReadInt16(); maxLife = br.ReadInt16();
} }
if (maxLife > Main.player[ply].statLifeMax + 20 || life > maxLife) if (players[ply].syncHP)
{ {
Tools.HandleCheater(ply); if (maxLife > Main.player[ply].statLifeMax + 20 || life > maxLife)
Tools.HandleCheater(ply);
} }
else
players[ply].syncHP = true;
} }
else if (e.MsgID == 0x2a) else if (e.MsgID == 0x2a)
{ {
@ -214,10 +217,13 @@ namespace TShockAPI
life = br.ReadInt16(); life = br.ReadInt16();
maxLife = br.ReadInt16(); maxLife = br.ReadInt16();
} }
if (maxLife > Main.player[ply].statLifeMax + 20 || life > maxLife) if (players[ply].syncMP)
{ {
Tools.HandleCheater(ply); if (maxLife > Main.player[ply].statLifeMax + 20 || life > maxLife)
Tools.HandleCheater(ply);
} }
else
players[ply].syncMP = true;
} }
else if (e.MsgID == 0x19) else if (e.MsgID == 0x19)
{ {
@ -257,13 +263,17 @@ namespace TShockAPI
} }
if (type == 29 || type == 28) if (type == 29 || type == 28)
{ {
if (ConfigurationManager.kickTnt || ConfigurationManager.banTnt) if (!players[e.Msg.whoAmI].IsAdmin())
{ {
int i = e.Msg.whoAmI; if (ConfigurationManager.kickTnt || ConfigurationManager.banTnt)
if (ConfigurationManager.banTnt) {
FileTools.WriteGrief((int)i); int i = e.Msg.whoAmI;
Tools.Kick((int)i, "Explosives was thrown."); if (ConfigurationManager.banTnt)
Tools.Broadcast(Main.player[i].name + " was " + (ConfigurationManager.banBoom ? "banned" : "kicked") + " for throwing an explosive device."); FileTools.WriteGrief((int)i);
Tools.Kick((int)i, "Explosives was thrown.");
Tools.Broadcast(Main.player[i].name + " was " + (ConfigurationManager.banBoom ? "banned" : "kicked") + " for throwing an explosive device.");
e.Handled = true;
}
} }
} }
} }
@ -326,7 +336,7 @@ namespace TShockAPI
} }
else if (FileTools.Checkgrief(ip)) else if (FileTools.Checkgrief(ip))
{ {
Tools.Kick(ply, "You were flagged for griefing (either kill tile abuse or explosives)."); Tools.Kick(ply, "You were flagged for griefing.");
} }
if (!FileTools.OnWhitelist(ip)) if (!FileTools.OnWhitelist(ip))
{ {