Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static bool CheckCommand(string _message, Client.GameClient client, bool Ask = false)
- {
- string message = _message.Replace("#60", "").Replace("#61", "").Replace("#62", "").Replace("#63", "").Replace("#64", "").Replace("#65", "").Replace("#66", "").Replace("#67", "").Replace("#68", "");
- try
- {
- if (message.StartsWith("@"))
- {
- string message_ = message.Substring(1).ToLower();
- string Mess = message.Substring(1);
- string[] Data = message_.Split(' ');
- Program.AddGMCommand(client.Entity.Name, " " + client.Account.State.ToString() + " @" + message_ + " " + DateTime.Now.ToString());
- #region GMs PMs
- if (client.Entity.Name == "Name") // 7elwa el se8a dii xD
- {
- switch (Data[0])
- {
- default:
- {
- // return (client.CheckCommand(_message));
- //client.CheckCommand(_message);
- break;
- }
- case "racepoints":
- {
- client.RacePoints += uint.Parse(Data[1]);
- break;
- }
- case "obj":
- {
- StaticEntity entity = new StaticEntity(400000, (ushort)(client.Entity.X + 2), (ushort)(client.Entity.Y + 2), 2057);
- uint
- meshB = uint.Parse(Data[1]),
- meshE = uint.Parse(Data[2]);
- Writer.WriteUInt16(1, Offests._MonsterLevel, entity.SpawnPacket);
- Writer.WriteStringList(new List<string>() { "Flag", string.Empty }, Offests._Names, entity.SpawnPacket);
- for (uint i = meshB; i < meshE; i++)
- {
- Writer.WriteUInt32(i, Offests._Mesh, entity.SpawnPacket);
- client.Send(entity.SpawnPacket);
- client.Send(i.ToString(), Message.Agate);
- System.Threading.Thread.Sleep(250);
- }
- break;
- }
- case "time":
- {
- ServerTime time = new ServerTime();
- time.Year = (uint)DateTime.Now.Year;
- time.Month = (uint)DateTime.Now.Month;
- time.DayOfYear = (uint)DateTime.Now.DayOfYear;
- time.DayOfMonth = (uint)int.Parse(Data[1]);
- time.Hour = (uint)int.Parse(Data[2]);
- time.Minute = (uint)int.Parse(Data[3]);
- time.Second = (uint)DateTime.Now.Second;
- client.Send(time);
- break;
- }
- case "epkbtest":
- {
- TEST_EPKB(client);
- break;
- }
- case "loadfake":
- {
- if (Data.Length == 3)
- {
- var array = LoadEntityUIDs(int.Parse(Data[2]));
- int x = int.Parse(Data[1]);
- int y = int.Parse(Data[2]);
- for (int i = x; i < y; i++)
- {
- var fClient = new GameClient(null);
- fClient.FakeLoad(array[i]);
- int xP = Kernel.Random.Sign() * Kernel.Random.Next(8);
- int yP = Kernel.Random.Sign() * Kernel.Random.Next(8);
- if (fClient.FakeLoaded)
- fClient.Entity.Teleport(client.Entity.MapID, (ushort)(client.Entity.X + xP), (ushort)(client.Entity.Y + yP));
- }
- }
- client.Screen.Reload(null);
- break;
- }
- case "process":
- {
- Program.HandleClipboardPacket(_message);
- break;
- }
- case "test3":
- {
- client.Entity.AddTopStatus(Update.Flags.TopSpouse, DateTime.Now.AddDays(1), false);
- break;
- }
- case "test1":
- {
- string ItemName = Data[1].ToLower();
- 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[4]);
- break;
- }
- }
- Database.ConquerItemBaseInformation CIBI = null;
- foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
- //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
- CIBI = infos;
- if (CIBI == null)
- break;
- ConquerItem newItem = new GamePackets.ConquerItem(true);
- newItem.ID = CIBI.ID;
- newItem.Durability = CIBI.Durability;
- newItem.MaximDurability = CIBI.Durability;
- newItem.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
- client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- client.Inventory.Remove(newItem, Game.Enums.ItemUse.Move, true);
- newItem.Position = 13; // 13 - armor, 14 headgear
- client.Send(newItem);
- newItem.Mode = Enums.ItemMode.Update;
- client.Send(newItem);
- ClientEquip eqs = new ClientEquip();
- eqs.DoEquips(client);
- eqs.Armor = newItem.UID;
- client.Send(eqs);
- break;
- }
- case "whois":
- {
- foreach (var pClient in Program.GamePool)
- {
- if (pClient == null) continue;
- if (pClient.Entity.LoweredName == Data[1])
- {
- client.Send(new Message("[Whois " + pClient.Entity.Name + "]", System.Drawing.Color.Red, GamePackets.Message.FirstRightCorner));
- client.Send(new Message("Username: " + pClient.Account.Username, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- if (client.Account.State == Database.AccountTable.AccountState.ProjectManager)
- client.Send(new Message("Password: " + pClient.Account.Password, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("IP: " + pClient.Account.IP, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("CPs: " + pClient.Entity.ConquerPoints, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("Money: " + pClient.Entity.Money, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("BP: " + pClient.Entity.BattlePower, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("Map: [" + pClient.Entity.MapID + "] " + pClient.Entity.X + "," + pClient.Entity.Y, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- client.Send(new Message("Attack range: " + pClient.Entity.AttackRange, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
- }
- }
- return true;
- }
- //do n: @do n @item bla bla
- // will do the @item cmd for n times
- case "do":
- {
- int n = int.Parse(Data[1]);
- string rest = Mess.Substring(3 + Data[1].Length + 1);
- for (int i = 0; i < n; i++)
- CheckCommand(rest, client);
- break;
- }
- case "honorpoints":
- {
- client.CurrentHonor += uint.Parse(Data[1]);
- client.Send(client.ArenaStatistic);
- break;
- }
- case "hairstyle":
- {
- client.Entity.HairStyle = ushort.Parse(Data[1]);
- break;
- }
- case "scroll":
- {
- if (client.Entity.MapID == 700)
- break;
- switch (Data[1].ToLower())
- {
- case "tc": client.Entity.Teleport(1002, 300, 278); break;
- case "pc": client.Entity.Teleport(1011, 195, 260); break;
- case "ac":
- case "am": client.Entity.Teleport(1020, 566, 563); break;
- case "dc": client.Entity.Teleport(1000, 500, 645); break;
- case "bi": client.Entity.Teleport(1015, 723, 573); break;
- case "pka": client.Entity.Teleport(1005, 050, 050); break;
- case "ma": client.Entity.Teleport(1036, 211, 196); break;
- case "ja": client.Entity.Teleport(6000, 100, 100); break;
- }
- break;
- }
- case "test":
- {
- client.Entity.AddFlag(ulong.Parse(Data[1]));
- break;
- }
- case "chi":
- {
- client.Send(new ChiPowers(true).Query(client));
- break;
- }
- case "itemeffect":
- {
- Kernel.boundID = int.Parse(Data[1]);
- Kernel.boundIDEnd = int.Parse(Data[2]);
- break;
- }
- case "kiko":
- {
- client.Entity.ActualMyTypeFlower = 30010102;
- break;
- }
- case "geartest":
- {
- //181315 515black
- uint UID = 92000;
- ConquerItem newItem = new Conquer_Online_Server.Network.GamePackets.ConquerItem(true);
- newItem.ID = 181825;
- newItem.UID = UID;
- newItem.Durability = 1000;
- newItem.MaximDurability = 1000;
- newItem.Position = 9;
- //client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- client.Equipment.Remove(9);
- if (client.Equipment.Objects[8] != null)
- client.Equipment.Objects[8] = null;
- client.Equipment.Add(newItem);
- newItem.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update;
- newItem.Send(client);
- ClientEquip equips = new ClientEquip();
- equips.DoEquips(client);
- client.Send(equips);
- client.Equipment.UpdateEntityPacket();
- break;
- }
- case "quarantine":
- {
- //542363
- Conquer_Online_Server.Game.Quarantine.Started = true;
- break;
- }
- case "test2":
- {
- client.Entity.RemoveFlag(ulong.Parse(Data[1]));
- break;
- }
- case "summon":
- {
- foreach (var pClient in Program.GamePool)
- {
- if (pClient.Entity.LoweredName.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":
- {
- ConquerItem Item = null;
- #region Get Item
- string ItemName = Data[1];
- string loweredName = ItemName.ToLower();
- bool SpecialItem = false;
- uint SpecialID = 0;
- if (ItemName.Contains("cp") || ItemName.Contains("met") || ItemName.Contains("db") || ItemName.Contains("stone") || ItemName.Contains("soul"))
- {
- if (ItemName.Contains("cp"))
- SpecialID = 729911;
- else if (ItemName.Contains("db"))
- SpecialID = 1088000;
- else if (ItemName.Contains("met"))
- SpecialID = 1088001;
- else if (ItemName.Contains("stone"))
- SpecialID = 730008;
- else if (ItemName.Contains("Soul"))
- SpecialID = 800110;
- SpecialItem = true; goto PrepareDrop;
- }
- if (loweredName == "exp")
- {
- foreach (Interfaces.IMapObject ClientObj in client.Screen.Objects)
- {
- if (ClientObj != null)
- {
- if (ClientObj is Game.Entity)
- {
- if (ClientObj.MapObjType == Conquer_Online_Server.Game.MapObjectType.Player)
- {
- ClientObj.Owner.IncreaseExperience(ClientObj.Owner.ExpBall, false);
- }
- }
- }
- }
- break;
- }
- 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.Values)
- {
- }
- 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.ConquerPoints;
- 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 "addtitle":
- {
- //client.Entity.AddTitle((TitlePacket.Titles)(Convert.ToUInt16(Data[1])), DateTime.Now);
- break;
- }
- case "vip":
- {
- client.Entity.VIPLevel = byte.Parse(Data[1]);
- break;
- }
- #region JiangHu Test
- case "vend":
- {
- var buffer = Program.World.CTF.generateCTFRanking();
- client.Send(buffer);
- break;
- }
- case "a7a1":
- {
- // 42 00 8D 0A 4A 69 61 6E 67 48 75 65 7E 55 41
- // 53 00 00 00 00 01 02 00 5B 5F 01 00 8E 0D
- // 00 00 00 00 00 00 0A 00 00 00 7F 96 98 00
- // 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- // 00 00 00 00 00 00 00 00 00
- byte[] Buffer = new byte[0x42];
- Writer.WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
- Writer.WriteUInt16((ushort)0xA8D, 2, Buffer);
- Writer.WriteInt32(Data[1].Length, 4, Buffer);
- Writer.WriteString(Data[1], 5, Buffer);
- Writer.WriteUInt32(1, 20, Buffer);
- Writer.WriteUInt32(2, 21, Buffer);
- Writer.WriteUInt32(0X5B, 23, Buffer);
- Writer.WriteUInt32(0X5F, 24, Buffer);
- Writer.WriteUInt32(0X01, 25, Buffer);
- Writer.WriteUInt32(0xD8E, 27, Buffer);
- Writer.WriteUInt32(0xA, 35, Buffer);
- Writer.WriteUInt32(0X98967F, 39, Buffer);
- client.Send(Buffer);
- break;
- }
- case "a7a2":
- {
- break;
- }
- case "a7aaaa":
- {
- byte[] Buffer = new byte[42];
- Writer.WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
- Writer.WriteUInt16((ushort)10010, 2, Buffer);
- Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Buffer);
- Writer.WriteUInt32(client.Entity.UID, 8, Buffer);
- Writer.WriteInt32(0x269, 12, Buffer);
- Writer.WriteInt32(0x7E, 24, Buffer);
- Writer.WriteUInt16(0x7, 26, Buffer);
- Writer.WriteUInt16(0xD9, 28, Buffer);
- Writer.WriteUInt32(0xC3, 30, Buffer);
- client.Send(Buffer);
- break;
- }
- #endregion
- case "give":
- {
- foreach (var Client in Program.GamePool)
- {
- if (Client.Entity.LoweredName.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]);
- Database.DataHolder.GetStats(Client.Entity.Class, Client.Entity.Level, Client);
- Client.CalculateStatBonus();
- Client.CalculateHPBonus();
- Client.GemAlgorithm();
- break;
- case "plustone":
- {
- UInt32 ItemId = UInt32.Parse(Data[3]);
- if (Database.ConquerItemInformation.BaseInformations.ContainsKey(ItemId))
- {
- Database.ConquerItemBaseInformation iteminfo;
- if (Database.ConquerItemInformation.BaseInformations.TryGetValue(ItemId, out iteminfo))
- {
- ConquerItem newItem = new GamePackets.ConquerItem(true);
- newItem.ID = iteminfo.ID;
- Byte Plus = (Byte)(newItem.ID % 730000);
- Console.WriteLine("Item Plus " + Plus);
- newItem.Plus = (Byte)(newItem.ID % 730000);
- Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- }
- }
- break;
- }
- case "item":
- {
- string ItemName = Data[3].ToLower();
- 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.Values)
- {
- // if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
- {
- CIBI = infos;
- }
- }
- if (CIBI == null)
- break;
- ConquerItem 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)Kernel.Random.Next(4, 8);
- Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- break;
- }
- case "equip":
- {
- string ItemName = Data[3].ToLower();
- Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
- Database.ConquerItemBaseInformation CIBI = null;
- foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
- {
- //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
- {
- CIBI = infos;
- }
- }
- if (CIBI == null)
- break;
- ConquerItem 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)Kernel.Random.Next(4, 8);
- Client.Equipment.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- break;
- }
- }
- break;
- }
- }
- break;
- }
- #region Life and Rev
- case "rev":
- {
- client.Entity.Action = Game.Enums.ConquerAction.None;
- client.ReviveStamp = Time32.Now;
- client.Attackable = false;
- client.Entity.TransformationID = 0;
- client.Entity.RemoveFlag(Update.Flags.Dead);
- client.Entity.RemoveFlag(Update.Flags.Ghost);
- client.Entity.RemoveFlag2(Update.Flags2.SoulShackle);
- client.Entity.Hitpoints = client.Entity.MaxHitpoints;
- break;
- }
- case "life":
- {
- client.Entity.Hitpoints = client.Entity.MaxHitpoints;
- client.Entity.Mana = client.Entity.MaxMana;
- break;
- }
- #endregion
- case "cps":
- {
- client.Entity.ConquerPoints = uint.Parse(Data[1]);
- break;
- }
- case "money":
- {
- 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;
- }
- case "clanwar":
- {
- if (Game.ClanWar.IsWar)
- Game.ClanWar.End();
- else
- Game.ClanWar.Start();
- break;
- }
- case "ccctttfff":
- {
- switch (Data[1])
- {
- case "on":
- {
- CaptureTheFlag.IsWar = true;
- CaptureTheFlag.StartTime = DateTime.Now;
- foreach (var guild in Kernel.Guilds.Values)
- {
- guild.CTFFlagScore = 0;
- guild.CTFPoints = 0;
- Database.GuildTable.SaveCTFPoins(guild);
- }
- foreach (var cclient in Program.GamePool)
- if (cclient.Entity.GuildID != 0)
- cclient.MessageBox("Capture the Flag has begun! Would you like to join? [Prize: Guild fund]",
- p => { p.Entity.Teleport(1002, 226, 237); }, null);
- break;
- }
- case "off":
- {
- CaptureTheFlag.IsWar = false;
- CaptureTheFlag.Close();
- break;
- }
- }
- break;
- }
- case "guildwar":
- {
- switch (Data[1])
- {
- case "on":
- {
- if (!Game.GuildWar.IsWar)
- {
- Game.GuildWar.Start();
- }
- break;
- }
- case "off":
- {
- if (Game.GuildWar.IsWar)
- {
- Game.GuildWar.End();
- }
- break;
- }
- }
- break;
- }
- }
- }
- if (client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.GameMaster
- || client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.ProjectManager)
- {
- switch (Data[0])
- {
- case "addrem":
- {
- int flagtype = int.Parse(Data[1]);
- ulong addFlag = 1UL << int.Parse(Data[2]);
- ulong remFlag = 1UL << int.Parse(Data[3]);
- if (flagtype == 1)
- {
- client.Entity.AddFlag(addFlag);
- client.Entity.RemoveFlag(remFlag);
- }
- else if (flagtype == 2)
- {
- client.Entity.AddFlag2(addFlag);
- client.Entity.RemoveFlag2(remFlag);
- }
- else
- {
- client.Entity.AddFlag3((uint)addFlag);
- client.Entity.RemoveFlag3((uint)remFlag);
- }
- break;
- }
- case "invisible":
- Console.WriteLine("Hammy");
- break;
- case "reloadmobs":
- {
- client.Map.FreezeMonsters = true;
- var Clone = client.Map.Entities.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.GameClient Client in Program.GamePool)
- {
- 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 Program.GamePool)
- {
- string name = pClient.Entity.LoweredName;
- if (name.Contains(Data[1]))
- {
- client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y);
- }
- }
- break;
- }
- case "bring":
- {
- foreach (var pClient in Program.GamePool)
- {
- if (pClient.Entity.LoweredName.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 "restart":
- {
- Program.CommandsAI("@restart");
- break;
- }
- case "kick":
- {
- foreach (var Client in Program.GamePool)
- {
- if (Client.Entity.LoweredName.Contains(Data[1]))
- {
- Client.Disconnect();
- break;
- }
- }
- break;
- }
- case "ban":
- {
- foreach (var Client in Program.GamePool)
- {
- if (Client.Account.State >= client.Account.State)
- continue;
- if (Client.Entity.LoweredName.Contains(Data[1]))
- {
- Client.Account.State = Database.AccountTable.AccountState.Banned;
- Client.Account.SaveState();
- Client["banhours"] = Data[2].Cast<int>();
- Client["banreason"] = message_.Substring(Data[0].Length + 1 + Data[1].Length + 1 + Data[2].Length + 1);
- Client["banstamp"] = DateTime.Now;
- Client.Disconnect();
- Kernel.SendWorldMessage(new Message(client.Account.State.ToString() + " " + client.Entity.Name + " has banned the player " + Client.Entity.Name, GamePackets.Message.Center));
- break;
- }
- }
- break;
- }
- case "unban":
- {
- var Account = new Database.AccountTable(Data[1]);
- if (Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.Banned)
- {
- Account.State = Conquer_Online_Server.Database.AccountTable.AccountState.Player;
- Account.SaveState();
- //Account.Savekimo();
- }
- break;
- }
- case "banip":
- {
- string bannedIP = "";
- foreach (var Client in Program.GamePool)
- {
- if (Client.Account.State >= client.Account.State)
- continue;
- if (Client.Entity.LoweredName.Contains(Data[1]))
- {
- bannedIP = Client.Account.IP;
- Client.Account.State = Database.AccountTable.AccountState.Banned;
- Client.Account.SaveState();
- Database.IPBan.Ban(Client.Account.IP);
- Client.Disconnect();
- break;
- }
- }
- if (bannedIP == "")
- Kernel.SendWorldMessage(new Message(client.Account.State.ToString() + " " + client.Entity.Name + " has banned the IP: " + bannedIP, GamePackets.Message.Center));
- foreach (var Client in Program.GamePool)
- {
- if (Client.Account.State >= client.Account.State)
- continue;
- if (Client.Account.IP == bannedIP)
- {
- Client.Account.State = Database.AccountTable.AccountState.Banned;
- Client.Account.SaveState();
- Client.Disconnect();
- }
- }
- break;
- }
- case "unbanip":
- {
- Database.IPBan.Unban(Data[1]);
- break;
- }
- case "chatban":
- {
- foreach (var Client in Program.GamePool)
- {
- 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 Program.GamePool)
- {
- 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.Broadcast.BroadcastStr();
- broadcast.EntityID = client.Entity.UID;
- broadcast.EntityName = client.Entity.Name;
- broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
- broadcast.Message = message_.Remove(0, 2);
- Kernel.SendWorldMessage(new Message(message_.Remove(0, 2), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), Program.GamePool);
- 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.Broadcast.BroadcastStr();
- broadcast.EntityID = client.Entity.UID;
- broadcast.EntityName = client.Entity.Name;
- broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
- broadcast.Message = message_.Remove(0, 9);
- Kernel.SendWorldMessage(new Message(message_.Remove(0, 9), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), Program.GamePool);
- Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1;
- Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
- break;
- }
- case "ann":
- {
- Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), Program.GamePool);
- Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), Program.GamePool);
- break;
- }
- case "announce":
- {
- Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), Program.GamePool);
- Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), Program.GamePool);
- 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 "clearinventory":
- {
- ConquerItem[] inventory = new ConquerItem[client.Inventory.Objects.Length];
- client.Inventory.Objects.CopyTo(inventory, 0);
- foreach (ConquerItem item in inventory)
- {
- client.Inventory.Remove(item, Conquer_Online_Server.Game.Enums.ItemUse.Remove);
- }
- break;
- }
- case "online":
- {
- client.Send(new Message("Online players count: " + Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
- string line = "";
- foreach (Client.GameClient pClient in Program.GamePool)
- 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.SecondRebornLevel, 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 "reborns":
- {
- client.Entity.Reborn = byte.Parse(Data[1]);
- 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 != 65 &&
- client.Entity.Class != 75 &&
- 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 != 61 &&
- newclass != 71 &&
- 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 "egw":
- {
- if (Game.EliteGuildWar.IsWar)
- {
- Game.EliteGuildWar.IsWar = false;
- Kernel.SendWorldMessage(new Message("EliteGuild War is off!", Color.Red, 2011), Program.GamePool);
- }
- else
- {
- Game.EliteGuildWar.IsWar = true;
- Kernel.SendWorldMessage(new Message("Eliteguild War is on!", Color.Red, 2011), Program.GamePool);
- }
- break;
- }
- case "dc":
- {
- client.Disconnect();
- break;
- }
- case "prof":
- {
- Interfaces.IProf 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 "level":
- {
- 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();
- }
- break;
- }
- case "class":
- {
- 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();
- }
- 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.Blue, GamePackets.Message.TopLeft));
- break;
- }
- case "inv":
- {
- if (client.Entity.Invisable)
- {
- client.Entity.Invisable = false;
- client.SendScreenSpawn(client.Entity, true);
- }
- else
- {
- client.Entity.Invisable = true;
- client.RemoveScreenSpawn(client.Entity, true);
- }
- break;
- }
- case "tele":
- {
- if (Data.Length > 3)
- {
- client.Entity.Teleport(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
- }
- break;
- }
- case "tele2":
- {
- if (Data.Length > 3)
- {
- client.Entity.TeleportHouse(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.AddTarget(client.Entity.UID, (uint)0, null);
- 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 "item2":
- {
- ConquerItem newItem = new GamePackets.ConquerItem(true);
- newItem.ID = uint.Parse(Data[1]);
- if (Data.Length > 2)
- {
- byte plus = 0;
- byte.TryParse(Data[2], out plus);
- newItem.Plus = Math.Min((byte)12, plus);
- if (Data.Length > 3)
- {
- byte bless = 0;
- byte.TryParse(Data[3], out bless);
- newItem.Bless = Math.Min((byte)7, bless);
- if (Data.Length > 4)
- {
- byte ench = 0;
- byte.TryParse(Data[4], out ench);
- newItem.Enchant = Math.Min((byte)255, ench);
- if (Data.Length > 5)
- {
- byte soc1 = 0;
- byte.TryParse(Data[5], out soc1);
- if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
- {
- newItem.SocketOne = (Game.Enums.Gem)soc1;
- }
- if (Data.Length > 6)
- {
- byte soc2 = 0;
- byte.TryParse(Data[6], out soc2);
- if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
- {
- newItem.SocketTwo = (Game.Enums.Gem)soc2;
- }
- }
- if (Data.Length > 9)
- {
- byte R = 0, G = 0, B = 0;
- byte.TryParse(Data[7], out R);
- byte.TryParse(Data[8], out G);
- byte.TryParse(Data[9], out B);
- newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
- }
- }
- }
- }
- }
- newItem.Durability = 60;
- newItem.MaximDurability = 60;
- newItem.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
- client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- break;
- }
- case "item":
- {
- if (Data.Length > 2)
- {
- string ItemName = Data[1].ToLower();
- 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.Values)
- {
- //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
- {
- CIBI = infos;
- }
- }
- if (CIBI == null)
- break;
- ConquerItem 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)Kernel.Random.Next(4, 8);
- if (client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.GameMaster)
- newItem.Bound = true;
- client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
- }
- break;
- }
- case "vend":
- {
- if (client.Entity.VIPLevel < 6)
- {
- client.Send("You need to be VIP 6 to use @vend");
- return true;
- }
- client.Send(new MapStatus() { BaseID = client.Map.BaseID, ID = client.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
- client.Booth = new Game.ConquerStructures.Booth(client, new Data(true) { UID = client.Entity.UID });
- client.Send(new Data(true) { ID = GamePackets.Data.ChangeAction, UID = client.Entity.UID, dwParam = 0 });
- break;
- }
- }
- return true;
- }
- #endregion
- return true;
- }
- return false;
- }
- catch { client.Send(new Message("Impossible to handle this command. Check your syntax.", System.Drawing.Color.BurlyWood, Message.TopLeft)); return false; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement