public void Handle(Client.GameState client, byte[] myPacket) { try { switch (Info.ActionId) { case 0://Temper { #region Minors var packet2 = new byte[myPacket.Length - 4]; Array.Copy(myPacket, 4, packet2, 0, packet2.Length); var variable = Kernel.Read7BitEncodedInt(packet2).SelectMany(System.BitConverter.GetBytes).ToArray(); var variable2 = new byte[variable.Length - 8]; Array.Copy(variable, 8, variable2, 0, variable.Length - 8); var MinorsCount = (variable2.Length / 4); uint[] Minors = new uint[MinorsCount]; byte x = 0; for (int i = 0; i < MinorsCount; i++) { Minors[i] = BitConverter.ToUInt32(variable2, x); x += 4; } #endregion if (Minors != null) { ConquerItem Item; if (client.Equipment.TryGetItem(Info.ItemUID, out Item)) { foreach (var minor in Minors) { ConquerItem ItemPlus; if (client.Inventory.TryGetItem(minor, out ItemPlus)) { if (ItemPlus.ID == 730001 || ItemPlus.ID == 730002 || ItemPlus.ID == 730003 || ItemPlus.ID == 730004 || ItemPlus.ID == 730005 || ItemPlus.ID == 730006 || ItemPlus.ID == 730007 || ItemPlus.ID == 730008) { client.MessageBox("You can't temp the perfection with a stone "); return; } if (ItemPlus.ID == 300000) { client.MessageBox("You can't temp the perfection with a steed "); return; } Item.PerfectionProgress += GetPlusStonePoints(ItemPlus.ID == 300000 ? ItemPlus.Plus : ItemPlus.ID)/*Database.PerfectionTable.CostList[ItemPlus.ID].Progress*/; client.Inventory.Remove(minor, Game.Enums.ItemUse.Remove, true); } } while (Item.PerfectionProgress >= GetPerfectionProgress(Item)/*Database.PerfectionTable.UpgradeList.Where(i => i.Stars == (Item.Stars + 1)).FirstOrDefault().Progress*/) { Item.PerfectionProgress -= GetPerfectionProgress(Item)/*Database.PerfectionTable.UpgradeList.Where(i => i.Stars == (Item.Stars + 1)).FirstOrDefault().Progress*/; Item.Stars++; } while (Item.Stars >= 54 && Item.PerfectionProgress > 0) { Item.Stars = 54; Item.PerfectionProgress = 0; } Item.Owner = client.Entity.Name; Item.OwnerUID = client.Entity.UID; Item.Mode = Game.Enums.ItemMode.Update; Item.Send(client); var proto = Kernel.FinalizeProtoBuf((new MsgItemRefineOptProto2() { ItemUID = Item.UID, EntityUID = client.Entity.UID, OwnerUID = Item.OwnerUID, OwnerName = Item.Owner, Progress = Item.PerfectionProgress, Stars = Item.Stars }), 3250); client.LoadItemStats(); client.Send(proto); Database.ConquerItemTable.UpdatePerfection(Item); new MsgUserTotalRefineLev().Send(client); } } break; }