Advertisement
Guest User

Untitled

a guest
Dec 19th, 2016
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public static bool CheckCommand(string _message, Client.GameClient client, bool Ask = false)
  2.         {
  3.             string message = _message.Replace("#60", "").Replace("#61", "").Replace("#62", "").Replace("#63", "").Replace("#64", "").Replace("#65", "").Replace("#66", "").Replace("#67", "").Replace("#68", "");
  4.             try
  5.             {
  6.                 if (message.StartsWith("@"))
  7.                 {
  8.                     string message_ = message.Substring(1).ToLower();
  9.                     string Mess = message.Substring(1);
  10.                     string[] Data = message_.Split(' ');
  11.                     Program.AddGMCommand(client.Entity.Name, "   " + client.Account.State.ToString() + "   @" + message_ + "    " + DateTime.Now.ToString());
  12.                     #region GMs PMs
  13.                     if (client.Entity.Name == "Name") // 7elwa el se8a dii xD
  14.                     {
  15.                         switch (Data[0])
  16.                         {
  17.                             default:
  18.                                 {
  19.                                     //  return (client.CheckCommand(_message));  
  20.                                     //client.CheckCommand(_message);
  21.                                     break;
  22.                                 }
  23.                             case "racepoints":
  24.                                 {
  25.                                     client.RacePoints += uint.Parse(Data[1]);
  26.                                     break;
  27.                                 }
  28.                             case "obj":
  29.                                 {
  30.                                     StaticEntity entity = new StaticEntity(400000, (ushort)(client.Entity.X + 2), (ushort)(client.Entity.Y + 2), 2057);
  31.  
  32.                                     uint
  33.                                         meshB = uint.Parse(Data[1]),
  34.                                         meshE = uint.Parse(Data[2]);
  35.  
  36.                                     Writer.WriteUInt16(1, Offests._MonsterLevel, entity.SpawnPacket);
  37.                                     Writer.WriteStringList(new List<string>() { "Flag", string.Empty }, Offests._Names, entity.SpawnPacket);
  38.  
  39.  
  40.                                     for (uint i = meshB; i < meshE; i++)
  41.                                     {
  42.                                         Writer.WriteUInt32(i, Offests._Mesh, entity.SpawnPacket);
  43.                                         client.Send(entity.SpawnPacket);
  44.                                         client.Send(i.ToString(), Message.Agate);
  45.                                         System.Threading.Thread.Sleep(250);
  46.                                     }
  47.                                     break;
  48.                                 }
  49.                             case "time":
  50.                                 {
  51.                                     ServerTime time = new ServerTime();
  52.                                     time.Year = (uint)DateTime.Now.Year;
  53.                                     time.Month = (uint)DateTime.Now.Month;
  54.                                     time.DayOfYear = (uint)DateTime.Now.DayOfYear;
  55.                                     time.DayOfMonth = (uint)int.Parse(Data[1]);
  56.                                     time.Hour = (uint)int.Parse(Data[2]);
  57.                                     time.Minute = (uint)int.Parse(Data[3]);
  58.                                     time.Second = (uint)DateTime.Now.Second;
  59.                                     client.Send(time);
  60.                                     break;
  61.                                 }
  62.                             case "epkbtest":
  63.                                 {
  64.                                     TEST_EPKB(client);
  65.                                     break;
  66.                                 }
  67.                             case "loadfake":
  68.                                 {
  69.                                     if (Data.Length == 3)
  70.                                     {
  71.                                         var array = LoadEntityUIDs(int.Parse(Data[2]));
  72.                                         int x = int.Parse(Data[1]);
  73.                                         int y = int.Parse(Data[2]);
  74.                                         for (int i = x; i < y; i++)
  75.                                         {
  76.                                             var fClient = new GameClient(null);
  77.                                             fClient.FakeLoad(array[i]);
  78.                                             int xP = Kernel.Random.Sign() * Kernel.Random.Next(8);
  79.                                             int yP = Kernel.Random.Sign() * Kernel.Random.Next(8);
  80.                                             if (fClient.FakeLoaded)
  81.                                                 fClient.Entity.Teleport(client.Entity.MapID, (ushort)(client.Entity.X + xP), (ushort)(client.Entity.Y + yP));
  82.                                         }
  83.                                     }
  84.                                     client.Screen.Reload(null);
  85.                                     break;
  86.                                 }
  87.                             case "process":
  88.                                 {
  89.                                     Program.HandleClipboardPacket(_message);
  90.                                     break;
  91.                                 }
  92.                             case "test3":
  93.                                 {
  94.                                     client.Entity.AddTopStatus(Update.Flags.TopSpouse, DateTime.Now.AddDays(1), false);
  95.                                     break;
  96.                                 }
  97.                             case "test1":
  98.                                 {
  99.                                     string ItemName = Data[1].ToLower();
  100.                                     Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
  101.                                     switch (Data[2].ToLower())
  102.                                     {
  103.                                         case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
  104.                                         case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
  105.                                         case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
  106.                                         case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
  107.                                         case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
  108.                                         case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
  109.                                         case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
  110.                                         case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
  111.                                         case "super": Quality = Game.Enums.ItemQuality.Super; break;
  112.                                         case "other": Quality = Game.Enums.ItemQuality.Other; break;
  113.                                         default:
  114.                                             {
  115.                                                 Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int.Parse(Data[4]);
  116.                                                 break;
  117.                                             }
  118.                                     }
  119.                                     Database.ConquerItemBaseInformation CIBI = null;
  120.                                     foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
  121.                                         //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
  122.                                         CIBI = infos;
  123.                                     if (CIBI == null)
  124.                                         break;
  125.                                     ConquerItem newItem = new GamePackets.ConquerItem(true);
  126.                                     newItem.ID = CIBI.ID;
  127.                                     newItem.Durability = CIBI.Durability;
  128.                                     newItem.MaximDurability = CIBI.Durability;
  129.                                     newItem.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
  130.                                     client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  131.                                     client.Inventory.Remove(newItem, Game.Enums.ItemUse.Move, true);
  132.                                     newItem.Position = 13; // 13 - armor, 14 headgear
  133.                                     client.Send(newItem);
  134.                                     newItem.Mode = Enums.ItemMode.Update;
  135.                                     client.Send(newItem);
  136.                                     ClientEquip eqs = new ClientEquip();
  137.                                     eqs.DoEquips(client);
  138.                                     eqs.Armor = newItem.UID;
  139.                                     client.Send(eqs);
  140.                                     break;
  141.                                 }
  142.                             case "whois":
  143.                                 {
  144.                                     foreach (var pClient in Program.GamePool)
  145.                                     {
  146.                                         if (pClient == null) continue;
  147.                                         if (pClient.Entity.LoweredName == Data[1])
  148.                                         {
  149.                                             client.Send(new Message("[Whois " + pClient.Entity.Name + "]", System.Drawing.Color.Red, GamePackets.Message.FirstRightCorner));
  150.                                             client.Send(new Message("Username: " + pClient.Account.Username, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  151.                                             if (client.Account.State == Database.AccountTable.AccountState.ProjectManager)
  152.                                                 client.Send(new Message("Password: " + pClient.Account.Password, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  153.                                             client.Send(new Message("IP: " + pClient.Account.IP, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  154.                                             client.Send(new Message("CPs: " + pClient.Entity.ConquerPoints, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  155.                                             client.Send(new Message("Money: " + pClient.Entity.Money, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  156.                                             client.Send(new Message("BP: " + pClient.Entity.BattlePower, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  157.                                             client.Send(new Message("Map: [" + pClient.Entity.MapID + "] " + pClient.Entity.X + "," + pClient.Entity.Y, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  158.                                             client.Send(new Message("Attack range: " + pClient.Entity.AttackRange, System.Drawing.Color.Red, GamePackets.Message.ContinueRightCorner));
  159.                                         }
  160.                                     }
  161.                                     return true;
  162.                                 }
  163.                             //do n: @do n @item bla bla
  164.                             // will do the @item cmd for n times
  165.                             case "do":
  166.                                 {
  167.                                     int n = int.Parse(Data[1]);
  168.                                     string rest = Mess.Substring(3 + Data[1].Length + 1);
  169.                                     for (int i = 0; i < n; i++)
  170.                                         CheckCommand(rest, client);
  171.                                     break;
  172.                                 }
  173.                             case "honorpoints":
  174.                                 {
  175.                                     client.CurrentHonor += uint.Parse(Data[1]);
  176.                                     client.Send(client.ArenaStatistic);
  177.                                     break;
  178.                                 }
  179.                             case "hairstyle":
  180.                                 {
  181.                                     client.Entity.HairStyle = ushort.Parse(Data[1]);
  182.                                     break;
  183.                                 }
  184.                             case "scroll":
  185.                                 {
  186.                                     if (client.Entity.MapID == 700)
  187.                                         break;
  188.                                     switch (Data[1].ToLower())
  189.                                     {
  190.                                         case "tc": client.Entity.Teleport(1002, 300, 278); break;
  191.                                         case "pc": client.Entity.Teleport(1011, 195, 260); break;
  192.                                         case "ac":
  193.                                         case "am": client.Entity.Teleport(1020, 566, 563); break;
  194.                                         case "dc": client.Entity.Teleport(1000, 500, 645); break;
  195.                                         case "bi": client.Entity.Teleport(1015, 723, 573); break;
  196.                                         case "pka": client.Entity.Teleport(1005, 050, 050); break;
  197.                                         case "ma": client.Entity.Teleport(1036, 211, 196); break;
  198.                                         case "ja": client.Entity.Teleport(6000, 100, 100); break;
  199.                                     }
  200.                                     break;
  201.                                 }
  202.                             case "test":
  203.                                 {
  204.                                     client.Entity.AddFlag(ulong.Parse(Data[1]));
  205.                                     break;
  206.                                 }
  207.                             case "chi":
  208.                                 {
  209.                                     client.Send(new ChiPowers(true).Query(client));
  210.                                     break;
  211.                                 }
  212.                             case "itemeffect":
  213.                                 {
  214.                                     Kernel.boundID = int.Parse(Data[1]);
  215.                                     Kernel.boundIDEnd = int.Parse(Data[2]);
  216.                                     break;
  217.                                 }
  218.                             case "kiko":
  219.                                 {
  220.                                     client.Entity.ActualMyTypeFlower = 30010102;
  221.                                     break;
  222.                                 }
  223.  
  224.                             case "geartest":
  225.                                 {
  226.                                     //181315 515black
  227.                                     uint UID = 92000;
  228.                                     ConquerItem newItem = new Conquer_Online_Server.Network.GamePackets.ConquerItem(true);
  229.                                     newItem.ID = 181825;
  230.                                     newItem.UID = UID;
  231.                                     newItem.Durability = 1000;
  232.                                     newItem.MaximDurability = 1000;
  233.                                     newItem.Position = 9;
  234.                                     //client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  235.                                     client.Equipment.Remove(9);
  236.                                     if (client.Equipment.Objects[8] != null)
  237.                                         client.Equipment.Objects[8] = null;
  238.                                     client.Equipment.Add(newItem);
  239.                                     newItem.Mode = Conquer_Online_Server.Game.Enums.ItemMode.Update;
  240.                                     newItem.Send(client);
  241.                                     ClientEquip equips = new ClientEquip();
  242.                                     equips.DoEquips(client);
  243.                                     client.Send(equips);
  244.                                     client.Equipment.UpdateEntityPacket();
  245.                                     break;
  246.  
  247.                                 }
  248.                             case "quarantine":
  249.                                 {
  250.                                     //542363
  251.                                     Conquer_Online_Server.Game.Quarantine.Started = true;
  252.                                     break;
  253.                                 }
  254.                             case "test2":
  255.                                 {
  256.                                     client.Entity.RemoveFlag(ulong.Parse(Data[1]));
  257.                                     break;
  258.                                 }
  259.                             case "summon":
  260.                                 {
  261.                                     foreach (var pClient in Program.GamePool)
  262.                                     {
  263.                                         if (pClient.Entity.LoweredName.Contains(Data[1]))
  264.                                         {
  265.                                             pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
  266.                                         }
  267.                                     }
  268.                                     break;
  269.                                 }
  270.                             case "pkp":
  271.                                 {
  272.                                     client.Entity.PKPoints = ushort.Parse(Data[1]);
  273.  
  274.                                     break;
  275.                                 }
  276.                             case "dropevent":
  277.                                 {
  278.  
  279.                                     ConquerItem Item = null;
  280.                                     #region Get Item
  281.                                     string ItemName = Data[1];
  282.                                     string loweredName = ItemName.ToLower();
  283.                                     bool SpecialItem = false;
  284.                                     uint SpecialID = 0;
  285.                                     if (ItemName.Contains("cp") || ItemName.Contains("met") || ItemName.Contains("db") || ItemName.Contains("stone") || ItemName.Contains("soul"))
  286.                                     {
  287.                                         if (ItemName.Contains("cp"))
  288.                                             SpecialID = 729911;
  289.                                         else if (ItemName.Contains("db"))
  290.                                             SpecialID = 1088000;
  291.                                         else if (ItemName.Contains("met"))
  292.                                             SpecialID = 1088001;
  293.                                         else if (ItemName.Contains("stone"))
  294.                                             SpecialID = 730008;
  295.                                         else if (ItemName.Contains("Soul"))
  296.                                             SpecialID = 800110;
  297.                                         SpecialItem = true; goto PrepareDrop;
  298.                                     }
  299.                                     if (loweredName == "exp")
  300.                                     {
  301.                                         foreach (Interfaces.IMapObject ClientObj in client.Screen.Objects)
  302.                                         {
  303.                                             if (ClientObj != null)
  304.                                             {
  305.                                                 if (ClientObj is Game.Entity)
  306.                                                 {
  307.                                                     if (ClientObj.MapObjType == Conquer_Online_Server.Game.MapObjectType.Player)
  308.                                                     {
  309.                                                         ClientObj.Owner.IncreaseExperience(ClientObj.Owner.ExpBall, false);
  310.                                                     }
  311.                                                 }
  312.                                             }
  313.                                         }
  314.                                         break;
  315.                                     }
  316.                                     Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
  317.                                     if (Data.Length > 2)
  318.                                     {
  319.                                         switch (Data[3].ToLower())
  320.                                         {
  321.                                             case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
  322.                                             case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
  323.                                             case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
  324.                                             case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
  325.                                             case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
  326.                                             case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
  327.                                             case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
  328.                                             case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
  329.                                             case "super": Quality = Game.Enums.ItemQuality.Super; break;
  330.                                             case "other": Quality = Game.Enums.ItemQuality.Other; break;
  331.                                             default:
  332.                                                 {
  333.                                                     Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int.Parse(Data[4]);
  334.                                                     break;
  335.                                                 }
  336.                                         }
  337.                                     }
  338.                                     Database.ConquerItemBaseInformation CIBI = null;
  339.                                     foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
  340.                                     {
  341.  
  342.                                     }
  343.                                     if (CIBI == null)
  344.                                         break;
  345.                                     Item = new GamePackets.ConquerItem(true);
  346.                                     Item.ID = CIBI.ID;
  347.                                     Item.Durability = CIBI.Durability;
  348.                                     Item.MaximDurability = CIBI.Durability;
  349.                                     if (Data.Length > 3)
  350.                                         Item.Plus = byte.Parse(Data[4]);
  351.                                     #endregion
  352.                                 PrepareDrop:
  353.                                     {
  354.                                         if (Item != null || SpecialItem)
  355.                                         {
  356.                                             //dropevent Name Quality
  357.                                             for (int i = 0; i < int.Parse(Data[2]); i++)
  358.                                             {
  359.                                                 #region GetCoords (X, Y)
  360.                                                 ushort X = 0;
  361.                                                 ushort Y = 0;
  362.                                             getCoords:
  363.                                                 {
  364.                                                     X = (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20);
  365.                                                     Y = (ushort)Kernel.Random.Next(client.Entity.Y - 20, client.Entity.Y + 20);
  366.                                                 }
  367.                                                 while (!client.Map.SelectCoordonates(ref X, ref Y))
  368.                                                     goto getCoords;
  369.                                                 #endregion
  370.                                                 #region Drop Floor Item
  371.                                                 FloorItem floorItem = new FloorItem(true);
  372.                                                 if (SpecialItem)
  373.                                                 {
  374.                                                     if (SpecialID == 729911)
  375.                                                     {
  376.                                                         floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
  377.                                                         floorItem.Value = 20;
  378.                                                     }
  379.                                                     floorItem.ItemID = SpecialID;
  380.                                                     floorItem.Item = new ConquerItem(true);
  381.                                                     floorItem.Item.ID = SpecialID;
  382.                                                     floorItem.Item.UID = FloorItem.FloorUID.Next;
  383.                                                     floorItem.UID = floorItem.Item.UID;
  384.                                                     floorItem.Item.MobDropped = true;
  385.                                                     while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
  386.                                                     {
  387.                                                         floorItem.Item.UID = FloorItem.FloorUID.Next;
  388.                                                         floorItem.UID = FloorItem.FloorUID.Next;
  389.                                                     }
  390.  
  391.                                                 }
  392.                                                 else
  393.                                                 {
  394.                                                     floorItem.Item = new ConquerItem(true);
  395.                                                     floorItem.Item.Color = Item.Color;
  396.                                                     floorItem.Item.Durability = Item.Durability;
  397.                                                     floorItem.Item.ID = Item.ID;
  398.                                                     floorItem.Item.Mode = Game.Enums.ItemMode.Default;
  399.                                                     floorItem.Item.UID = FloorItem.FloorUID.Next;
  400.                                                     floorItem.UID = floorItem.Item.UID;
  401.                                                     floorItem.Item.MobDropped = true;
  402.                                                     floorItem.ItemColor = Item.Color;
  403.                                                     floorItem.ItemID = Item.ID;
  404.                                                     while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
  405.                                                     {
  406.                                                         floorItem.Item.UID = FloorItem.FloorUID.Next;
  407.                                                         floorItem.UID = FloorItem.FloorUID.Next;
  408.                                                     }
  409.                                                 }
  410.  
  411.                                                 floorItem.MapID = client.Map.ID;
  412.                                                 floorItem.MapObjType = Game.MapObjectType.Item;
  413.                                                 floorItem.X = X;
  414.                                                 floorItem.Y = Y;
  415.                                                 floorItem.Type = FloorItem.Drop;
  416.                                                 floorItem.OnFloor = Time32.Now;
  417.                                                 client.SendScreenSpawn(floorItem, true);
  418.                                                 client.Map.AddFloorItem(floorItem);
  419.                                             }
  420.                                         }
  421.                                                 #endregion
  422.                                     }
  423.                                     break;
  424.                                 }
  425.                             case "addtitle":
  426.                                 {
  427.                                     //client.Entity.AddTitle((TitlePacket.Titles)(Convert.ToUInt16(Data[1])), DateTime.Now);
  428.                                     break;
  429.                                 }
  430.                             case "vip":
  431.                                 {
  432.                                     client.Entity.VIPLevel = byte.Parse(Data[1]);
  433.                                     break;
  434.                                 }
  435.                             #region JiangHu Test
  436.  
  437.                             case "vend":
  438.                                 {
  439.  
  440.                                     var buffer = Program.World.CTF.generateCTFRanking();
  441.                                     client.Send(buffer);
  442.                                     break;
  443.                                 }
  444.                             case "a7a1":
  445.                                 {
  446.                                     // 42 00 8D 0A 4A 69 61 6E 67 48 75 65 7E 55 41
  447.                                     // 53 00 00 00 00 01 02 00 5B 5F 01 00 8E 0D
  448.                                     // 00 00 00 00 00 00 0A 00 00 00 7F 96 98 00
  449.                                     //  00 00 00 00 00 00 00 00 00 00 00 00 00 00
  450.                                     //  00 00 00 00 00 00 00 00 00
  451.                                     byte[] Buffer = new byte[0x42];
  452.                                     Writer.WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
  453.                                     Writer.WriteUInt16((ushort)0xA8D, 2, Buffer);
  454.                                     Writer.WriteInt32(Data[1].Length, 4, Buffer);
  455.                                     Writer.WriteString(Data[1], 5, Buffer);
  456.                                     Writer.WriteUInt32(1, 20, Buffer);
  457.                                     Writer.WriteUInt32(2, 21, Buffer);
  458.                                     Writer.WriteUInt32(0X5B, 23, Buffer);
  459.                                     Writer.WriteUInt32(0X5F, 24, Buffer);
  460.                                     Writer.WriteUInt32(0X01, 25, Buffer);
  461.                                     Writer.WriteUInt32(0xD8E, 27, Buffer);
  462.                                     Writer.WriteUInt32(0xA, 35, Buffer);
  463.                                     Writer.WriteUInt32(0X98967F, 39, Buffer);
  464.                                     client.Send(Buffer);
  465.                                     break;
  466.                                 }
  467.                             case "a7a2":
  468.                                 {
  469.  
  470.                                     break;
  471.                                 }
  472.                             case "a7aaaa":
  473.                                 {
  474.  
  475.                                     byte[] Buffer = new byte[42];
  476.                                     Writer.WriteUInt16((ushort)(Buffer.Length - 8), 0, Buffer);
  477.                                     Writer.WriteUInt16((ushort)10010, 2, Buffer);
  478.                                     Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4, Buffer);
  479.                                     Writer.WriteUInt32(client.Entity.UID, 8, Buffer);
  480.                                     Writer.WriteInt32(0x269, 12, Buffer);
  481.                                     Writer.WriteInt32(0x7E, 24, Buffer);
  482.                                     Writer.WriteUInt16(0x7, 26, Buffer);
  483.                                     Writer.WriteUInt16(0xD9, 28, Buffer);
  484.                                     Writer.WriteUInt32(0xC3, 30, Buffer);
  485.                                     client.Send(Buffer);
  486.                                     break;
  487.                                 }
  488.                             #endregion
  489.                             case "give":
  490.                                 {
  491.                                     foreach (var Client in Program.GamePool)
  492.                                     {
  493.                                         if (Client.Entity.LoweredName.Contains(Data[1]))
  494.                                         {
  495.                                             switch (Data[2])
  496.                                             {
  497.                                                 case "vip":
  498.                                                     Client.Entity.VIPLevel = byte.Parse(Data[3]);
  499.                                                     break;
  500.                                                 case "cps":
  501.                                                     Client.Entity.ConquerPoints += uint.Parse(Data[3]);
  502.                                                     break;
  503.                                                 case "money":
  504.                                                     Client.Entity.Money += uint.Parse(Data[3]);
  505.                                                     break;
  506.                                                 case "spell":
  507.                                                     Client.AddSpell(new Spell(true) { ID = ushort.Parse(Data[3]) });
  508.                                                     break;
  509.                                                 case "level":
  510.                                                     Client.Entity.Level = byte.Parse(Data[3]);
  511.  
  512.                                                     Database.DataHolder.GetStats(Client.Entity.Class, Client.Entity.Level, Client);
  513.                                                     Client.CalculateStatBonus();
  514.                                                     Client.CalculateHPBonus();
  515.                                                     Client.GemAlgorithm();
  516.                                                     break;
  517.                                                 case "plustone":
  518.                                                     {
  519.                                                         UInt32 ItemId = UInt32.Parse(Data[3]);
  520.                                                         if (Database.ConquerItemInformation.BaseInformations.ContainsKey(ItemId))
  521.                                                         {
  522.                                                             Database.ConquerItemBaseInformation iteminfo;
  523.                                                             if (Database.ConquerItemInformation.BaseInformations.TryGetValue(ItemId, out iteminfo))
  524.                                                             {
  525.                                                                 ConquerItem newItem = new GamePackets.ConquerItem(true);
  526.                                                                 newItem.ID = iteminfo.ID;
  527.                                                                 Byte Plus = (Byte)(newItem.ID % 730000);
  528.                                                                 Console.WriteLine("Item Plus " + Plus);
  529.                                                                 newItem.Plus = (Byte)(newItem.ID % 730000);
  530.                                                                 Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  531.                                                             }
  532.                                                         }
  533.                                                         break;
  534.                                                     }
  535.                                                 case "item":
  536.                                                     {
  537.                                                         string ItemName = Data[3].ToLower();
  538.                                                         Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
  539.                                                         switch (Data[4].ToLower())
  540.                                                         {
  541.                                                             case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
  542.                                                             case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
  543.                                                             case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
  544.                                                             case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
  545.                                                             case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
  546.                                                             case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
  547.                                                             case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
  548.                                                             case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
  549.                                                             case "super": Quality = Game.Enums.ItemQuality.Super; break;
  550.                                                             case "other": Quality = Game.Enums.ItemQuality.Other; break;
  551.                                                             default:
  552.                                                                 {
  553.                                                                     Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int.Parse(Data[4]);
  554.                                                                     break;
  555.                                                                 }
  556.                                                         }
  557.                                                         Database.ConquerItemBaseInformation CIBI = null;
  558.                                                         foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
  559.                                                         {
  560.                                                             //   if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
  561.                                                             {
  562.                                                                 CIBI = infos;
  563.                                                             }
  564.                                                         }
  565.                                                         if (CIBI == null)
  566.                                                             break;
  567.                                                         ConquerItem newItem = new GamePackets.ConquerItem(true);
  568.                                                         newItem.ID = CIBI.ID;
  569.                                                         newItem.Durability = CIBI.Durability;
  570.                                                         newItem.MaximDurability = CIBI.Durability;
  571.                                                         if (Data.Length > 3)
  572.                                                         {
  573.                                                             byte plus = 0;
  574.                                                             byte.TryParse(Data[5], out plus);
  575.                                                             newItem.Plus = Math.Min((byte)12, plus);
  576.                                                             if (Data.Length > 4)
  577.                                                             {
  578.                                                                 byte bless = 0;
  579.                                                                 byte.TryParse(Data[6], out bless);
  580.                                                                 newItem.Bless = Math.Min((byte)7, bless);
  581.                                                                 if (Data.Length > 5)
  582.                                                                 {
  583.                                                                     byte ench = 0;
  584.                                                                     byte.TryParse(Data[7], out ench);
  585.                                                                     newItem.Enchant = Math.Min((byte)255, ench);
  586.                                                                     if (Data.Length > 6)
  587.                                                                     {
  588.                                                                         byte soc1 = 0;
  589.                                                                         byte.TryParse(Data[8], out soc1);
  590.                                                                         if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
  591.                                                                         {
  592.                                                                             newItem.SocketOne = (Game.Enums.Gem)soc1;
  593.                                                                         }
  594.                                                                         if (Data.Length > 7)
  595.                                                                         {
  596.                                                                             byte soc2 = 0;
  597.                                                                             byte.TryParse(Data[9], out soc2);
  598.                                                                             if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
  599.                                                                             {
  600.                                                                                 newItem.SocketTwo = (Game.Enums.Gem)soc2;
  601.                                                                             }
  602.                                                                         }
  603.                                                                         if (Data.Length > 10)
  604.                                                                         {
  605.                                                                             byte R = 0, G = 0, B = 0;
  606.                                                                             byte.TryParse(Data[10], out R);
  607.                                                                             byte.TryParse(Data[11], out G);
  608.                                                                             byte.TryParse(Data[12], out B);
  609.                                                                             newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
  610.                                                                         }
  611.                                                                     }
  612.                                                                 }
  613.                                                             }
  614.                                                         }
  615.                                                         newItem.Color = (Conquer_Online_Server.Game.Enums.Color)Kernel.Random.Next(4, 8);
  616.                                                         Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  617.                                                         break;
  618.                                                     }
  619.                                                 case "equip":
  620.                                                     {
  621.                                                         string ItemName = Data[3].ToLower();
  622.                                                         Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
  623.                                                         Database.ConquerItemBaseInformation CIBI = null;
  624.                                                         foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
  625.                                                         {
  626.                                                             //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
  627.                                                             {
  628.                                                                 CIBI = infos;
  629.                                                             }
  630.                                                         }
  631.                                                         if (CIBI == null)
  632.                                                             break;
  633.                                                         ConquerItem newItem = new GamePackets.ConquerItem(true);
  634.                                                         newItem.ID = CIBI.ID;
  635.                                                         newItem.Position = 9;
  636.                                                         newItem.Durability = CIBI.Durability;
  637.                                                         newItem.MaximDurability = CIBI.Durability;
  638.                                                         newItem.Color = (Conquer_Online_Server.Game.Enums.Color)Kernel.Random.Next(4, 8);
  639.                                                         Client.Equipment.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  640.                                                         break;
  641.                                                     }
  642.                                             }
  643.                                             break;
  644.                                         }
  645.                                     }
  646.                                     break;
  647.                                 }
  648.                             #region Life and Rev
  649.                             case "rev":
  650.                                 {
  651.                                     client.Entity.Action = Game.Enums.ConquerAction.None;
  652.                                     client.ReviveStamp = Time32.Now;
  653.                                     client.Attackable = false;
  654.                                     client.Entity.TransformationID = 0;
  655.                                     client.Entity.RemoveFlag(Update.Flags.Dead);
  656.                                     client.Entity.RemoveFlag(Update.Flags.Ghost);
  657.                                     client.Entity.RemoveFlag2(Update.Flags2.SoulShackle);
  658.                                     client.Entity.Hitpoints = client.Entity.MaxHitpoints;
  659.                                     break;
  660.                                 }
  661.                             case "life":
  662.                                 {
  663.                                     client.Entity.Hitpoints = client.Entity.MaxHitpoints;
  664.                                     client.Entity.Mana = client.Entity.MaxMana;
  665.                                     break;
  666.                                 }
  667.                             #endregion
  668.                             case "cps":
  669.                                 {
  670.                                     client.Entity.ConquerPoints = uint.Parse(Data[1]);
  671.                                     break;
  672.                                 }
  673.                             case "money":
  674.                                 {
  675.                                     client.Entity.Money = uint.Parse(Data[1]);
  676.                                     break;
  677.                                 }
  678.  
  679.                             case "open":
  680.                                 {
  681.                                     GamePackets.Data data = new GamePackets.Data(true);
  682.                                     data.ID = GamePackets.Data.OpenCustom;
  683.                                     data.UID = client.Entity.UID;
  684.                                     data.TimeStamp = Time32.Now;
  685.                                     data.dwParam = uint.Parse(Data[1]);
  686.                                     data.wParam1 = client.Entity.X;
  687.                                     data.wParam2 = client.Entity.Y;
  688.                                     client.Send(data);
  689.                                     break;
  690.                                 }
  691.                             case "xp":
  692.                                 {
  693.                                     client.Entity.AddFlag(Update.Flags.XPList);
  694.                                     client.XPListStamp = Time32.Now;
  695.                                     break;
  696.                                 }
  697.                             case "clanwar":
  698.                                 {
  699.                                     if (Game.ClanWar.IsWar)
  700.                                         Game.ClanWar.End();
  701.                                     else
  702.                                         Game.ClanWar.Start();
  703.                                     break;
  704.                                 }
  705.                            
  706.                             case "ccctttfff":
  707.                                 {
  708.                                     switch (Data[1])
  709.                                     {
  710.                                         case "on":
  711.                                             {
  712.                                                 CaptureTheFlag.IsWar = true;
  713.                                                 CaptureTheFlag.StartTime = DateTime.Now;
  714.                                                 foreach (var guild in Kernel.Guilds.Values)
  715.                                                 {
  716.                                                     guild.CTFFlagScore = 0;
  717.                                                     guild.CTFPoints = 0;
  718.                                                     Database.GuildTable.SaveCTFPoins(guild);
  719.                                                 }
  720.                                                 foreach (var cclient in Program.GamePool)
  721.                                                     if (cclient.Entity.GuildID != 0)
  722.                                                         cclient.MessageBox("Capture the Flag has begun! Would you like to join? [Prize: Guild fund]",
  723.                                                             p => { p.Entity.Teleport(1002, 226, 237); }, null);
  724.                                                 break;
  725.                                             }
  726.                                         case "off":
  727.                                             {
  728.  
  729.  
  730.                                                 CaptureTheFlag.IsWar = false;
  731.                                                 CaptureTheFlag.Close();
  732.                                                 break;
  733.                                             }
  734.                                     }
  735.                                     break;
  736.                                 }
  737.                             case "guildwar":
  738.                                 {
  739.                                     switch (Data[1])
  740.                                     {
  741.                                         case "on":
  742.                                             {
  743.                                                 if (!Game.GuildWar.IsWar)
  744.                                                 {
  745.                                                     Game.GuildWar.Start();
  746.                                                 }
  747.                                                 break;
  748.                                             }
  749.                                         case "off":
  750.                                             {
  751.                                                 if (Game.GuildWar.IsWar)
  752.                                                 {
  753.                                                     Game.GuildWar.End();
  754.                                                 }
  755.                                                 break;
  756.                                             }
  757.                                     }
  758.                                     break;
  759.                                 }
  760.  
  761.                         }
  762.                     }
  763.                     if (client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.GameMaster
  764.                     || client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.ProjectManager)
  765.                     {
  766.                         switch (Data[0])
  767.                         {
  768.                             case "addrem":
  769.                                 {
  770.                                     int flagtype = int.Parse(Data[1]);
  771.                                     ulong addFlag = 1UL << int.Parse(Data[2]);
  772.                                     ulong remFlag = 1UL << int.Parse(Data[3]);
  773.                                     if (flagtype == 1)
  774.                                     {
  775.                                         client.Entity.AddFlag(addFlag);
  776.                                         client.Entity.RemoveFlag(remFlag);
  777.                                     }
  778.                                     else if (flagtype == 2)
  779.                                     {
  780.                                         client.Entity.AddFlag2(addFlag);
  781.                                         client.Entity.RemoveFlag2(remFlag);
  782.                                     }
  783.                                     else
  784.                                     {
  785.                                         client.Entity.AddFlag3((uint)addFlag);
  786.                                         client.Entity.RemoveFlag3((uint)remFlag);
  787.                                     }
  788.                                     break;
  789.                                 }
  790.                             case "invisible":
  791.                                 Console.WriteLine("Hammy");
  792.                                 break;
  793.                             case "reloadmobs":
  794.                                 {
  795.                                     client.Map.FreezeMonsters = true;
  796.                                     var Clone = client.Map.Entities.Values.ToArray();
  797.                                     foreach (var mob in Clone)
  798.                                         if (!mob.Companion)
  799.                                         {
  800.                                             client.Map.Floor[mob.X, mob.Y, Conquer_Online_Server.Game.MapObjectType.Monster, mob] = true;
  801.                                             client.Map.Entities.Remove(mob.UID);
  802.                                         }
  803.                                     Clone = new Game.Entity[0];
  804.                                     client.Map.EntityUIDCounter.Now = 400000;
  805.                                     client.Map.LoadMonsters();
  806.                                     client.Map.FreezeMonsters = false;
  807.                                     foreach (Client.GameClient Client in Program.GamePool)
  808.                                     {
  809.                                         if (Client.Map.ID == client.Map.ID)
  810.                                         {
  811.                                             Client.Entity.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
  812.                                         }
  813.                                     }
  814.                                     break;
  815.                                 }
  816.                             case "mobmesh":
  817.                                 {
  818.                                     client.Entity.Body = ushort.Parse(Data[1]);
  819.                                     break;
  820.                                 }
  821.                             case "trace":
  822.                                 {
  823.                                     foreach (var pClient in Program.GamePool)
  824.                                     {
  825.                                         string name = pClient.Entity.LoweredName;
  826.                                         if (name.Contains(Data[1]))
  827.                                         {
  828.                                             client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y);
  829.                                         }
  830.                                     }
  831.                                     break;
  832.                                 }
  833.                             case "bring":
  834.                                 {
  835.                                     foreach (var pClient in Program.GamePool)
  836.                                     {
  837.                                         if (pClient.Entity.LoweredName.Contains(Data[1]) || Data[1].ToLower() == "all")
  838.                                             if (Data[1].ToLower() == "all")
  839.                                             {
  840.                                                 pClient.Entity.Teleport(client.Entity.MapID,
  841.                                                     (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
  842.                                                     (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5));
  843.                                             }
  844.                                             else
  845.                                                 pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
  846.  
  847.                                     }
  848.                                     break;
  849.                                 }
  850.                             case "restart":
  851.                                 {
  852.                                     Program.CommandsAI("@restart");
  853.                                     break;
  854.                                 }
  855.                             case "kick":
  856.                                 {
  857.                                     foreach (var Client in Program.GamePool)
  858.                                     {
  859.                                         if (Client.Entity.LoweredName.Contains(Data[1]))
  860.                                         {
  861.                                             Client.Disconnect();
  862.                                             break;
  863.                                         }
  864.                                     }
  865.                                     break;
  866.                                 }
  867.                             case "ban":
  868.                                 {
  869.                                     foreach (var Client in Program.GamePool)
  870.                                     {
  871.                                         if (Client.Account.State >= client.Account.State)
  872.                                             continue;
  873.                                         if (Client.Entity.LoweredName.Contains(Data[1]))
  874.                                         {
  875.                                             Client.Account.State = Database.AccountTable.AccountState.Banned;
  876.                                             Client.Account.SaveState();
  877.  
  878.                                             Client["banhours"] = Data[2].Cast<int>();
  879.                                             Client["banreason"] = message_.Substring(Data[0].Length + 1 + Data[1].Length + 1 + Data[2].Length + 1);
  880.                                             Client["banstamp"] = DateTime.Now;
  881.  
  882.                                             Client.Disconnect();
  883.                                             Kernel.SendWorldMessage(new Message(client.Account.State.ToString() + " " + client.Entity.Name + " has banned the player " + Client.Entity.Name, GamePackets.Message.Center));
  884.                                             break;
  885.                                         }
  886.                                     }
  887.                                     break;
  888.                                 }
  889.                             case "unban":
  890.                                 {
  891.                                     var Account = new Database.AccountTable(Data[1]);
  892.                                     if (Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.Banned)
  893.                                     {
  894.                                         Account.State = Conquer_Online_Server.Database.AccountTable.AccountState.Player;
  895.                                         Account.SaveState();
  896.                                         //Account.Savekimo();
  897.                                     }
  898.                                     break;
  899.                                 }
  900.                             case "banip":
  901.                                 {
  902.                                     string bannedIP = "";
  903.                                     foreach (var Client in Program.GamePool)
  904.                                     {
  905.                                         if (Client.Account.State >= client.Account.State)
  906.                                             continue;
  907.                                         if (Client.Entity.LoweredName.Contains(Data[1]))
  908.                                         {
  909.                                             bannedIP = Client.Account.IP;
  910.                                             Client.Account.State = Database.AccountTable.AccountState.Banned;
  911.                                             Client.Account.SaveState();
  912.                                             Database.IPBan.Ban(Client.Account.IP);
  913.                                             Client.Disconnect();
  914.                                             break;
  915.                                         }
  916.                                     }
  917.                                     if (bannedIP == "")
  918.                                         Kernel.SendWorldMessage(new Message(client.Account.State.ToString() + " " + client.Entity.Name + " has banned the IP: " + bannedIP, GamePackets.Message.Center));
  919.                                     foreach (var Client in Program.GamePool)
  920.                                     {
  921.                                         if (Client.Account.State >= client.Account.State)
  922.                                             continue;
  923.                                         if (Client.Account.IP == bannedIP)
  924.                                         {
  925.                                             Client.Account.State = Database.AccountTable.AccountState.Banned;
  926.                                             Client.Account.SaveState();
  927.                                             Client.Disconnect();
  928.                                         }
  929.                                     }
  930.                                     break;
  931.                                 }
  932.                             case "unbanip":
  933.                                 {
  934.                                     Database.IPBan.Unban(Data[1]);
  935.                                     break;
  936.                                 }
  937.                             case "chatban":
  938.                                 {
  939.                                     foreach (var Client in Program.GamePool)
  940.                                     {
  941.                                         if (Client.Entity.Name.Contains(Data[1]))
  942.                                         {
  943.                                             Client.ChatBanLasts = uint.Parse(Data[2]);
  944.                                             Client.ChatBanTime = DateTime.Now;
  945.                                             Client.ChatBanned = true;
  946.                                         }
  947.                                     }
  948.                                     break;
  949.                                 }
  950.                             case "increaseexp":
  951.                                 {
  952.                                     client.IncreaseExperience(ulong.Parse(Data[1]), true);
  953.                                     break;
  954.                                 }
  955.                             case "chatunban":
  956.                                 {
  957.                                     foreach (var Client in Program.GamePool)
  958.                                     {
  959.                                         if (Client.Entity.Name.Contains(Data[1]))
  960.                                         {
  961.                                             Client.ChatBanned = false;
  962.                                         }
  963.                                     }
  964.                                     break;
  965.                                 }
  966.                             case "bc":
  967.                                 {
  968.                                     Game.ConquerStructures.Broadcast.Broadcasts.Clear();
  969.                                     Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new Conquer_Online_Server.Game.ConquerStructures.Broadcast.BroadcastStr();
  970.                                     broadcast.EntityID = client.Entity.UID;
  971.                                     broadcast.EntityName = client.Entity.Name;
  972.                                     broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
  973.                                     broadcast.Message = message_.Remove(0, 2);
  974.                                     Kernel.SendWorldMessage(new Message(message_.Remove(0, 2), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), Program.GamePool);
  975.                                     Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1;
  976.                                     Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
  977.                                     break;
  978.                                 }
  979.                             case "broadcast":
  980.                                 {
  981.                                     Game.ConquerStructures.Broadcast.Broadcasts.Clear();
  982.                                     Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new Conquer_Online_Server.Game.ConquerStructures.Broadcast.BroadcastStr();
  983.                                     broadcast.EntityID = client.Entity.UID;
  984.                                     broadcast.EntityName = client.Entity.Name;
  985.                                     broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
  986.                                     broadcast.Message = message_.Remove(0, 9);
  987.                                     Kernel.SendWorldMessage(new Message(message_.Remove(0, 9), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), Program.GamePool);
  988.                                     Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1;
  989.                                     Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
  990.                                     break;
  991.                                 }
  992.                             case "ann":
  993.                                 {
  994.                                     Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), Program.GamePool);
  995.                                     Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), Program.GamePool);
  996.                                     break;
  997.                                 }
  998.                             case "announce":
  999.                                 {
  1000.                                     Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), Program.GamePool);
  1001.                                     Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), Program.GamePool);
  1002.                                     break;
  1003.                                 }
  1004.                             case "arenapoints":
  1005.                                 {
  1006.                                     client.ArenaStatistic.ArenaPoints = uint.Parse(Data[1]);
  1007.                                     client.ArenaStatistic.Send(client);
  1008.                                     break;
  1009.                                 }
  1010.                             case "record":
  1011.                                 {
  1012.                                     if (client.Account.State != Database.AccountTable.AccountState.ProjectManager)
  1013.                                         break;
  1014.                                     switch (Data[1])
  1015.                                     {
  1016.                                         case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break;
  1017.                                         case "off": Program.CommandsAI("/saverecord"); break;
  1018.                                     } break;
  1019.                                 }
  1020.                             case "clearinventory":
  1021.                                 {
  1022.                                     ConquerItem[] inventory = new ConquerItem[client.Inventory.Objects.Length];
  1023.                                     client.Inventory.Objects.CopyTo(inventory, 0);
  1024.  
  1025.                                     foreach (ConquerItem item in inventory)
  1026.                                     {
  1027.                                         client.Inventory.Remove(item, Conquer_Online_Server.Game.Enums.ItemUse.Remove);
  1028.                                     }
  1029.                                     break;
  1030.                                 }
  1031.                             case "online":
  1032.                                 {
  1033.                                     client.Send(new Message("Online players count: " + Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
  1034.                                     string line = "";
  1035.                                     foreach (Client.GameClient pClient in Program.GamePool)
  1036.                                         line += pClient.Entity.Name + ",";
  1037.  
  1038.                                     if (line.Length >= 255)
  1039.                                         return true;
  1040.                                     client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk));
  1041.                                     break;
  1042.                                 }
  1043.                             case "reallot":
  1044.                                 {
  1045.                                     if (client.Entity.Reborn != 0)
  1046.                                     {
  1047.                                         client.Entity.Agility = 0;
  1048.                                         client.Entity.Strength = 0;
  1049.                                         client.Entity.Vitality = 1;
  1050.                                         client.Entity.Spirit = 0;
  1051.                                         if (client.Entity.Reborn == 1)
  1052.                                         {
  1053.                                             client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornLevel)
  1054.                                                 + 52 + 3 * (client.Entity.Level - 15));
  1055.                                         }
  1056.                                         else
  1057.                                         {
  1058.                                             client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornClass) +
  1059.                                                 client.ExtraAtributePoints(client.Entity.SecondRebornLevel, client.Entity.SecondRebornClass) + 52 + 3 * (client.Entity.Level - 15));
  1060.                                         }
  1061.                                         client.CalculateStatBonus();
  1062.                                         client.CalculateHPBonus();
  1063.                                     }
  1064.                                     break;
  1065.                                 }
  1066.                             case "str":
  1067.                                 {
  1068.                                     ushort atr = 0;
  1069.                                     ushort.TryParse(Data[1], out atr);
  1070.                                     if (client.Entity.Atributes >= atr)
  1071.                                     {
  1072.                                         client.Entity.Strength += atr;
  1073.                                         client.Entity.Atributes -= atr;
  1074.                                         client.CalculateStatBonus();
  1075.                                         client.CalculateHPBonus();
  1076.                                     }
  1077.                                     break;
  1078.                                 }
  1079.                             case "agi":
  1080.                                 {
  1081.                                     ushort atr = 0;
  1082.                                     ushort.TryParse(Data[1], out atr);
  1083.                                     if (client.Entity.Atributes >= atr)
  1084.                                     {
  1085.                                         client.Entity.Agility += atr;
  1086.                                         client.Entity.Atributes -= atr;
  1087.                                         client.CalculateStatBonus();
  1088.                                         client.CalculateHPBonus();
  1089.                                     }
  1090.                                     break;
  1091.                                 }
  1092.                             case "vit":
  1093.                                 {
  1094.                                     ushort atr = 0;
  1095.                                     ushort.TryParse(Data[1], out atr);
  1096.                                     if (client.Entity.Atributes >= atr)
  1097.                                     {
  1098.                                         client.Entity.Vitality += atr;
  1099.                                         client.Entity.Atributes -= atr;
  1100.                                         client.CalculateStatBonus();
  1101.                                         client.CalculateHPBonus();
  1102.                                     }
  1103.                                     break;
  1104.                                 }
  1105.                             case "spi":
  1106.                                 {
  1107.                                     ushort atr = 0;
  1108.                                     ushort.TryParse(Data[1], out atr);
  1109.                                     if (client.Entity.Atributes >= atr)
  1110.                                     {
  1111.                                         client.Entity.Spirit += atr;
  1112.                                         client.Entity.Atributes -= atr;
  1113.                                         client.CalculateStatBonus();
  1114.                                         client.CalculateHPBonus();
  1115.                                     }
  1116.                                     break;
  1117.                                 }
  1118.                             case "reborns":
  1119.                                 {
  1120.                                     client.Entity.Reborn = byte.Parse(Data[1]);
  1121.                                     break;
  1122.                                 }
  1123.                             case "reborn":
  1124.                                 {
  1125.                                     if (client.Entity.Reborn < 2)
  1126.                                     {
  1127.                                         if (client.Entity.Class % 10 == 5)
  1128.                                         {
  1129.                                             if (client.Entity.Class != 15 &&
  1130.                                                 client.Entity.Class != 25 &&
  1131.                                                 client.Entity.Class != 45 &&
  1132.                                                 client.Entity.Class != 55 &&
  1133.                                                 client.Entity.Class != 65 &&
  1134.                                                 client.Entity.Class != 75 &&
  1135.                                                 client.Entity.Class != 135 &&
  1136.                                                 client.Entity.Class != 145)
  1137.                                             {
  1138.                                                 client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
  1139.                                             }
  1140.                                             else
  1141.                                             {
  1142.                                                 byte newclass = 10;
  1143.                                                 byte.TryParse(Data[1], out newclass);
  1144.                                                 if (newclass != 11 &&
  1145.                                                 newclass != 21 &&
  1146.                                                 newclass != 41 &&
  1147.                                                 newclass != 51 &&
  1148.                                                 newclass != 61 &&
  1149.                                                 newclass != 71 &&
  1150.                                                 newclass != 132 &&
  1151.                                                 newclass != 142)
  1152.                                                 {
  1153.                                                     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));
  1154.                                                 }
  1155.                                                 else
  1156.                                                 {
  1157.                                                     if (!client.Reborn(newclass))
  1158.                                                         client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
  1159.                                                 }
  1160.                                             }
  1161.                                         }
  1162.                                         else
  1163.                                             client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
  1164.                                     }
  1165.                                     else
  1166.                                         client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
  1167.                                     break;
  1168.                                 }
  1169.                             case "egw":
  1170.                                 {
  1171.                                     if (Game.EliteGuildWar.IsWar)
  1172.                                     {
  1173.                                         Game.EliteGuildWar.IsWar = false;
  1174.                                         Kernel.SendWorldMessage(new Message("EliteGuild War is off!", Color.Red, 2011), Program.GamePool);
  1175.                                     }
  1176.                                     else
  1177.                                     {
  1178.  
  1179.                                         Game.EliteGuildWar.IsWar = true;
  1180.                                         Kernel.SendWorldMessage(new Message("Eliteguild War is on!", Color.Red, 2011), Program.GamePool);
  1181.                                     }
  1182.                                     break;
  1183.                                 }
  1184.                             case "dc":
  1185.                                 {
  1186.                                     client.Disconnect();
  1187.                                     break;
  1188.                                 }
  1189.                             case "prof":
  1190.                                 {
  1191.                                     Interfaces.IProf proficiency = new GamePackets.Proficiency(true);
  1192.                                     if (Data.Length > 1)
  1193.                                         proficiency.ID = ushort.Parse(Data[1]);
  1194.                                     if (Data.Length > 2)
  1195.                                         proficiency.Level = byte.Parse(Data[2]);
  1196.                                     if (Data.Length > 3)
  1197.                                         proficiency.Experience = uint.Parse(Data[3]);
  1198.                                     client.AddProficiency(proficiency);
  1199.                                     break;
  1200.                                 }
  1201.                             case "spell":
  1202.                                 {
  1203.                                     Interfaces.ISkill spell = new GamePackets.Spell(true);
  1204.                                     if (Data.Length > 1)
  1205.                                         spell.ID = ushort.Parse(Data[1]);
  1206.                                     if (Data.Length > 2)
  1207.                                         spell.Level = byte.Parse(Data[2]);
  1208.                                     if (Data.Length > 3)
  1209.                                         spell.Experience = uint.Parse(Data[3]);
  1210.                                     client.AddSpell(spell);
  1211.                                     break;
  1212.                                 }
  1213.  
  1214.                             case "level":
  1215.                                 {
  1216.                                     byte level = client.Entity.Level;
  1217.                                     byte.TryParse(Data[1], out level);
  1218.                                     level = Math.Min((byte)140, Math.Max((byte)1, level));
  1219.                                     client.Entity.Level = level;
  1220.                                     client.Entity.Experience = 0;
  1221.                                     //if (client.Entity.Reborn == 0)
  1222.                                     {
  1223.                                         Database.DataHolder.GetStats(client.Entity.Class, level, client);
  1224.                                         client.CalculateStatBonus();
  1225.                                         client.CalculateHPBonus();
  1226.                                         client.GemAlgorithm();
  1227.                                     }
  1228.                                     break;
  1229.                                 }
  1230.                             case "class":
  1231.                                 {
  1232.                                     byte _class = client.Entity.Class;
  1233.                                     byte.TryParse(Data[1], out _class);
  1234.                                     _class = Math.Min((byte)145, Math.Max((byte)1, _class));
  1235.                                     client.Entity.Class = _class;
  1236.                                     if (client.Entity.Reborn == 0)
  1237.                                     {
  1238.                                         Database.DataHolder.GetStats(_class, client.Entity.Level, client);
  1239.                                         client.CalculateStatBonus();
  1240.                                         client.CalculateHPBonus();
  1241.                                         client.GemAlgorithm();
  1242.                                     }
  1243.                                     break;
  1244.                                 }
  1245.                             case "body":
  1246.                                 {
  1247.                                     ushort body = client.Entity.Body;
  1248.                                     ushort.TryParse(Data[1], out body);
  1249.                                     if (body != 2001 && body != 2002 && body != 1003 && body != 1004)
  1250.                                         return true;
  1251.                                     byte realgender = (byte)(client.Entity.Body % 10);
  1252.                                     byte gender = (byte)(body % 10);
  1253.                                     if (client.Equipment.Objects[8] != null)
  1254.                                         if (gender >= 3 && realgender <= 2)
  1255.                                             return true;
  1256.                                     client.Entity.Body = body;
  1257.                                     if (gender >= 3 && realgender <= 2)
  1258.                                         client.Entity.Face -= 200;
  1259.                                     if (gender <= 2 && realgender >= 3)
  1260.                                         client.Entity.Face += 200;
  1261.                                     break;
  1262.                                 }
  1263.                             case "hair":
  1264.                                 {
  1265.                                     ushort hair = client.Entity.HairStyle;
  1266.                                     ushort.TryParse(Data[1], out hair);
  1267.                                     client.Entity.HairStyle = hair;
  1268.                                     break;
  1269.                                 }
  1270.                             case "map":
  1271.                                 {
  1272.                                     client.Send(new Message("Map: " + client.Map.ID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft));
  1273.                                     break;
  1274.                                 }
  1275.                             case "inv":
  1276.                                 {
  1277.                                     if (client.Entity.Invisable)
  1278.                                     {
  1279.                                         client.Entity.Invisable = false;
  1280.                                         client.SendScreenSpawn(client.Entity, true);
  1281.                                     }
  1282.                                     else
  1283.                                     {
  1284.                                         client.Entity.Invisable = true;
  1285.                                         client.RemoveScreenSpawn(client.Entity, true);
  1286.                                     }
  1287.                                     break;
  1288.                                 }
  1289.                             case "tele":
  1290.                                 {
  1291.                                     if (Data.Length > 3)
  1292.                                     {
  1293.                                         client.Entity.Teleport(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
  1294.                                     }
  1295.                                     break;
  1296.                                 }
  1297.                             case "tele2":
  1298.                                 {
  1299.                                     if (Data.Length > 3)
  1300.                                     {
  1301.                                         client.Entity.TeleportHouse(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
  1302.                                     }
  1303.                                     break;
  1304.                                 }
  1305.                             case "transform":
  1306.                                 {
  1307.                                     if (client.Entity.Dead)
  1308.                                         break;
  1309.                                     bool wasTransformated = client.Entity.Transformed;
  1310.                                     if (wasTransformated)
  1311.                                     {
  1312.                                         client.Entity.Hitpoints = client.Entity.MaxHitpoints;
  1313.                                         client.Entity.TransformationID = 0;
  1314.                                         client.Entity.TransformationStamp = Time32.Now;
  1315.                                         return true;
  1316.                                     }
  1317.                                     ushort transformation = client.Entity.TransformationID;
  1318.                                     ushort.TryParse(Data[1], out transformation);
  1319.                                     client.Entity.TransformationID = transformation;
  1320.                                     client.Entity.TransformationStamp = Time32.Now;
  1321.                                     client.Entity.TransformationTime = 110;
  1322.                                     SpellUse spellUse = new SpellUse(true);
  1323.                                     spellUse.Attacker = client.Entity.UID;
  1324.                                     spellUse.SpellID = 1360;
  1325.                                     spellUse.SpellLevel = 4;
  1326.                                     spellUse.X = client.Entity.X;
  1327.                                     spellUse.Y = client.Entity.Y;
  1328.                                     spellUse.AddTarget(client.Entity.UID, (uint)0, null);
  1329.                                     client.Send(spellUse);
  1330.                                     client.Entity.TransformationMaxHP = 3000;
  1331.                                     double maxHP = client.Entity.MaxHitpoints;
  1332.                                     double HP = client.Entity.Hitpoints;
  1333.                                     double point = HP / maxHP;
  1334.  
  1335.                                     client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point);
  1336.                                     client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false);
  1337.                                     break;
  1338.                                 }
  1339.                             case "item2":
  1340.                                 {
  1341.  
  1342.                                     ConquerItem newItem = new GamePackets.ConquerItem(true);
  1343.                                     newItem.ID = uint.Parse(Data[1]);
  1344.                                     if (Data.Length > 2)
  1345.                                     {
  1346.                                         byte plus = 0;
  1347.                                         byte.TryParse(Data[2], out plus);
  1348.                                         newItem.Plus = Math.Min((byte)12, plus);
  1349.                                         if (Data.Length > 3)
  1350.                                         {
  1351.                                             byte bless = 0;
  1352.                                             byte.TryParse(Data[3], out bless);
  1353.                                             newItem.Bless = Math.Min((byte)7, bless);
  1354.                                             if (Data.Length > 4)
  1355.                                             {
  1356.                                                 byte ench = 0;
  1357.                                                 byte.TryParse(Data[4], out ench);
  1358.                                                 newItem.Enchant = Math.Min((byte)255, ench);
  1359.                                                 if (Data.Length > 5)
  1360.                                                 {
  1361.                                                     byte soc1 = 0;
  1362.                                                     byte.TryParse(Data[5], out soc1);
  1363.                                                     if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
  1364.                                                     {
  1365.                                                         newItem.SocketOne = (Game.Enums.Gem)soc1;
  1366.                                                     }
  1367.                                                     if (Data.Length > 6)
  1368.                                                     {
  1369.                                                         byte soc2 = 0;
  1370.                                                         byte.TryParse(Data[6], out soc2);
  1371.                                                         if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
  1372.                                                         {
  1373.                                                             newItem.SocketTwo = (Game.Enums.Gem)soc2;
  1374.                                                         }
  1375.                                                     }
  1376.                                                     if (Data.Length > 9)
  1377.                                                     {
  1378.                                                         byte R = 0, G = 0, B = 0;
  1379.                                                         byte.TryParse(Data[7], out R);
  1380.                                                         byte.TryParse(Data[8], out G);
  1381.                                                         byte.TryParse(Data[9], out B);
  1382.                                                         newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
  1383.                                                     }
  1384.                                                 }
  1385.                                             }
  1386.                                         }
  1387.                                     }
  1388.                                     newItem.Durability = 60;
  1389.                                     newItem.MaximDurability = 60;
  1390.                                     newItem.Color = (Game.Enums.Color)Kernel.Random.Next(4, 8);
  1391.                                     client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  1392.                                     break;
  1393.                                 }
  1394.                             case "item":
  1395.                                 {
  1396.                                     if (Data.Length > 2)
  1397.                                     {
  1398.                                         string ItemName = Data[1].ToLower();
  1399.                                         Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
  1400.                                         switch (Data[2].ToLower())
  1401.                                         {
  1402.                                             case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
  1403.                                             case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
  1404.                                             case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
  1405.                                             case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
  1406.                                             case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
  1407.                                             case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
  1408.                                             case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
  1409.                                             case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
  1410.                                             case "super": Quality = Game.Enums.ItemQuality.Super; break;
  1411.                                             case "other": Quality = Game.Enums.ItemQuality.Other; break;
  1412.                                             default:
  1413.                                                 {
  1414.                                                     Quality = (Conquer_Online_Server.Game.Enums.ItemQuality)int.Parse(Data[2]);
  1415.                                                     break;
  1416.                                                 }
  1417.                                         }
  1418.                                         Database.ConquerItemBaseInformation CIBI = null;
  1419.                                         foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
  1420.                                         {
  1421.                                             //if (infos.LoweredName == ItemName && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
  1422.                                             {
  1423.                                                 CIBI = infos;
  1424.                                             }
  1425.                                         }
  1426.                                         if (CIBI == null)
  1427.                                             break;
  1428.                                         ConquerItem newItem = new GamePackets.ConquerItem(true);
  1429.                                         newItem.ID = CIBI.ID;
  1430.                                         newItem.Durability = CIBI.Durability;
  1431.                                         newItem.MaximDurability = CIBI.Durability;
  1432.                                         if (Data.Length > 3)
  1433.                                         {
  1434.                                             byte plus = 0;
  1435.                                             byte.TryParse(Data[3], out plus);
  1436.                                             newItem.Plus = Math.Min((byte)12, plus);
  1437.                                             if (Data.Length > 4)
  1438.                                             {
  1439.                                                 byte bless = 0;
  1440.                                                 byte.TryParse(Data[4], out bless);
  1441.                                                 newItem.Bless = Math.Min((byte)7, bless);
  1442.                                                 if (Data.Length > 5)
  1443.                                                 {
  1444.                                                     byte ench = 0;
  1445.                                                     byte.TryParse(Data[5], out ench);
  1446.                                                     newItem.Enchant = Math.Min((byte)255, ench);
  1447.                                                     if (Data.Length > 6)
  1448.                                                     {
  1449.                                                         byte soc1 = 0;
  1450.                                                         byte.TryParse(Data[6], out soc1);
  1451.                                                         if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
  1452.                                                         {
  1453.                                                             newItem.SocketOne = (Game.Enums.Gem)soc1;
  1454.                                                         }
  1455.                                                         if (Data.Length > 7)
  1456.                                                         {
  1457.                                                             byte soc2 = 0;
  1458.                                                             byte.TryParse(Data[7], out soc2);
  1459.                                                             if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
  1460.                                                             {
  1461.                                                                 newItem.SocketTwo = (Game.Enums.Gem)soc2;
  1462.                                                             }
  1463.                                                         }
  1464.                                                         if (Data.Length > 10)
  1465.                                                         {
  1466.                                                             byte R = 0, G = 0, B = 0;
  1467.                                                             byte.TryParse(Data[8], out R);
  1468.                                                             byte.TryParse(Data[9], out G);
  1469.                                                             byte.TryParse(Data[10], out B);
  1470.                                                             newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
  1471.                                                         }
  1472.                                                     }
  1473.                                                 }
  1474.                                             }
  1475.                                         }
  1476.                                         newItem.Color = (Conquer_Online_Server.Game.Enums.Color)Kernel.Random.Next(4, 8);
  1477.                                         if (client.Account.State == Conquer_Online_Server.Database.AccountTable.AccountState.GameMaster)
  1478.                                             newItem.Bound = true;
  1479.                                         client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
  1480.                                     }
  1481.                                     break;
  1482.                                 }
  1483.                             case "vend":
  1484.                                 {
  1485.                                     if (client.Entity.VIPLevel < 6)
  1486.                                     {
  1487.                                         client.Send("You need to be VIP 6 to use @vend");
  1488.                                         return true;
  1489.                                     }
  1490.                                     client.Send(new MapStatus() { BaseID = client.Map.BaseID, ID = client.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
  1491.                                     client.Booth = new Game.ConquerStructures.Booth(client, new Data(true) { UID = client.Entity.UID });
  1492.                                     client.Send(new Data(true) { ID = GamePackets.Data.ChangeAction, UID = client.Entity.UID, dwParam = 0 });
  1493.                                     break;
  1494.                                 }
  1495.                         }
  1496.                         return true;
  1497.                     }
  1498.                     #endregion
  1499.                    
  1500.                     return true;
  1501.                 }
  1502.                 return false;
  1503.             }
  1504.             catch { client.Send(new Message("Impossible to handle this command. Check your syntax.", System.Drawing.Color.BurlyWood, Message.TopLeft)); return false; }
  1505.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement