public void AddNewGem(int instance, int id) { int newPos = GetNewPos(EBagType.GEM); if (newPos == 0) { return; } XItem item = new XItem(); item.Instance = instance; item.Pos = newPos; item.Id = id; item.Num = 1; item.PosType = (int)EPosType.BagGem; DataDBSBagGem.Insert(newPos, item); DataDBSGem.Insert(instance, GTDataFactory.CreateGem(id, instance)); }
private void OnAck_UnloadGem(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckUnloadGem ack = Serializer.Deserialize <AckUnloadGem>(ms); int newPos = ack.NewPos; int tarPos = ack.TarPos; XItem dressGem = DataDBSDressGem.GetDataById(tarPos); XItem bagGem = new XItem(); bagGem.Instance = dressGem.Instance; bagGem.Pos = newPos; bagGem.PosType = (int)EPosType.BagGem; bagGem.Id = dressGem.Id; bagGem.Num = 1; DataDBSBagGem.Insert(newPos, bagGem); DataDBSDressGem.Delete(tarPos); GTWorld.Instance.SyncMainPlayerData(ESyncDataType.TYPE_CURRATTR); GTEventCenter.FireEvent(GTEventID.TYPE_BAG_UNLOAD_GEM, newPos, tarPos); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }
private void OnAck_SortBag(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckSortBag ack = Serializer.Deserialize <AckSortBag>(ms); EBagType bagType = (EBagType)ack.BagType; Dictionary <int, XItem> items = GTDataManager.Instance.GetBagDataByBagType(bagType); List <XItem> list = new List <XItem>(); list.AddRange(items.Values); items.Clear(); switch (bagType) { case EBagType.ITEM: { list.Sort(MLBag.Instance.CompareBagItem); DataDBSBagItem.Clear(false); for (int i = 0; i < list.Count; i++) { list[i].Pos = i + 1; DataDBSBagItem.Insert(list[i].Pos, list[i]); } } break; case EBagType.GEM: { list.Sort(MLBag.Instance.CompareBagGem); DataDBSBagGem.Clear(false); for (int i = 0; i < list.Count; i++) { list[i].Pos = i + 1; DataDBSBagGem.Insert(list[i].Pos, list[i]); } } break; case EBagType.CHIP: { list.Sort(MLBag.Instance.CompareBagChip); DataDBSBagChip.Clear(false); for (int i = 0; i < list.Count; i++) { list[i].Pos = i + 1; DataDBSBagChip.Insert(list[i].Pos, list[i]); } } break; case EBagType.FASHION: { list.Sort(MLBag.Instance.CompareBagFashion); DataDBSBagFashion.Clear(false); for (int i = 0; i < list.Count; i++) { list[i].Pos = i + 1; DataDBSBagFashion.Insert(list[i].Pos, list[i]); } } break; case EBagType.RUNE: { list.Sort(MLBag.Instance.CompareBagRune); DataDBSBagRune.Clear(false); for (int i = 0; i < list.Count; i++) { list[i].Pos = i + 1; DataDBSBagRune.Insert(list[i].Pos, list[i]); } } break; } GTEventCenter.FireEvent(GTEventID.TYPE_BAG_SORT_BAG); }