Everyone Good Luck on making your private servers.
Code:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO;
namespace NewestCOServer.PacketHandling
{
public class Chat
{
public static void Handle(Main.GameClient GC, byte[] Data)
{
MemoryStream MS = new MemoryStream(Data);
BinaryReader BR = new BinaryReader(MS);
BR.ReadBytes(8);
ushort ChatType = (ushort)BR.ReadUInt32();
BR.ReadBytes(13);
string From = Encoding.ASCII.GetString(BR.ReadBytes(BR.ReadByte()));
string To = Encoding.ASCII.GetString(BR.ReadBytes(BR.ReadByte()));
BR.ReadByte();
string Message = Encoding.ASCII.GetString(BR.ReadBytes(BR.ReadByte()));
BR.Close();
MS.Close();
if (ChatType == 2104 && GC.MyChar.MyShop != null)
GC.MyChar.MyShop.Hawk = Message;
try
{
if (Message[0] == '/')
{
string[] Cmd = Message.Split(' ');
#region Player Commands
#region Disconnect
if (Cmd[0].ToLower() == "/disconnect" || Cmd[0].ToLower() == "/dc")
{
GC.Disconnect();
return;
}
#endregion
#region Scroll
if (Cmd[0].ToLower() == "/scroll")
{
if (Cmd[1].ToLower() == "twincity" || Cmd[1].ToLower() == "tc")
GC.MyChar.Teleport(1002, 428, 378);
if (GC.MyChar.VipLevel >= 1 || GC.GM || GC.PM)
{
if (Cmd[1].ToLower() == "pheonixcastle" || Cmd[1].ToLower() == "pc")
GC.MyChar.Teleport(1011, 191, 271);
if (Cmd[1].ToLower() == "apemountain" || Cmd[1].ToLower() == "am")
GC.MyChar.Teleport(1020, 567, 568);
if (Cmd[1].ToLower() == "desertcity" || Cmd[1].ToLower() == "dc")
GC.MyChar.Teleport(1000, 499, 650);
if (Cmd[1].ToLower() == "birdisland" || Cmd[1].ToLower() == "bi")
GC.MyChar.Teleport(1015, 717, 576);
if (Cmd[1].ToLower() == "market" || Cmd[1].ToLower() == "ma")
GC.MyChar.Teleport(1036, 211, 196);
if (Cmd[1].ToLower() == "vip")
GC.MyChar.Teleport(1511, 051, 066);
}
if (GC.GM || GC.PM)
{
if (Cmd[1].ToLower() == "stonecity" || Cmd[1].ToLower() == "sc")
GC.MyChar.Teleport(1077, 435, 337);
if (Cmd[1].ToLower() == "house" || Cmd[1].ToLower() == "home")
GC.MyChar.Teleport(1099, 44, 40);
if (Cmd[1].ToLower() == "moon")
GC.MyChar.Teleport(1100, 135, 103);
if (Cmd[1].ToLower() == "ice")
GC.MyChar.Teleport(1615, 030, 029);
if (Cmd[1].ToLower() == "sky")
GC.MyChar.Teleport(1040, 392, 565);
if (Cmd[1].ToLower() == "birthvillage" || Cmd[1].ToLower() == "bv")
GC.MyChar.Teleport(1010, 089, 053);
if (Cmd[1].ToLower() == "pkarena" || Cmd[1].ToLower() == "pka")
GC.MyChar.Teleport(1005, 051, 051);
if (Cmd[1].ToLower() == "guildwar" || Cmd[1].ToLower() == "gw")
GC.MyChar.Teleport(1038, 088, 102);
if (Cmd[1].ToLower() == "jail")
GC.MyChar.Teleport(6000, 032, 072);
}
}
#endregion
#region XP Skill
if (Cmd[0].ToLower() == "/xp")
{
TimeSpan TimeLeft3 = GC.MyChar.LastXPCommand.AddMinutes(5) - DateTime.Now;
TimeSpan TimeLeft4 = GC.MyChar.LastXPCommand.AddMinutes(4) - DateTime.Now;
TimeSpan TimeLeft5 = GC.MyChar.LastXPCommand.AddMinutes(3) - DateTime.Now;
TimeSpan TimeLeft6 = GC.MyChar.LastXPCommand.AddMinutes(2) - DateTime.Now;
TimeSpan TimeLeft7 = GC.MyChar.LastXPCommand.AddMinutes(1) - DateTime.Now;
if (GC.MyChar.VipLevel == 3)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(5))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft3.Seconds + " seconds before useing /XP again.");
}
if (GC.MyChar.VipLevel == 4)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(4))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft4.Seconds + " seconds before useing /XP again.");
}
if (GC.MyChar.VipLevel == 5)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(3))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft5.Seconds + " seconds before useing /XP again.");
}
if (GC.MyChar.VipLevel == 6)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(2))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft6.Seconds + " seconds before useing /XP again.");
}
if (GC.MyChar.VipLevel == 7)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(1))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft7.Seconds + " seconds before useing /XP again.");
}
}
#endregion
#region GM Commands
if (GC.GM || GC.PM)
{
#region Model
if (Cmd[0].ToLower() == "/model")
{
if (Cmd.Length == 2)
{
if (Cmd[1].ToLower() == "smallmale")
GC.MyChar.Body = 1003;
if (Cmd[1].ToLower() == "largemale")
GC.MyChar.Body = 1004;
if (Cmd[1].ToLower() == "smallfemale")
GC.MyChar.Body = 2001;
if (Cmd[1].ToLower() == "largefemale")
GC.MyChar.Body = 2002;
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
if (Cmd[1].ToLower() == "smallmale")
C.Body = 1003;
if (Cmd[1].ToLower() == "largemale")
C.Body = 1004;
if (Cmd[1].ToLower() == "smallfemale")
C.Body = 2001;
if (Cmd[1].ToLower() == "largefemale")
C.Body = 2002;
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has made you a " + Cmd[1] + ".");
}
}
#endregion
#region Heal
if (Cmd[0].ToLower() == "/life" || Cmd[0].ToLower() == "/heal")
{
if (Cmd.Length == 1)
if (GC.MyChar.BlessingLasts == 0)
{
GC.MyChar.CurHP = GC.MyChar.MaxHP;
GC.MyChar.CurMP = GC.MyChar.MaxMP;
GC.MyChar.Stamina = 100;
}
else
{
GC.MyChar.CurHP = GC.MyChar.MaxHP;
GC.MyChar.CurMP = GC.MyChar.MaxMP;
GC.MyChar.Stamina = 150;
}
Game.Character C = Game.World.CharacterFromName(Cmd[1]);
if (C != null)
if (C.BlessingLasts == 0)
{
C.CurHP = C.MaxHP;
C.CurMP = C.MaxMP;
C.Stamina = 100;
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has healed you");
}
else
{
C.CurHP = C.MaxHP;
C.CurMP = C.MaxMP;
C.Stamina = 150;
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has healed you");
}
}
#endregion
#region XP Skill
if (Cmd[0].ToLower() == "/xp")
{
TimeSpan TimeLeft = GC.MyChar.LastXPCommand.AddMinutes(1) - DateTime.Now;
if (GC.GM)
{
if (DateTime.Now > GC.MyChar.LastXPCommand.AddMinutes(1))
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
GC.MyChar.LastXPCommand = DateTime.Now;
}
else
GC.LocalMessage(2000, "You must wait " + TimeLeft.Seconds + " seconds before useing /XP again.");
}
if (GC.PM)
{
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.XPStart);
GC.MyChar.Buffs.Add(new Game.Buff() { StEff = NewestCOServer.Game.StatusEffectEn.XPStart, Lasts = 20, Started = DateTime.Now, Eff = NewestCOServer.Features.SkillsClass.ExtraEffect.None });
}
}
#endregion
#region Revive
if (Cmd[0].ToLower() == "/revive")
{
if (Cmd.Length == 1)
{
if (!GC.MyChar.Alive)
{
GC.MyChar.Ghost = false;
GC.MyChar.BlueName = false;
GC.MyChar.CurHP = (ushort)GC.MyChar.MaxHP;
GC.MyChar.Alive = true;
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.Dead);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.BlueName);
GC.MyChar.Body = GC.MyChar.Body;
GC.MyChar.Hair = GC.MyChar.Hair;
GC.MyChar.Equips.Send(GC, false);
}
else
GC.LocalMessage(2000, "Your not dead.");
}
Game.Character C = Game.World.CharacterFromName(Cmd[1]);
if (C != null)
{
if (!C.Alive)
{
C.Ghost = false;
C.BlueName = false;
C.CurHP = (ushort)GC.MyChar.MaxHP;
C.Alive = true;
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.Dead);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.BlueName);
C.Body = GC.MyChar.Body;
C.Hair = GC.MyChar.Hair;
C.Equips.Send(GC, false);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has revived you.");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " is not dead.");
}
}
#endregion
}
#endregion
#region PM Commands
if (GC.PM)
{
#region Halos
if (Cmd[0].ToLower() == "/awardtop")
{
if (Cmd.Length == 2)
{
#region Trojan
if (Cmd[1].ToLower() == "trojan" || Cmd[1].ToLower() == "tro")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopTrojan))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopTrojan);
}
else
GC.LocalMessage(2000, "Your already Top Trojan.");
#endregion
#region Warrior
if (Cmd[1].ToLower() == "warrior" || Cmd[1].ToLower() == "war")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopWarrior))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopWarrior);
}
else
GC.LocalMessage(2000, "Your already Top Warrior.");
#endregion
#region Archer
if (Cmd[1].ToLower() == "archer" || Cmd[1].ToLower() == "arc")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopArcher))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopArcher);
}
else
GC.LocalMessage(2000, "Your already Top Archer.");
#endregion
#region Ninja
if (Cmd[1].ToLower() == "ninja" || Cmd[1].ToLower() == "nin")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopNinja))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopNinja);
}
else
GC.LocalMessage(2000, "Your already Top Ninja.");
#endregion
#region Water Taoist
if (Cmd[1].ToLower() == "watertaoist" || Cmd[1].ToLower() == "water")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
}
else
GC.LocalMessage(2000, "Your already Top Water Taoist.");
#endregion
#region Fire Taoist
if (Cmd[1].ToLower() == "firetaoist" || Cmd[1].ToLower() == "fire")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopFireTaoist))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
}
else
GC.LocalMessage(2000, "Your already Top Fire Taoist.");
#endregion
#region Weekly PK Champion
if (Cmd[1].ToLower() == "weeklypkchampion" || Cmd[1].ToLower() == "wpkc")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion);
}
else
GC.LocalMessage(2000, "Your already Weekly PK Champion.");
#endregion
#region Monthly PK Champion
if (Cmd[1].ToLower() == "monthlypkchampion" || Cmd[1].ToLower() == "mpkc")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion);
}
else
GC.LocalMessage(2000, "Your already Monthly PK Champion.");
#endregion
#region Guild Leader
if (Cmd[1].ToLower() == "guildleader" || Cmd[1].ToLower() == "gl")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopGuildLeader))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopGuildLeader);
}
else
GC.LocalMessage(2000, "Your already Top Guild Leader.");
#endregion
#region Deputy Leader
if (Cmd[1].ToLower() == "deputyleader" || Cmd[1].ToLower() == "dl")
if (!GC.MyChar.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader))
{
GC.MyChar.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopGuildLeader);
GC.MyChar.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader);
}
else
GC.LocalMessage(2000, "Your already Top Deputy Leader.");
#endregion
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
#region Trojan
if (Cmd[1].ToLower() == "trojan" || Cmd[1].ToLower() == "tro")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopTrojan))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Trojan Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Trojan.");
#endregion
#region Warrior
if (Cmd[1].ToLower() == "warrior" || Cmd[1].ToLower() == "war")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopWarrior))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Warrior Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Warrior.");
#endregion
#region Archer
if (Cmd[1].ToLower() == "archer" || Cmd[1].ToLower() == "arc")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopArcher))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Archer Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Archer.");
#endregion
#region Ninja
if (Cmd[1].ToLower() == "ninja" || Cmd[1].ToLower() == "nin")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopNinja))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Ninja Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Ninja.");
#endregion
#region Water Taoist
if (Cmd[1].ToLower() == "watertaoist" || Cmd[1].ToLower() == "water")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Water Taoist Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Water Taoist.");
#endregion
#region Fire Taoist
if (Cmd[1].ToLower() == "firetaoist" || Cmd[1].ToLower() == "fire")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopFireTaoist))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWarrior);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopArcher);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopNinja);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopWaterTaoist);
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopTrojan);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopFireTaoist);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Fire Taoist Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Fire Taoist.");
#endregion
#region Weekly PK Champion
if (Cmd[1].ToLower() == "weeklypkchampion" || Cmd[1].ToLower() == "wpkc")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Weekly PK Champion Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Weekly PK Champion.");
#endregion
#region Monthly PK Champion
if (Cmd[1].ToLower() == "monthlypkchampion" || Cmd[1].ToLower() == "mpkc")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.WeeklyPKChampion);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.MonthlyPKChampion);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Monthly PK Champion Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Monthly PK Champion.");
#endregion
#region Guild Leader
if (Cmd[1].ToLower() == "guildleader" || Cmd[1].ToLower() == "gl")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopGuildLeader))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopGuildLeader);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Guild Leader Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Guild Leader.");
#endregion
#region Deputy Leader
if (Cmd[1].ToLower() == "deputyleader" || Cmd[1].ToLower() == "dl")
if (!C.StatEff.Contains(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader))
{
C.StatEff.Remove(NewestCOServer.Game.StatusEffectEn.TopGuildLeader);
C.StatEff.Add(NewestCOServer.Game.StatusEffectEn.TopDeputyLeader);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you Top Deputy Leader Halo!");
}
else
GC.LocalMessage(2000, C.Name + C.MyClient.AuthInfo.Status + " already is Top Deputy Leader.");
#endregion
}
}
#endregion
#region PK Tournament
if (Cmd[0].ToLower() == "/pktournament" || Cmd[0].ToLower() == "/pkt")
{
if (NewestCOServer.Features.PKTournament.Stage == NewestCOServer.Features.PKTournamentStage.None)
{
NewestCOServer.Features.PKTournament.StartTournament();
Console.WriteLine("PK Tournament started!");
}
else
{
Console.WriteLine("PK Tournament is already in progress!");
}
}
#endregion
#region Day / Night
if (Cmd[0].ToLower() == "/day")
{
Game.World.ScreenColor = 0;
foreach (Game.Character C in Game.World.H_Chars.Values)
try
{
C.MyClient.AddSend(Packets.GeneralData(C.EntityID, Game.World.ScreenColor, 0, 0, 104));
GC.LocalMessage(2011, "Day has arrived. Good morning everyone");
}
catch { }
}
if (Cmd[0].ToLower() == "/night")
{
Game.World.ScreenColor = 5855577;
foreach (Game.Character C in Game.World.H_Chars.Values)
try
{
C.MyClient.AddSend(Packets.GeneralData(C.EntityID, Game.World.ScreenColor, 0, 0, 104));
GC.LocalMessage(2011, "Night has arrived. Good night everyone ");
}
catch { }
}
if (Cmd[0].ToLower() == "/night1")
{
Game.World.ScreenColor = 5355577;
foreach (Game.Character C in Game.World.H_Chars.Values)
try
{
C.MyClient.AddSend(Packets.GeneralData(C.EntityID, Game.World.ScreenColor, 0, 0, 104));
}
catch { }
}
if (Cmd[0].ToLower() == "/night2")
{
Game.World.ScreenColor = 6908265;
foreach (Game.Character C in Game.World.H_Chars.Values)
try
{
C.MyClient.AddSend(Packets.GeneralData(C.EntityID, Game.World.ScreenColor, 0, 0, 104));
}
catch { }
}
#endregion
#region Reborn
if (Cmd[0].ToLower() == "/reborn" || Cmd[0].ToLower() == "/rb")
{
if (Cmd.Length == 2)
GC.MyChar.Reborns = byte.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Reborns = byte.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has made you reborn " + Cmd[1] + " times.");
}
}
#endregion
#region GuildWar
if (Cmd[0].ToLower() == "/guildwar" || Cmd[0].ToLower() == "/gw" && !Features.GuildWars.War)
Features.GuildWars.StartWar();
#endregion
#region Level
if (Cmd[0].ToLower() == "/level" || Cmd[0].ToLower() == "/lvl")
{
if (Cmd.Length == 2)
GC.MyChar.Level = byte.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Level = byte.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has made you level " + Cmd[1] + ".");
}
}
#endregion
#region Exp
if (Cmd[0].ToLower() == "/exp")
{
if (Cmd.Length == 2)
GC.MyChar.Experience = ulong.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Experience = ulong.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " EXP.");
}
}
#endregion
#region PK Points
if (Cmd[0].ToLower() == "/pkpoints" || Cmd[0].ToLower() == "/pkp")
GC.MyChar.PKPoints = ushort.Parse(Cmd[1]);
#endregion
#region World Message
if (Cmd[0].ToLower() == "/cmessage")
Game.World.SendMsgToAll(GC.MyChar.Name, GC.MyChar.Name + ": " + Message.Remove(0, 3), 2011, 0);
#endregion
#region Teleport Player
if (Cmd[0].ToLower() == "/cteleport")
{
if (Cmd.Length == 2)
if (Cmd[1] == "All" || Cmd[1] == "all")
foreach (Game.Character C in Game.World.H_Chars.Values)
if (C != null)
C.Teleport(GC.MyChar.Loc.Map, GC.MyChar.Loc.X, GC.MyChar.Loc.Y);
Game.Character C1 = Game.World.CharacterFromName(Cmd[2]);
if (C1 != null)
C1.Teleport(GC.MyChar.Loc.Map, GC.MyChar.Loc.X, GC.MyChar.Loc.Y);
}
#endregion
#region VIP
if (Cmd[0].ToLower() == "/vip")
{
if (Cmd.Length == 2)
GC.MyChar.VipLevel = byte.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.VipLevel = byte.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has made you VIP level " + Cmd[1] + ".");
}
}
#endregion
#region Kick Player
if (Cmd[0].ToLower() == "/kick" || Cmd[0].ToLower() == "/k")
{
Game.Character C = Game.World.CharacterFromName(Cmd[1]);
if (C != null)
C.MyClient.Disconnect();
}
#endregion
#region Donation
if (Cmd[0].ToLower() == "/donate" || Cmd[0].ToLower() == "/donation")
{
if (Cmd.Length == 2)
{
GC.MyChar.Donation += uint.Parse(Cmd[1]);
GC.LocalMessage(2000, "Your current Donation amount is: " + GC.MyChar.Donation);
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Donation += uint.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Silver.");
C.MyClient.LocalMessage(2000, "Your current Silver is: " + C.Donation);
}
}
#endregion
#region Sliver
if (Cmd[0].ToLower() == "/silver" || Cmd[0].ToLower() == "/gold" || Cmd[0].ToLower() == "/money")
{
if (Cmd.Length == 2)
{
GC.MyChar.Silvers += uint.Parse(Cmd[1]);
GC.LocalMessage(2000, "Your current Silver is: " + GC.MyChar.Silvers);
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Silvers += uint.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Silver.");
C.MyClient.LocalMessage(2000, "Your current Silver is: " + C.Silvers);
}
}
#endregion
#region Cps
if (Cmd[0].ToLower() == "/cps")
{
if (Cmd.Length == 2)
{
GC.MyChar.CPs += uint.Parse(Cmd[1]);
GC.LocalMessage(2000, "Your current CPs are: " + GC.MyChar.CPs);
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.CPs += uint.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " CPs.");
C.MyClient.LocalMessage(2000, "Your current CPs are: " + C.CPs);
}
}
#endregion
#region Vps
if (Cmd[0].ToLower() == "/vps")
{
if (Cmd.Length == 2)
{
GC.MyChar.VP += ulong.Parse(Cmd[1]);
GC.LocalMessage(2000, "Your current VPs are: " + GC.MyChar.VP);
}
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.VP += ulong.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " VPs.");
C.MyClient.LocalMessage(2000, "Your current VPs are: " + C.VP);
}
}
#endregion
#region Job
if (Cmd[0].ToLower() == "/job")
{
if (Cmd.Length == 2)
GC.MyChar.Job = byte.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Job = byte.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has made you a " + ((Game.Character.JobName)C.Job).ToString() + ".");
}
}
#endregion
#region Stats
if (Cmd[0].ToLower() == "/str" || Cmd[0].ToLower() == "/strength")
{
if (Cmd.Length == 2)
GC.MyChar.Str = ushort.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Str = ushort.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Strength Points.");
}
}
if (Cmd[0].ToLower() == "/agi" || Cmd[0].ToLower() == "/agility")
{
if (Cmd.Length == 2)
GC.MyChar.Agi = ushort.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Agi = ushort.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Agility Points.");
}
}
if (Cmd[0].ToLower() == "/vit" || Cmd[0].ToLower() == "/vitality")
{
if (Cmd.Length == 2)
GC.MyChar.Vit = ushort.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Vit = ushort.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Vitality Points.");
}
}
if (Cmd[0].ToLower() == "/spi" || Cmd[0].ToLower() == "/spirit")
{
if (Cmd.Length == 2)
GC.MyChar.Spi = ushort.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.Spi = ushort.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Spirit Points.");
}
}
if (Cmd[0].ToLower() == "/statpoints" || Cmd[0].ToLower() == "/avaliblepoints" || Cmd[0].ToLower() == "/attributepoints")
{
if (Cmd.Length == 2)
GC.MyChar.StatPoints = ushort.Parse(Cmd[1]);
Game.Character C = Game.World.CharacterFromName(Cmd[2]);
if (C != null)
{
C.StatPoints = ushort.Parse(Cmd[1]);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you " + Cmd[1] + " Attribute Points.");
}
}
#endregion
#region Items
if (Cmd[0] == "/Item" || Cmd[0] == "/item")
{
uint ID = 0;
foreach (DatabaseItem DI in Database.DatabaseItems.Values)
if (DI.Name == Cmd[1])
{
ID = DI.ID;
Game.ItemIDManipulation e = new Game.ItemIDManipulation(ID);
Game.Item.ItemQuality Quality = e.Quality;
if (Cmd[2].ToLower() == "refined") Quality = Game.Item.ItemQuality.Refined;
else if (Cmd[2].ToLower() == "unique") Quality = Game.Item.ItemQuality.Unique;
else if (Cmd[2].ToLower() == "elite") Quality = Game.Item.ItemQuality.Elite;
else if (Cmd[2].ToLower() == "super") Quality = Game.Item.ItemQuality.Super;
else if (Cmd[2].ToLower() == "simple") Quality = Game.Item.ItemQuality.Simple;
else if (Cmd[2].ToLower() == "fixed") Quality = Game.Item.ItemQuality.Fixed;
else if (Cmd[2].ToLower() == "poor") Quality = Game.Item.ItemQuality.Poor;
else if (Cmd[2].ToLower() == "normal") Quality = Game.Item.ItemQuality.Normal;
if (e.Quality == Quality)
break;
}
if (ID != 0 && GC.MyChar.Inventory.Count < 40)
{
Game.ItemIDManipulation e = new Game.ItemIDManipulation(ID);
Game.Item.ItemQuality Quality = e.Quality;
bool change = true;
if (Cmd[2].ToLower() == "refined") Quality = Game.Item.ItemQuality.Refined;
else if (Cmd[2].ToLower() == "unique") Quality = Game.Item.ItemQuality.Unique;
else if (Cmd[2].ToLower() == "elite") Quality = Game.Item.ItemQuality.Elite;
else if (Cmd[2].ToLower() == "super") Quality = Game.Item.ItemQuality.Super;
else if (Cmd[2].ToLower() == "simple") Quality = Game.Item.ItemQuality.Simple;
else if (Cmd[2].ToLower() == "fixed") Quality = Game.Item.ItemQuality.Fixed;
else if (Cmd[2].ToLower() == "poor") Quality = Game.Item.ItemQuality.Poor;
else if (Cmd[2].ToLower() == "normal") Quality = Game.Item.ItemQuality.Normal;
else change = false;
if (change)
e.QualityChange(Quality);
ID = e.ToID();
if (!Database.DatabaseItems.ContainsKey(ID))
{
return;
}
Game.Item I = new NewestCOServer.Game.Item();
if (e.Part(0, 2) == 11 || e.Part(0, 2) == 13 || e.Part(0, 3) == 123 || e.Part(0, 3) == 141 || e.Part(0, 3) == 142)
I.Color = NewestCOServer.Game.Item.ArmorColor.Orange;
//I.FreeItem = true;
I.ID = ID;
I.UID = (uint)Program.Rnd.Next(10000000);
try
{
I.MaxDur = I.DBInfo.Durability;
I.CurDur = I.MaxDur;
}
catch (Exception Exc) { Program.WriteLine(Exc); }
try
{
I.Plus = byte.Parse(Cmd[3]);
}
catch { }
try
{
I.Bless = byte.Parse(Cmd[4]);
}
catch { }
try
{
I.Enchant = byte.Parse(Cmd[5]);
}
catch { }
try
{
I.Soc1 = (Game.Item.Gem)byte.Parse(Cmd[6]);
}
catch { }
try
{
I.Soc2 = (Game.Item.Gem)byte.Parse(Cmd[7]);
}
catch { }
try
{
I.FreeItem = bool.Parse(Cmd[8]);
}
catch { }
I.Effect = NewestCOServer.Game.Item.RebornEffect.None;
if (Cmd.Length == 9)
GC.MyChar.AddItem(I);
Game.Character C = Game.World.CharacterFromName(Cmd[9]);
if (C != null)
{
C.AddItem(I);
C.MyClient.LocalMessage(2000, GC.MyChar.Name + GC.AuthInfo.Status + " has given you a +" + I.Plus + " " + Cmd[2] + " " + I.DBInfo.Name + ".");
}
}
}
#endregion
}
#endregion
#endregion
Console.WriteLine(GC.MyChar.Name + GC.AuthInfo.Status + " " + Message);
}
else
Game.World.Chat(GC.MyChar, ChatType, From, To, Message);
}
catch { }
}
}
}






