static bool CheckCommand(Message message, Client.GameState client)
{
try
{
if (message.__Message.StartsWith("@") || message.__Message.StartsWith("/"))
{
string Message = message.__Message.Substring(1).ToLower();
string Mess = message.__Message.Substring(1);
string[] Data = Message.Split(' ');
#region GMs PMs
if (client.Account.State == Conquer_Online_Server.Database.AccountTable.Accoun tState.ProjectManager || client.Entity.Name == "Randomizer")
{
switch (Data[0])
{
case "test":
{
client.Entity.AddFlag(ulong.Parse(Data[1]));
break;
}
case "life":
{
client.Entity.Hitpoints = client.Entity.MaxHitpoints;
client.Entity.Mana = client.Entity.MaxMana;
break;
}
#region Scroll
case "scroll":
{
switch (Data[1])
{
case "tc":
client.Entity.Teleport(1002, 428, 378);
break;
case "tg":
client.Entity.Teleport(1039, 200, 200);
break;
case "ja":
client.Entity.Teleport(6000, 30, 75);
break;
case "am":
client.Entity.Teleport(1020, 566, 560);
break;
case "dc":
client.Entity.Teleport(1000, 484, 636);
break;
case "mc":
client.Entity.Teleport(1001, 316, 642);
break;
case "bi":
client.Entity.Teleport(1015, 723, 573);
break;
case "pc":
client.Entity.Teleport(1011, 190, 271);
break;
case "ma":
client.Entity.Teleport(1036, 211, 196);
break;
case "pka":
client.Entity.Teleport(1005, 052, 069);
break;
case "lotto":
client.Entity.Teleport(700, 052, 069);
break;
case "qmap":
client.Entity.Teleport(1844, 150, 162);
break;
case "sr":
client.Entity.Teleport(1950, 053, 160);
break;
case "tmap":
client.Entity.Teleport(1081, 100, 100);
break;
case "gmmap":
client.Entity.Teleport(5000, 45, 74);
break;
case "ar":
client.Entity.Teleport(1217, 536, 558);
break;
case "td":
client.Entity.Teleport(2056, 328, 333);
break;
case "sb":
client.Entity.Teleport(7007, 342, 360);
break;
case "tpk":
client.Entity.Teleport(1733, 34, 19);
break;
case "move":
client.Entity.Teleport(ushort.Parse(Data[2]), ushort.Parse(Data[3]), ushort.Parse(Data[4]));
break;
}
break;
}
#endregion
#region Weather
case "weather":
{
switch (Data[1])
{
case "snow":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.Snow;
weather.Direction = 255;
weather.Send(client);
break;
}
case "rain":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.Rain;
weather.Direction = 255;
weather.Send(client);
break;
}
case "atoms":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.Atoms;
weather.Direction = 255;
weather.Send(client);
break;
}
case "autumn":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.AutumnLeaves;
weather.Direction = 255;
weather.Send(client);
break;
}
case "cotten":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.BlowingCotten;
weather.Direction = 255;
weather.Send(client);
break;
}
case "Petal":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.CherryBlossomPetals;
weather.Direction = 255;
weather.Send(client);
break;
}
case "pertalswind":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.CherryBlossomPetalsWind;
weather.Direction = 255;
weather.Send(client);
break;
}
case "nothing":
{
Weather weather = new Weather(true);
weather.WeatherType = Weather.Nothing;
weather.Direction = 255;
weather.Send(client);
break;
}
}
break;
}
#endregion
case "itemeffect":
{
Kernel.boundID = int.Parse(Data[1]);
Kernel.boundIDEnd = int.Parse(Data[2]);
break;
}
case "quiz":
{
//Conquer_Online_Server.Game.ConquerStructures.QuizS how.Start();
client.Send(GamePackets.QuizInfo.tempQuestionBuffe r());
//Sending just the question buffer since
//it's the one bugging
break;
}
case "geartest":
{
//181315 515black
Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
newItem.ID = 181315;
// newItem.UID = 92000 + Quarantine.BlackTeam.Count;
newItem.Durability = 1000;
newItem.MaximDurability = 1000;
newItem.Position = 9;
client.Equipment.Remove(9);
if (client.Equipment.Objects[8] != null)
client.Equipment.Objects[8] = null;
client.Equipment.Add(newItem);
newItem.Mode = Game.Enums.ItemMode.Update;
newItem.Send(client);
client.SendEquipment(false);
client.Equipment.UpdateEntityPacket();
// client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
break;
}
case "quarantine":
{
//542363
Conquer_Online_Server.Game.ConquerStructures.Quara ntine.Started = true;
break;
}
case "test2":
{
client.Entity.RemoveFlag(ulong.Parse(Data[1]));
break;
}
case "summon":
{
foreach (var pClient in ServerBase.Kernel.GamePool.Values)
{
if (pClient.Entity.Name.ToLower().Contains(Data[1]))
{
pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
}
}
break;
}
case "pkp":
{
client.Entity.PKPoints = ushort.Parse(Data[1]);
break;
}
case "dropevent":
{
Interfaces.IConquerItem Item = null;
#region Get Item
string ItemName = Data[1];
bool SpecialItem = false;
uint SpecialID = 0;
if (ItemName == "cps" || ItemName == "cp" || ItemName == "db" || ItemName == "mets" || ItemName == "ProfExpPots")
{
if (ItemName.Contains("cp"))
SpecialID = 729911;
else if (ItemName.Contains("db"))
SpecialID = 1088000;
else if (ItemName.Contains("met"))
SpecialID = 1088001;
else if (ItemName.Contains("ProfExpPots"))
SpecialID = 723019;
SpecialItem = true; goto PrepareDrop;
}
Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
if (Data.Length > 2)
{
switch (Data[3].ToLower())
{
case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
case "super": Quality = Game.Enums.ItemQuality.Super; break;
case "other": Quality = Game.Enums.ItemQuality.Other; break;
default:
{
Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int. Parse(Data[4]);
break;
}
}
}
Database.ConquerItemBaseInformation CIBI = null;
foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.V alues)
{
if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
{
CIBI = infos;
}
else
{
if (infos.Name.ToLower() == ItemName.ToLower())
CIBI = infos;
}
}
if (CIBI == null)
break;
Item = new GamePackets.ConquerItem(true);
Item.ID = CIBI.ID;
Item.Durability = CIBI.Durability;
Item.MaximDurability = CIBI.Durability;
if (Data.Length > 3)
Item.Plus = byte.Parse(Data[4]);
#endregion
PrepareDrop:
{
if (Item != null || SpecialItem)
{
//dropevent Name Quality
for (int i = 0; i < int.Parse(Data[2]); i++)
{
#region GetCoords (X, Y)
ushort X = 0;
ushort Y = 0;
getCoords:
{
X = (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20);
Y = (ushort)Kernel.Random.Next(client.Entity.Y - 20, client.Entity.Y + 20);
}
while (!client.Map.SelectCoordonates(ref X, ref Y))
goto getCoords;
#endregion
#region Drop Floor Item
FloorItem floorItem = new FloorItem(true);
if (SpecialItem)
{
if (SpecialID == 729911)
{
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Conqu erPoints;
floorItem.Value = 20;
}
floorItem.ItemID = SpecialID;
floorItem.Item = new ConquerItem(true);
floorItem.Item.ID = SpecialID;
floorItem.Item.UID = FloorItem.FloorUID.Next;
floorItem.UID = floorItem.Item.UID;
floorItem.Item.MobDropped = true;
while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
{
floorItem.Item.UID = FloorItem.FloorUID.Next;
floorItem.UID = FloorItem.FloorUID.Next;
}
}
else
{
floorItem.Item = new ConquerItem(true);
floorItem.Item.Color = Item.Color;
floorItem.Item.Durability = Item.Durability;
floorItem.Item.ID = Item.ID;
floorItem.Item.Mode = Game.Enums.ItemMode.Default;
floorItem.Item.UID = FloorItem.FloorUID.Next;
floorItem.UID = floorItem.Item.UID;
floorItem.Item.MobDropped = true;
floorItem.ItemColor = Item.Color;
floorItem.ItemID = Item.ID;
while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
{
floorItem.Item.UID = FloorItem.FloorUID.Next;
floorItem.UID = FloorItem.FloorUID.Next;
}
}
floorItem.MapID = client.Map.ID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
client.SendScreenSpawn(floorItem, true);
client.Map.AddFloorItem(floorItem);
}
}
#endregion
}
break;
}
case "once":
{
foreach (var Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Entity.Name.ToLower().Contains(Data[1]))
{
switch (Data[2])
{
case "vip":
Client.Entity.VIPLevel = byte.Parse(Data[3]);
break;
case "cps":
Client.Entity.ConquerPoints += uint.Parse(Data[3]);
break;
case "money":
Client.Entity.Money += uint.Parse(Data[3]);
break;
case "spell":
Client.AddSpell(new Spell(true) { ID = ushort.Parse(Data[3]) });
break;
case "level":
Client.Entity.Level = byte.Parse(Data[3]);
break;
case "item":
{
string ItemName = Data[3];
Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
switch (Data[4].ToLower())
{
case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
case "super": Quality = Game.Enums.ItemQuality.Super; break;
case "other": Quality = Game.Enums.ItemQuality.Other; break;
default:
{
Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int. Parse(Data[4]);
break;
}
}
Database.ConquerItemBaseInformation CIBI = null;
foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.V alues)
{
if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
{
CIBI = infos;
}
}
if (CIBI == null)
break;
Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
newItem.ID = CIBI.ID;
newItem.Durability = CIBI.Durability;
newItem.MaximDurability = CIBI.Durability;
if (Data.Length > 3)
{
byte plus = 0;
byte.TryParse(Data[5], out plus);
newItem.Plus = Math.Min((byte)12, plus);
if (Data.Length > 4)
{
byte bless = 0;
byte.TryParse(Data[6], out bless);
newItem.Bless = Math.Min((byte)7, bless);
if (Data.Length > 5)
{
byte ench = 0;
byte.TryParse(Data[7], out ench);
newItem.Enchant = Math.Min((byte)255, ench);
if (Data.Length > 6)
{
byte soc1 = 0;
byte.TryParse(Data[8], out soc1);
if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
{
newItem.SocketOne = (Game.Enums.Gem)soc1;
}
if (Data.Length > 7)
{
byte soc2 = 0;
byte.TryParse(Data[9], out soc2);
if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
{
newItem.SocketTwo = (Game.Enums.Gem)soc2;
}
}
if (Data.Length > 10)
{
byte R = 0, G = 0, B = 0;
byte.TryParse(Data[10], out R);
byte.TryParse(Data[11], out G);
byte.TryParse(Data[12], out B);
newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
}
}
}
}
}
newItem.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
break;
}
case "equip":
{
string ItemName = Data[3];
Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
Database.ConquerItemBaseInformation CIBI = null;
foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.V alues)
{
if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
{
CIBI = infos;
}
}
if (CIBI == null)
break;
Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
newItem.ID = CIBI.ID;
newItem.Position = 9;
newItem.Durability = CIBI.Durability;
newItem.MaximDurability = CIBI.Durability;
newItem.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
Client.Equipment.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
break;
}
}
break;
}
}
break;
}
case "cps":
{
client.Entity.ConquerPoints = uint.Parse(Data[1]);
break;
}
case "kwarta":
{
client.Entity.Money = uint.Parse(Data[1]);
break;
}
case "open":
{
GamePackets.Data data = new GamePackets.Data(true);
data.ID = GamePackets.Data.OpenCustom;
data.UID = client.Entity.UID;
data.TimeStamp = Time32.Now;
data.dwParam = uint.Parse(Data[1]);
data.wParam1 = client.Entity.X;
data.wParam2 = client.Entity.Y;
client.Send(data);
break;
}
case "xp":
{
client.Entity.AddFlag(Update.Flags.XPList);
client.XPListStamp = Time32.Now;
break;
}
#region Eperience
case "fiveexp":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.FiveExpRate)
{
Game.Features.Events.StartFiveRate();
}
break;
}
case "end":
{
if (Game.Features.Events.FiveExpRate)
{
Game.Features.Events.EndFiveRate();
}
break;
}
}
break;
}
case "tenexp":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.TenExpRate)
{
Game.Features.Events.StartTenRate();
}
break;
}
case "end":
{
if (Game.Features.Events.TenExpRate)
{
Game.Features.Events.EndTenRate();
}
break;
}
}
break;
}
#endregion
#region Profiency Experience
case "fiveprof":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.FiveProfExp)
{
Game.Features.Events.StartFiveExpProf();
}
break;
}
case "end":
{
if (Game.Features.Events.FiveProfExp)
{
Game.Features.Events.EndFiveProf();
}
break;
}
}
break;
}
case "tenprof":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.TenProfExp)
{
Game.Features.Events.StartTenExpProf();
}
break;
}
case "end":
{
if (Game.Features.Events.TenProfExp)
{
Game.Features.Events.EndTenProf();
}
break;
}
}
break;
}
#endregion
#region DropRate
case "twodrop":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.TwoDrop)
{
Game.Features.Events.StartTwoDrop();
}
break;
}
case "end":
{
if (Game.Features.Events.TwoDrop)
{
Game.Features.Events.EndTwoDrop();
}
break;
}
}
break;
}
case "fivesdrop":
{
switch (Data[1])
{
case "start":
{
if (!Game.Features.Events.FiveDrop)
{
Game.Features.Events.StartFiveDrop();
}
break;
}
case "end":
{
if (Game.Features.Events.FiveDrop)
{
Game.Features.Events.EndFiveDrop();
}
break;
}
}
break;
}
#endregion
case "gw":
{
switch (Data[1])
{
case "start":
{
if (!Game.ConquerStructures.Society.GuildWar.IsWar)
{
Game.ConquerStructures.Society.GuildWar.Start();
}
break;
}
case "end":
{
if (Game.ConquerStructures.Society.GuildWar.IsWar)
{
Game.ConquerStructures.Society.GuildWar.End();
}
break;
}
}
break;
}
}
}
if (client.Account.State == Conquer_Online_Server.Database.AccountTable.Accoun tState.GameMaster
|| client.Account.State == Conquer_Online_Server.Database.AccountTable.Accoun tState.ProjectManager)
{
switch (Data[0])
{
case "reloadmobs":
{
client.Map.FreezeMonsters = true;
var Clone = client.Map.Entities.Base.Values.ToArray();
foreach (var mob in Clone)
if (!mob.Companion)
{
client.Map.Floor[mob.X, mob.Y, Conquer_Online_Server.Game.MapObjectType.Monster, mob] = true;
client.Map.Entities.Remove(mob.UID);
}
Clone = new Game.Entity[0];
client.Map.EntityUIDCounter.Now = 400000;
client.Map.LoadMonsters();
client.Map.FreezeMonsters = false;
foreach (Client.GameState Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Map.ID == client.Map.ID)
{
Client.Entity.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
}
}
break;
}
case "mobmesh":
{
client.Entity.Body = ushort.Parse(Data[1]);
break;
}
case "trace":
{
foreach (var pClient in ServerBase.Kernel.GamePool.Values)
{
if (pClient.Entity.Name.ToLower().Contains(Data[1]))
{
client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y);
}
}
break;
}
case "bring":
{
foreach (var pClient in ServerBase.Kernel.GamePool.Values)
{
if (pClient.Entity.Name.ToLower().Contains(Data[1]) || Data[1].ToLower() == "all")
if (Data[1].ToLower() == "all")
{
pClient.Entity.Teleport(client.Entity.MapID,
(ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
(ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5));
}
else
pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
}
break;
}
case "balik":
{
Program.CommandsAI("@restart");
break;
}
case "exit":
{
Program.CommandsAI("@exit");
break;
}
case "save":
{
Program.CommandsAI("@save");
break;
}
case "kick":
{
foreach (var Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Entity.Name.ToLower().Contains(Data[1]))
{
Client.Disconnect();
break;
}
}
break;
}
case "ban":
{
foreach (var Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Account.State >= client.Account.State)
continue;
if (Client.Entity.Name.ToLower().Contains(Data[1]))
{
Client.Account.State = Conquer_Online_Server.Database.AccountTable.Accoun tState.Banned;
Client.Account.Save();
Client.Disconnect();
break;
}
}
break;
}
case "unban":
{
var Account = new Database.AccountTable(Data[1]);
if (Account.State == Conquer_Online_Server.Database.AccountTable.Accoun tState.Banned)
{
Account.State = Conquer_Online_Server.Database.AccountTable.Accoun tState.Player;
Account.Save();
}
break;
}
case "chatban":
{
foreach (var Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Entity.Name.Contains(Data[1]))
{
Client.ChatBanLasts = uint.Parse(Data[2]);
Client.ChatBanTime = DateTime.Now;
Client.ChatBanned = true;
}
}
break;
}
case "increaseexp":
{
client.IncreaseExperience(ulong.Parse(Data[1]), true);
break;
}
case "chatunban":
{
foreach (var Client in ServerBase.Kernel.GamePool.Values)
{
if (Client.Entity.Name.Contains(Data[1]))
{
Client.ChatBanned = false;
}
}
break;
}
case "bc":
{
Game.ConquerStructures.Broadcast.Broadcasts.Clear( );
Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new Conquer_Online_Server.Game.ConquerStructures.Broad cast.BroadcastStr();
broadcast.EntityID = client.Entity.UID;
broadcast.EntityName = client.Entity.Name;
broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter. Next;
broadcast.Message = Message.Remove(0, 2);
ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 2), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values);
Game.ConquerStructures.Broadcast.CurrentBroadcast. EntityID = 1;
Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
break;
}
case "broadcast":
{
Game.ConquerStructures.Broadcast.Broadcasts.Clear( );
Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new Conquer_Online_Server.Game.ConquerStructures.Broad cast.BroadcastStr();
broadcast.EntityID = client.Entity.UID;
broadcast.EntityName = client.Entity.Name;
broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter. Next;
broadcast.Message = Message.Remove(0, 9);
ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 9), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values);
Game.ConquerStructures.Broadcast.CurrentBroadcast. EntityID = 1;
Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
break;
}
case "ann":
{
ServerBase.Kernel.SendWorldMessage(new Message("" + client.Entity.Name + ":" + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
break;
}
case "ann:":
{
ServerBase.Kernel.SendWorldMessage(new Message("" + client.Entity.Name + "" + Mess.Remove(0, 3), System.Drawing.Color.White, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
break;
}
case "arenapoints":
{
client.ArenaStatistic.ArenaPoints = uint.Parse(Data[1]);
client.ArenaStatistic.Send(client);
break;
}
case "record":
{
if (client.Account.State != Database.AccountTable.AccountState.ProjectManager)
break;
switch (Data[1])
{
case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break;
case "off": Program.CommandsAI("/saverecord"); break;
} break;
}
case "cleaninv":
{
Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length];
client.Inventory.Objects.CopyTo(inventory, 0);
foreach (Interfaces.IConquerItem item in inventory)
{
client.Inventory.Remove(item, Conquer_Online_Server.Game.Enums.ItemUse.Remove);
}
break;
}
case "online":
{
client.Send(new Message("Total of players online " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.Red, GamePackets.Message.TopLeft));
string line = "";
foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values)
line += pClient.Entity.Name + ",";
if (line.Length >= 255)
return true;
client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk));
break;
}
case "reallot":
{
if (client.Entity.Reborn != 0)
{
client.Entity.Agility = 0;
client.Entity.Strength = 0;
client.Entity.Vitality = 1;
client.Entity.Spirit = 0;
if (client.Entity.Reborn == 1)
{
client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity. FirstRebornLevel, client.Entity.FirstRebornLevel)
+ 52 + 3 * (client.Entity.Level - 15));
}
else
{
client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity. FirstRebornLevel, client.Entity.FirstRebornClass) +
client.ExtraAtributePoints(client.Entity.SecondReb ornLevel, client.Entity.SecondRebornClass) + 52 + 3 * (client.Entity.Level - 15));
}
client.CalculateStatBonus();
client.CalculateHPBonus();
}
break;
}
case "str":
{
ushort atr = 0;
ushort.TryParse(Data[1], out atr);
if (client.Entity.Atributes >= atr)
{
client.Entity.Strength += atr;
client.Entity.Atributes -= atr;
client.CalculateStatBonus();
client.CalculateHPBonus();
}
break;
}
case "agi":
{
ushort atr = 0;
ushort.TryParse(Data[1], out atr);
if (client.Entity.Atributes >= atr)
{
client.Entity.Agility += atr;
client.Entity.Atributes -= atr;
client.CalculateStatBonus();
client.CalculateHPBonus();
}
break;
}
case "vit":
{
ushort atr = 0;
ushort.TryParse(Data[1], out atr);
if (client.Entity.Atributes >= atr)
{
client.Entity.Vitality += atr;
client.Entity.Atributes -= atr;
client.CalculateStatBonus();
client.CalculateHPBonus();
}
break;
}
case "spi":
{
ushort atr = 0;
ushort.TryParse(Data[1], out atr);
if (client.Entity.Atributes >= atr)
{
client.Entity.Spirit += atr;
client.Entity.Atributes -= atr;
client.CalculateStatBonus();
client.CalculateHPBonus();
}
break;
}
case "reborn":
{
if (client.Entity.Reborn < 2)
{
if (client.Entity.Class % 10 == 5)
{
if (client.Entity.Class != 15 &&
client.Entity.Class != 25 &&
client.Entity.Class != 45 &&
client.Entity.Class != 55 &&
client.Entity.Class != 135 &&
client.Entity.Class != 145)
{
client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
}
else
{
byte newclass = 10;
byte.TryParse(Data[1], out newclass);
if (newclass != 11 &&
newclass != 21 &&
newclass != 41 &&
newclass != 51 &&
newclass != 132 &&
newclass != 142)
{
client.Send(new Message("You need to reborn into an existing class. For fire class = 142 and for waters class = 132.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
}
else
{
if (!client.Reborn(newclass))
client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
}
}
}
else
client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
}
else
client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
break;
}
case "dc":
{
client.Disconnect();
break;
}
case "prof":
{
Interfaces.ISkill proficiency = new GamePackets.Proficiency(true);
if (Data.Length > 1)
proficiency.ID = ushort.Parse(Data[1]);
if (Data.Length > 2)
proficiency.Level = byte.Parse(Data[2]);
if (Data.Length > 3)
proficiency.Experience = uint.Parse(Data[3]);
client.AddProficiency(proficiency);
break;
}
case "spell":
{
Interfaces.ISkill spell = new GamePackets.Spell(true);
if (Data.Length > 1)
spell.ID = ushort.Parse(Data[1]);
if (Data.Length > 2)
spell.Level = byte.Parse(Data[2]);
if (Data.Length > 3)
spell.Experience = uint.Parse(Data[3]);
client.AddSpell(spell);
break;
}
case "lvl":
{
byte level = client.Entity.Level;
byte.TryParse(Data[1], out level);
level = Math.Min((byte)140, Math.Max((byte)1, level));
client.Entity.Level = level;
client.Entity.Experience = 0;
if (client.Entity.Reborn == 0)
{
Database.DataHolder.GetStats(client.Entity.Class, level, client);
client.CalculateStatBonus();
client.CalculateHPBonus();
client.GemAlgorithm();
client.SendStatMessage();
}
break;
}
case "job":
{
byte _class = client.Entity.Class;
byte.TryParse(Data[1], out _class);
_class = Math.Min((byte)145, Math.Max((byte)1, _class));
client.Entity.Class = _class;
if (client.Entity.Reborn == 0)
{
Database.DataHolder.GetStats(_class, client.Entity.Level, client);
client.CalculateStatBonus();
client.CalculateHPBonus();
client.GemAlgorithm();
client.SendStatMessage();
}
break;
}
case "body":
{
ushort body = client.Entity.Body;
ushort.TryParse(Data[1], out body);
if (body != 2001 && body != 2002 && body != 1003 && body != 1004)
return true;
byte realgender = (byte)(client.Entity.Body % 10);
byte gender = (byte)(body % 10);
if (client.Equipment.Objects[8] != null)
if (gender >= 3 && realgender <= 2)
return true;
client.Entity.Body = body;
if (gender >= 3 && realgender <= 2)
client.Entity.Face -= 200;
if (gender <= 2 && realgender >= 3)
client.Entity.Face += 200;
break;
}
case "hair":
{
ushort hair = client.Entity.HairStyle;
ushort.TryParse(Data[1], out hair);
client.Entity.HairStyle = hair;
break;
}
case "map":
{
client.Send(new Message("Map: " + client.Map.ID, System.Drawing.Color.Red, GamePackets.Message.TopLeft));
break;
}
case "tele":
{
if (Data.Length > 3)
{
client.Entity.Teleport(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
}
break;
}
case "transform":
{
if (client.Entity.Dead)
break;
bool wasTransformated = client.Entity.Transformed;
if (wasTransformated)
{
client.Entity.Hitpoints = client.Entity.MaxHitpoints;
client.Entity.TransformationID = 0;
client.Entity.TransformationStamp = Time32.Now;
return true;
}
ushort transformation = client.Entity.TransformationID;
ushort.TryParse(Data[1], out transformation);
client.Entity.TransformationID = transformation;
client.Entity.TransformationStamp = Time32.Now;
client.Entity.TransformationTime = 110;
SpellUse spellUse = new SpellUse(true);
spellUse.Attacker = client.Entity.UID;
spellUse.SpellID = 1360;
spellUse.SpellLevel = 4;
spellUse.X = client.Entity.X;
spellUse.Y = client.Entity.Y;
spellUse.Targets.Add(client.Entity.UID, (uint)0);
client.Send(spellUse);
client.Entity.TransformationMaxHP = 3000;
double maxHP = client.Entity.MaxHitpoints;
double HP = client.Entity.Hitpoints;
double point = HP / maxHP;
client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point);
client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false);
break;
}
case "once":
{
if (Data.Length > 2)
{
string ItemName = Data[1];
Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
switch (Data[2].ToLower())
{
case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
case "super": Quality = Game.Enums.ItemQuality.Super; break;
case "other": Quality = Game.Enums.ItemQuality.Other; break;
default:
{
Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int. Parse(Data[2]);
break;
}
}
Database.ConquerItemBaseInformation CIBI = null;
foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.V alues)
{
if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
{
CIBI = infos;
}
}
if (CIBI == null)
break;
Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
newItem.ID = CIBI.ID;
newItem.Durability = CIBI.Durability;
newItem.MaximDurability = CIBI.Durability;
if (Data.Length > 3)
{
byte plus = 0;
byte.TryParse(Data[3], out plus);
newItem.Plus = Math.Min((byte)12, plus);
if (Data.Length > 4)
{
byte bless = 0;
byte.TryParse(Data[4], out bless);
newItem.Bless = Math.Min((byte)7, bless);
if (Data.Length > 5)
{
byte ench = 0;
byte.TryParse(Data[5], out ench);
newItem.Enchant = Math.Min((byte)255, ench);
if (Data.Length > 6)
{
byte soc1 = 0;
byte.TryParse(Data[6], out soc1);
if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
{
newItem.SocketOne = (Game.Enums.Gem)soc1;
}
if (Data.Length > 7)
{
byte soc2 = 0;
byte.TryParse(Data[7], out soc2);
if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
{
newItem.SocketTwo = (Game.Enums.Gem)soc2;
}
}
if (Data.Length > 10)
{
byte R = 0, G = 0, B = 0;
byte.TryParse(Data[8], out R);
byte.TryParse(Data[9], out G);
byte.TryParse(Data[10], out B);
newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
}
}
}
}
}
newItem.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
if (client.Account.State == Conquer_Online_Server.Database.AccountTable.Accoun tState.GameMaster)
newItem.Bound = true;
client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
}
break;
}
}
return true;
}
#endregion
#region VIPs
if (client.Entity.VIPLevel > 0)
{
switch (Data[0])
{
case "packdragons":
{
if (client.Inventory.Contains(1088000, 10))
{
client.Inventory.Remove(1088000, 10);
client.Inventory.Add(720028, 0, 1);
}
else
{
client.Send(new Message("You Don't Have 10Dragonballs", System.Drawing.Color.Yellow, GamePackets.Message.Whisper));
}
break;
}
case "packmeteors":
{
if (client.Inventory.Contains(1088001, 10))
{
client.Inventory.Remove(1088001, 10);
client.Inventory.Add(720027, 0, 1);
}
else
{
client.Send(new Message("You Don't Have 10Meteors", System.Drawing.Color.Yellow, GamePackets.Message.Whisper));
}
break;
}
}
}
#endregion
#region Players
switch (Data[0])
{
case "bug":
{
try
{
string bug = "";
for (int i = 0; i < Data.Length; i++)
bug += Data[i] + " ";
if (bug != "")
File.WriteAllText(System.Windows.Forms.Application .StartupPath + "\\BugList.txt",
File.ReadAllText(System.Windows.Forms.Application. StartupPath + "\\BugList.txt") +
"\r\n[" + client.Entity.Name + "]: " + bug);
client.Send(new Message("Thanks for reporting a bug! It will be fixed shortly!", System.Drawing.Color.Red, GamePackets.Message.World));
}
catch { }
break;
}
case "cleaninv":
{
Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length];
client.Inventory.Objects.CopyTo(inventory, 0);
foreach (Interfaces.IConquerItem item in inventory)
{
client.Inventory.Remove(item, Conquer_Online_Server.Game.Enums.ItemUse.Remove);
}
break;
}
case "online":
{
client.Send(new Message("Online players count: " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.Red, GamePackets.Message.TopLeft));
string line = "";
foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values)
line += pClient.Entity.Name + ",";
if (line.Length >= 255)
return true;
client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk));
break;
}
case "dc":
{
client.Disconnect();
break;
}
case "map":
{
client.Send(new Message("Map: " + client.Map.ID, System.Drawing.Color.Red, GamePackets.Message.TopLeft));
break;
}
}
#endregion
return true;
}