1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-07 13:48:00 -05:00
IW4M-Admin/Admin/Player.cs
RaidMax ef80a565cb some of these are meant for previous commit
assigned groups colors!
!find now reports the user's group
ban appeal listed by _website
group help commands so not to clog up the chat
updated stats calculation
speed up rcon output 0.8 -> 0.56
fixed logfile not flushing
2015-03-11 20:25:14 -05:00

168 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace IW4MAdmin
{
class Stats
{
public Stats(int K, int D, double kdr, double skill)
{
Kills = K;
Deaths = D;
KDR = Math.Round(kdr,2);
Skill = Math.Round(skill,2);
}
public void updateKDR()
{
KDR = Math.Round((double)((double)Kills / (double)Deaths), 2);
}
public void updateSkill(double enemySkill)
{
Skill = (Math.Round((double)Kills * (((double)Kills / (double)Deaths) / 10), 2));
Skill = Math.Round(Math.Log(Skill) * (enemySkill / 2) + (Math.Log(Deaths + 1) * 0.3) * 12, 2);
}
public int Kills;
public int Deaths;
public double KDR;
public double Skill;
}
class Player
{
public enum Permission
{
Banned = -1,
User = 0,
Moderator = 1,
Administrator = 2,
SeniorAdmin = 3,
Owner = 4,
Creator = 5,
}
public Player(string n, string id, int num, int l)
{
Name = n;
npID = id;
Number = num;
Level = (Player.Permission)l;
LastOffense = null;
Connections = 0;
Warnings = 0;
}
public Player(string n, string id, int num, Player.Permission l, int cind, String lo, int con)
{
Name = n;
npID = id;
Number = num;
Level = l;
dbID = cind;
LastOffense = lo;
Connections = con + 1;
Warnings = 0;
}
public String getName()
{
return Name;
}
public String getID()
{
return npID;
}
public int getDBID()
{
return dbID;
}
public int getClientNum()
{
return Number;
}
public Player.Permission getLevel()
{
return Level;
}
public int getConnections()
{
return Connections;
}
public String getLastO()
{
return LastOffense;
}
public void updateName(String n)
{
Name = n;
}
// BECAUSE IT NEEDS TO BE CHANGED!
public void setLevel(Player.Permission Perm)
{
Level = Perm;
}
public void Tell(String Message)
{
lastEvent.Owner.Tell(Message, this);
}
public void Warn(String Message)
{
lastEvent.Owner.Broadcast(Message);
}
public void Kick(String Message)
{
lastEvent.Owner.Kick(Message, this);
}
public void tempBan(String Message)
{
lastEvent.Owner.tempBan(Message, this);
}
public void Ban(String Message, Player Sender)
{
lastEvent.Owner.Ban(Message, this, Sender);
}
//should be moved to utils
public Player findPlayer(String Nme)
{
foreach (Player P in lastEvent.Owner.getPlayers())
{
if (P == null)
continue;
if (P.getName().ToLower().Contains(Name.ToLower()))
return P;
}
return null;
}
private string Name;
private string npID;
private int Number;
private Player.Permission Level;
private int dbID;
private int Connections;
public Event lastEvent;
public String LastOffense;
public int Warnings;
public Stats stats;
}
}