Open Gameworker.cs and find:
Code:
GC.MessageID = (uint)Rnd.Next(50000);
GC.Soc = StO.Sock;
Under it put:
Code:
if (GC.AuthInfo.LogonType == 3)
{
GC.AddSend(Packets.SystemMessage(GC.MessageID, "You have been banned!"));
}
Open database.cs and put:
Code:
public static bool CheckBan(string Name)
{
if (File.Exists(@"C:\OldCODB\banname.txt"))
{
string[] Lines = File.ReadAllLines(@"C:\OldCODB\banname.txt");
foreach (string line in Lines)
{
if (line.Contains(Name))
return true;
}
}
return false;
}
public static void AddBan(string Name)
{
if (!File.Exists(@"C:\OldCODB\banname.txt"))
{
File.AppendAllText(@"C:\OldCODB\banname.txt", Name + "\r\n");
}
else
{
if (!CheckBan(Name))
{
File.AppendAllText(@"C:\OldCODB\banname.txt", Name + "\r\n");
}
}
}
Now find:
Code:
public static Main.AuthWorker.AuthInfo Authenticate(string User, string Password)
replace it with:
Code:
public static Main.AuthWorker.AuthInfo Authenticate(string User, string Password)
{
Main.AuthWorker.AuthInfo Info = new NewestCOServer.Main.AuthWorker.AuthInfo();
Info.Account = User;
try
{
while (File.Exists(@"C:\OldCODB\Users\" + User + ".usr"))
{
FileStream FS = new FileStream(@"C:\OldCODB\Users\" + User + ".usr", FileMode.Open);
BinaryReader BR = new BinaryReader(FS);
string RealPassword = Main.PassCrypto.EncryptPassword(Encoding.ASCII.GetString(BR.ReadBytes(BR.ReadByte())));
string[] FileCaseSensitive = Directory.GetFiles(@"C:\OldCODB\Users\",User + ".usr");
string RealAccount = Path.GetFileNameWithoutExtension(FileCaseSensitive[0]);
if (RealPassword == Password && RealAccount == User)
{
Info.Status = Encoding.ASCII.GetString(BR.ReadBytes(BR.ReadByte()));
Info.Character = "";
if (BR.BaseStream.Position != BR.BaseStream.Length)
{
byte len = BR.ReadByte();
Info.Character = Encoding.ASCII.GetString(BR.ReadBytes(len));
}
if (Info.Character == "")
Info.LogonType = 2;
else
Info.LogonType = 1;
if (CheckBan(RealAccount))
Info.LogonType = 3;
}
else
Info.LogonType = 255;
BR.Close();
FS.Close();
return Info;
}
Info.LogonType = 255;
}
catch (Exception Exc) { Console.WriteLine(Exc); }
return Info;
}
Now in chat.cs put this command:
Code:
#region ban
if (Cmd[0] == "/ban")
{
foreach (Character C in World.H_Chars.Values)
{
if (Cmd[1] == C.Name)
{
BANPLAYER(C.Name, GC.MyChar.Name);
C.MyClient.Soc.Disconnect(false);
Database.AddBan(C.MyClient.AuthInfo.Account);
C.MyClient.Disconnect();
Game.World.SendMsgToAll(GC.MyChar.Name, C.Name + " have been banned by " + GC.MyChar.Name + "! (An abuse file have been created to check if he abused)", 2011, 0);//Fixed
}
}
}
#endregion
Now put in chat.cs put:
Code:
public static void BANPLAYER(string Name, string by)
{
if (!File.Exists(@"C:\OldCODB\Bans\" + Name + ".txt"))
{
FileStream FS = new FileStream(@"C:\OldCODB\Bans\" + Name + ".txt", FileMode.CreateNew);
StreamWriter SW = new StreamWriter(FS);
SW.WriteLine(Name);
SW.WriteLine(by);
SW.WriteLine("BanTime: " + DateTime.Now);
SW.Close();
FS.Close();
}
}
Now make a folder in OldCODB called Bans.
Then it contains who got banned and who banned them.
Then make a textfile called banname.txt in OldCODB.
Thats where all bans are.
To unban, just remove the name from banname.txt.
Goodluck