Пример #1
0
    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);
    }
Пример #2
0
 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);
 }
Пример #3
0
    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();
    }
Пример #4
0
    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();
    }
Пример #5
0
    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);
    }
Пример #6
0
    public bool IsCanAsMatToAutoAdd(XItem item)
    {
        XEquip equip   = DataDBSEquip.GetDataById(item.Instance);
        DEquip equipDB = ReadCfgEquip.GetDataById(equip.Id);

        return(equipDB.Quality < 3);
    }
Пример #7
0
    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);
    }
Пример #8
0
    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);
    }
Пример #9
0
    public bool DelBagEquip(int pos)
    {
        XItem item = DataDBSBagItem.GetDataById(pos);

        if (item == null)
        {
            return(false);
        }
        DataDBSBagItem.Delete(pos);
        DataDBSEquip.Delete(item.Instance);
        return(true);
    }
Пример #10
0
    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);
    }
Пример #11
0
    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));
    }
Пример #12
0
    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);
    }
Пример #13
0
    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);
    }