private void OnAck_AdvanceEquip(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckAdvanceEquip ack = Serializer.Deserialize <AckAdvanceEquip>(ms); XEquip equip = ack.TarEquip; List <XItem> list = ack.UseItems; DEquip equipDB = ReadCfgEquip.GetDataById(equip.Id); int advanceID = equipDB.Quality * 1000 + equip.AdvanceLevel + 1; DEquipAdvanceCost db = ReadCfgEquipAdvanceCost.GetDataById(advanceID); GTDataManager.Instance.UseMoney(db.CostMoneyId, db.CostMoneyNum); GTDataManager.Instance.UseItemById(db.CostItemId, db.CostItemNum); if (list != null) { for (int i = 0; i < list.Count; i++) { GTDataManager.Instance.DelBagEquip(list[i].Pos); } } equip.AdvanceLevel++; DataDBSEquip.Update(equip.Instance, equip); CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR); GTEventCenter.FireEvent(GTEventID.TYPE_ADVANCE_EQUIP); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }
void ReadRoleData() { DataDBSBagItem.Read(GetDataPath(GTDataKey.Data_BagItems), EDataKeyType.Pos); DataDBSEquip.Read(GetDataPath(GTDataKey.Data_Equips), EDataKeyType.Instance); DataDBSDressEquip.Read(GetDataPath(GTDataKey.Data_DressEquips), EDataKeyType.Pos); DataDBSMoney.Read(GetDataPath(GTDataKey.Data_Moneys), EDataKeyType.Id); DataDBSAction.Read(GetDataPath(GTDataKey.Data_Actions), EDataKeyType.Id); DataDBSSoul.Read(GetDataPath(GTDataKey.Data_Souls), EDataKeyType.Id); DataDBSBagGem.Read(GetDataPath(GTDataKey.Data_BagGems), EDataKeyType.Pos); DataDBSGem.Read(GetDataPath(GTDataKey.Data_Gems), EDataKeyType.Instance); DataDBSDressGem.Read(GetDataPath(GTDataKey.Data_DressGems), EDataKeyType.Pos); DataDBSBagChip.Read(GetDataPath(GTDataKey.Data_BagChips), EDataKeyType.Pos); DataDBSBagFashion.Read(GetDataPath(GTDataKey.Data_BagFashions), EDataKeyType.Pos); DataDBSBagRune.Read(GetDataPath(GTDataKey.Data_BagRunes), EDataKeyType.Pos); DataDBSDressRune.Read(GetDataPath(GTDataKey.Data_DressRunes), EDataKeyType.Pos); DataDBSDressFashion.Read(GetDataPath(GTDataKey.Data_DressFashions), EDataKeyType.Pos); DataDBSRune.Read(GetDataPath(GTDataKey.Data_Runes), EDataKeyType.Instance); DataDBSCopy.Read(GetDataPath(GTDataKey.Data_Copys), EDataKeyType.Id); DataDBSMainChapter.Read(GetDataPath(GTDataKey.Data_MainChapters), EDataKeyType.Id); DataDBSRaid.Read(GetDataPath(GTDataKey.Data_Raid), EDataKeyType.Id); DataDBSPartner.Read(GetDataPath(GTDataKey.Data_Partners), EDataKeyType.Id); DataDBSMount.Read(GetDataPath(GTDataKey.Data_Mounts), EDataKeyType.Id); DataDBSRelics.Read(GetDataPath(GTDataKey.Data_Relics), EDataKeyType.Id); DataDBSPet.Read(GetDataPath(GTDataKey.Data_Pets), EDataKeyType.Id); DataDBSGuide.Read(GetDataPath(GTDataKey.Data_Guides), EDataKeyType.Id); DataDBSThreadTask.Read(GetDataPath(GTDataKey.Data_MainTasks), EDataKeyType.Id); DataDBSBranchTask.Read(GetDataPath(GTDataKey.Data_BranchTasks), EDataKeyType.Id); DataDBSDailyTask.Read(GetDataPath(GTDataKey.Data_DailyTasks), EDataKeyType.Id); }
void DumpRoleData() { DataDBSMoney.Clear(); DataDBSAction.Clear(); DataDBSSoul.Clear(); DataDBSBagItem.Clear(); DataDBSBagGem.Clear(); DataDBSBagChip.Clear(); DataDBSBagRune.Clear(); DataDBSBagFashion.Clear(); DataDBSDressEquip.Clear(); DataDBSDressFashion.Clear(); DataDBSDressGem.Clear(); DataDBSDressRune.Clear(); DataDBSEquip.Clear(); DataDBSGem.Clear(); DataDBSRune.Clear(); DataDBSMainChapter.Clear(); DataDBSCopy.Clear(); DataDBSRaid.Clear(); DataDBSRelics.Clear(); DataDBSMount.Clear(); DataDBSPartner.Clear(); DataDBSPet.Clear(); DataDBSGuide.Clear(); DataDBSThreadTask.Clear(); DataDBSBranchTask.Clear(); DataDBSDailyTask.Clear(); }
static void CalcAllEquipPropertys(Dictionary <EAttr, int> dict) { Dictionary <int, XItem> dressEquips = DataDBSDressEquip.Dict; Dictionary <int, XItem> .Enumerator em1 = dressEquips.GetEnumerator(); while (em1.MoveNext()) { if (em1.Current.Value.Instance == 0) { continue; } int instanceID = em1.Current.Value.Instance; if (!DataDBSEquip.ContainsKey(instanceID)) { continue; } XEquip equip = DataDBSEquip.GetDataById(instanceID); Dictionary <EAttr, int> .Enumerator em2 = GetPropertys(equip).GetEnumerator(); while (em2.MoveNext()) { dict[em2.Current.Key] += em2.Current.Value; } em2.Dispose(); } em1.Dispose(); }
public int CompareBagItem(XItem x1, XItem x2) { DItem itemDB1 = ReadCfgItem.GetDataById(x1.Id); DItem itemDB2 = ReadCfgItem.GetDataById(x2.Id); if (itemDB1.ItemType != itemDB2.ItemType) { return(itemDB1.ItemType - itemDB2.ItemType); } if (itemDB1.Quality != itemDB2.Quality) { return(itemDB2.Quality - itemDB1.Quality); } if (itemDB1.ItemType == EItemType.EQUIP) { XEquip xe1 = DataDBSEquip.GetDataById(x1.Instance); XEquip xe2 = DataDBSEquip.GetDataById(x2.Instance); return(CompareBagEquip(xe1, xe2)); } if (itemDB1.Id != itemDB2.Id) { return(itemDB2.Id - itemDB1.Id); } return(x1.Instance - x2.Instance); }
public bool IsCanAsMatToAutoAdd(XItem item) { XEquip equip = DataDBSEquip.GetDataById(item.Instance); DEquip equipDB = ReadCfgEquip.GetDataById(equip.Id); return(equipDB.Quality < 3); }
public int CompareStrengthMat(XItem x1, XItem x2) { XEquip e1 = DataDBSEquip.GetDataById(x1.Instance); XEquip e2 = DataDBSEquip.GetDataById(x2.Instance); DEquip db1 = ReadCfgEquip.GetDataById(e1.Id); DEquip db2 = ReadCfgEquip.GetDataById(e2.Id); if (db1.Quality != db2.Quality) { return(db1.Quality - db2.Quality); } if (e1.StarLevel != e2.StarLevel) { return(e1.StarLevel - e2.StarLevel); } if (e1.AdvanceLevel != e2.AdvanceLevel) { return(e1.AdvanceLevel - e2.AdvanceLevel); } if (e1.StrengthenExp != e2.StrengthenExp) { return(e1.StrengthenExp - e2.StrengthenExp); } return(x2.Pos - x1.Pos); }
public int GetStrengthenExpByMatList(List <XItem> list) { if (list == null) { return(0); } int exp = 0; for (int i = 0; i < list.Count; i++) { if (list[i].PosType == (int)EPosType.RoleMoney) { exp += list[i].Num; } else { XItem mat = list[i]; DEquip equipDB = ReadCfgEquip.GetDataById(mat.Id); XEquip equip = DataDBSEquip.GetDataById(mat.Instance); exp += equipDB.DeComposeNum2; exp += equip.StrengthenExp; int lv = equip.StrengthenLevel; for (int j = lv; j > 0; j--) { DEquipStrengLevel db = ReadCfgEquipStrengLevel.GetDataById(equipDB.Quality * 1000 + j); exp += db.RequireExp; } } } return(exp); }
public bool DelBagEquip(int pos) { XItem item = DataDBSBagItem.GetDataById(pos); if (item == null) { return(false); } DataDBSBagItem.Delete(pos); DataDBSEquip.Delete(item.Instance); return(true); }
private void OnAck_StrengthEquip(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckStrengthEquip ack = Serializer.Deserialize <AckStrengthEquip>(ms); XEquip equip = ack.TarEquip; List <XItem> list = ack.UseItems; DEquip cfg = ReadCfgEquip.GetDataById(equip.Id); int strengthenLevel = equip.StrengthenLevel; int strID = cfg.Quality * 1000 + strengthenLevel + 1; int addExpNum = EquipModule.Instance.GetStrengthenExpByMatList(list); DEquipStrengLevel db = ReadCfgEquipStrengLevel.GetDataById(strID); int expNum = db.RequireExp - equip.StrengthenExp; while (addExpNum >= expNum) { strengthenLevel++; db = ReadCfgEquipStrengLevel.GetDataById(cfg.Quality * 1000 + strengthenLevel + 1); expNum += db.RequireExp; } equip.StrengthenLevel = strengthenLevel; equip.StrengthenExp = addExpNum + db.RequireExp - expNum; DataDBSEquip.Update(equip.Instance, equip); GTDataManager.Instance.UseMoney(DEquip.EQUIP_STRENGTHEN_MONEY_ID_1, expNum); for (int i = 0; i < list.Count; i++) { XItem item = list[i]; if ((EPosType)item.PosType == EPosType.RoleMoney) { GTDataManager.Instance.UseMoney(item.Id, item.Num); } else { GTDataManager.Instance.DelBagEquip(item.Pos); } } CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR); GTEventCenter.FireEvent(GTEventID.TYPE_STRENGTHEN_EQUIP); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }
public void AddNewEquip(int instance, int id) { int newPos = GetNewPos(EBagType.ITEM); if (newPos == 0) { return; } XItem item = new XItem(); item.Instance = instance; item.Pos = newPos; item.Id = id; item.Num = 1; item.PosType = (int)EPosType.BagItem; DataDBSBagItem.Insert(newPos, item); DataDBSEquip.Update(instance, GTDataFactory.CreateEquip(id, instance)); }
public List <XItem> GetBagSameEquipList(XEquip equip) { List <XItem> list = new List <XItem>(); Dictionary <int, XItem> .Enumerator em = DataDBSBagItem.Dict.GetEnumerator(); while (em.MoveNext()) { XItem item = em.Current.Value; DItem itemDB = ReadCfgItem.GetDataById(item.Id); if (itemDB.ItemType != EItemType.EQUIP) { continue; } XEquip e = DataDBSEquip.GetDataById(item.Instance); if (e.Id != equip.Id) { continue; } if (e.Instance == equip.Instance) { continue; } if (e.StarLevel > 0) { continue; } if (e.StrengthenLevel > 0) { continue; } if (e.StrengthenExp > 0) { continue; } if (e.AdvanceLevel > 0) { continue; } list.Add(item); } em.Dispose(); return(list); }
private void OnAck_UpStarEquip(MessageRecv obj) { System.IO.MemoryStream ms = new System.IO.MemoryStream(obj.Data); AckUpStarEquip ack = Serializer.Deserialize <AckUpStarEquip>(ms); XEquip equip = ack.TarEquip; DEquip cfg = ReadCfgEquip.GetDataById(equip.Id); int starID = cfg.Quality * 1000 + equip.StarLevel + 1; DEquipStar db = ReadCfgEquipStar.GetDataById(starID); GTDataManager.Instance.UseMoney(db.CostMoneyId, db.CostMoneyNum); GTDataManager.Instance.UseItemById(db.CostItemId, db.CostItemNum); equip.StarLevel++; DataDBSEquip.Update(equip.Instance, equip); CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR); GTEventCenter.FireEvent(GTEventID.TYPE_UPSTAR_EQUIP); GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE); }