Add more annoy commands, because MarioE loves them so much ;)

This commit is contained in:
Zack Piispanen 2013-10-03 23:26:53 -04:00
parent 9d0b6d38d9
commit 9e59de4f5a
3 changed files with 84 additions and 2 deletions

View file

@ -230,6 +230,8 @@ namespace TShockAPI
add(Permissions.whisper, Whisper, "whisper", "w", "tell");
add(Permissions.whisper, Reply, "reply", "r");
add(Permissions.annoy, Annoy, "annoy");
add(Permissions.annoy, Confuse, "confuse");
add(Permissions.annoy, Rocket, "rocket");
add(Permissions.kill, Kill, "kill");
add(Permissions.godmode, ToggleGodMode, "godmode");
add(Permissions.butcher, Butcher, "butcher");
@ -3558,6 +3560,47 @@ namespace TShockAPI
}
}
private static void Confuse(CommandArgs args)
{
if (args.Parameters.Count != 1)
{
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /confuse <player>");
return;
}
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name));
else
{
var ply = players[0];
ply.Confused = !ply.Confused;
args.Player.SendSuccessMessage("{0} is {1} confused.", ply.Name, ply.Confused ? "now" : "no longer");
}
}
private static void Rocket(CommandArgs args)
{
if (args.Parameters.Count != 1)
{
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /rocket <player>");
return;
}
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count == 0)
args.Player.SendErrorMessage("Invalid player!");
else if (players.Count > 1)
TShock.Utils.SendMultipleMatchError(args.Player, players.Select(p => p.Name));
else
{
var ply = players[0];
ply.TPlayer.velocity.Y = -50;
TSPlayer.All.SendData(PacketTypes.PlayerUpdate, "", ply.Index);
args.Player.SendSuccessMessage("Rocketed {0}.", ply.Name);
}
}
private static void Aliases(CommandArgs args)
{
if (args.Parameters.Count < 1)

View file

@ -2309,8 +2309,42 @@ namespace TShockAPI
{
args.TPlayer.direction = 1;
}
NetMessage.SendData((int) PacketTypes.PlayerUpdate, -1, args.Player.Index, "", args.Player.Index);
if (args.Player.Confused && TShock.Config.ServerSideCharacter && args.Player.IsLoggedIn)
{
if (args.TPlayer.controlUp)
{
args.TPlayer.controlDown = true;
args.TPlayer.controlUp = false;
}
else if (args.TPlayer.controlDown)
{
args.TPlayer.controlDown = false;
args.TPlayer.controlUp = true;
}
if (args.TPlayer.controlLeft)
{
args.TPlayer.controlRight = true;
args.TPlayer.controlLeft = false;
}
else if (args.TPlayer.controlRight)
{
args.TPlayer.controlRight = false;
args.TPlayer.controlLeft = true;
}
args.TPlayer.UpdatePlayer(args.TPlayer.whoAmi);
NetMessage.SendData((int)PacketTypes.PlayerUpdate, -1, -1, "", args.Player.Index);
return true;
}
NetMessage.SendData((int)PacketTypes.PlayerUpdate, -1, args.Player.Index, "", args.Player.Index);
return true;
}

View file

@ -293,7 +293,12 @@ namespace TShockAPI
/// </summary>
public bool GodMode = false;
/// <summary>
/// <summary>
/// Players controls are inverted if using SSC
/// </summary>
public bool Confused = false;
/// <summary>
/// Whether the player is a real, human, player on the server.
/// </summary>
public bool RealPlayer