improvements
This commit is contained in:
parent
a2bd4a91c1
commit
46c6e66401
|
@ -25,19 +25,29 @@ public class CommandHandler
|
|||
player.Message(message);
|
||||
break;
|
||||
}
|
||||
case ActionType.Stats:
|
||||
{
|
||||
var playerKills = player.Kills;
|
||||
var playerDeaths = player.Deaths;
|
||||
var playerKd = playerDeaths == 0 ? playerKills : (double)playerKills / playerDeaths;
|
||||
var formattedPlayerKd = playerKd.ToString("0.00");
|
||||
|
||||
player.Message($"Kills: {playerKills}<br>Deaths: {playerDeaths}<br>K/D: {formattedPlayerKd}");
|
||||
break;
|
||||
}
|
||||
case ActionType.Kill:
|
||||
{
|
||||
var target = cmd.Message.Split(" ")[1..].Aggregate((a, b) => a + " " + b);
|
||||
var targetPlayer = player.GameServer.AllPlayers.ToList().FirstOrDefault(p => p.Name.ToLower().Contains(target.ToLower()) || p.SteamID.ToString().Contains(target));
|
||||
|
||||
if (targetPlayer == null)
|
||||
if (target == null)
|
||||
{
|
||||
player.Message("Player not found!");
|
||||
break;
|
||||
}
|
||||
|
||||
targetPlayer.Kill();
|
||||
player.Message("Killed player!");
|
||||
targetPlayer?.Kill();
|
||||
player.Message($"Killed {targetPlayer?.Name}");
|
||||
break;
|
||||
}
|
||||
case ActionType.Start:
|
||||
|
|
22
Commands.cs
22
Commands.cs
|
@ -39,6 +39,28 @@ public class HelpCommand : ApiCommand
|
|||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class StatsCommand : ApiCommand
|
||||
{
|
||||
public StatsCommand()
|
||||
{
|
||||
CommandString = "/stats";
|
||||
HelpString = "/stats";
|
||||
Aliases = new string[] { "/s" };
|
||||
AdminOnly = false;
|
||||
}
|
||||
|
||||
public override Command ChatCommand(MyPlayer player, ChatChannel channel, string msg)
|
||||
{
|
||||
return new Command()
|
||||
{
|
||||
Action = ActionType.Stats,
|
||||
Executor = player.Name,
|
||||
Error = false,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class KillCommand : ApiCommand
|
||||
{
|
||||
public KillCommand()
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
public enum ActionType
|
||||
{
|
||||
Heal,
|
||||
Stats,
|
||||
Kill,
|
||||
Kick,
|
||||
Ban,
|
||||
|
|
17
Program.cs
17
Program.cs
|
@ -28,6 +28,7 @@ class MyGameServer : GameServer<MyPlayer>
|
|||
public static List<ApiCommand> ApiCommands = new()
|
||||
{
|
||||
new HelpCommand(),
|
||||
new StatsCommand(),
|
||||
new KillCommand(),
|
||||
new StartCommand()
|
||||
};
|
||||
|
@ -59,6 +60,22 @@ class MyGameServer : GameServer<MyPlayer>
|
|||
{
|
||||
await Console.Out.WriteLineAsync("Disconnected: " + player);
|
||||
}
|
||||
|
||||
public override async Task OnAPlayerDownedAnotherPlayer(OnPlayerKillArguments<MyPlayer> args)
|
||||
{
|
||||
if (args.Killer == args.Victim)
|
||||
{
|
||||
args.Victim.Kill();
|
||||
args.Victim.Deaths++;
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Victim.Kill();
|
||||
args.Killer.SetHP(100);
|
||||
args.Killer.Kills++;
|
||||
args.Victim.Deaths++;
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task<bool> OnPlayerTypedMessage(MyPlayer player, ChatChannel channel, string msg)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue