Esempio n. 1
0
        public DBWorldBossItem GetData(uint id)
        {
            DBWorldBossItem ad = null;

            data.TryGetValue(id, out ad);
            return(ad);
        }
Esempio n. 2
0
        protected override void ParseData(SqliteDataReader reader)
        {
            if (reader == null || !reader.HasRows)
            {
                return;
            }

            while (reader.Read())
            {
                DBWorldBossItem ad = new DBWorldBossItem();
                ad.Id        = DBTextResource.ParseUI(GetReaderString(reader, "id"));
                ad.ShowAward = new List <DBWorldBoss.DBWorldBossRewardItem>();
                List <List <string> > award_str_array = DBTextResource.ParseArrayStringString(GetReaderString(reader, "show_award_new"));
                for (int gid_index = 0; gid_index < award_str_array.Count; ++gid_index)
                {
                    List <string> one_goods_array = award_str_array[gid_index];
                    if (one_goods_array.Count < 2)
                    {
                        continue;
                    }
                    uint goods_id = 0;
                    if (uint.TryParse(one_goods_array[0], out goods_id) == false)
                    {
                        continue;
                    }
                    uint goods_num = 0;
                    if (uint.TryParse(one_goods_array[1], out goods_num) == false)
                    {
                        continue;
                    }
                    string reward_type = "";
                    if (one_goods_array.Count > 2 && one_goods_array[2] != "" && one_goods_array[2] != "0")
                    {
                        reward_type = one_goods_array[2];
                    }
                    DBWorldBossRewardItem reward_item = new DBWorldBossRewardItem();
                    reward_item.goods_id    = goods_id;
                    reward_item.goods_num   = goods_num;
                    reward_item.reward_type = reward_type;
                    ad.ShowAward.Add(reward_item);
                }

                ad.MustDropAwardArray = new List <DBWorldBossRewardItem>();
                award_str_array       = DBTextResource.ParseArrayStringString(GetReaderString(reader, "must_drop_award"));
                for (int gid_index = 0; gid_index < award_str_array.Count; ++gid_index)
                {
                    List <string> one_goods_array = award_str_array[gid_index];
                    if (one_goods_array.Count < 2)
                    {
                        continue;
                    }
                    uint goods_id = 0;
                    if (uint.TryParse(one_goods_array[0], out goods_id) == false)
                    {
                        continue;
                    }
                    uint goods_num = 0;
                    if (uint.TryParse(one_goods_array[1], out goods_num) == false)
                    {
                        continue;
                    }
                    string reward_type = "";
                    if (one_goods_array.Count > 2 && one_goods_array[2] != "" && one_goods_array[2] != "0")
                    {
                        reward_type = one_goods_array[2];
                    }
                    DBWorldBossRewardItem reward_item = new DBWorldBossRewardItem();
                    reward_item.goods_id    = goods_id;
                    reward_item.goods_num   = goods_num;
                    reward_item.reward_type = reward_type;
                    ad.MustDropAwardArray.Add(reward_item);
                }

                //ad.ShowAward = DBTextResource.ParseDBGoodsItem(GetReaderString(reader, "show_award"));
                ad.Tag  = DBTextResource.ParseUI_s(GetReaderString(reader, "tag"), 0);
                ad.Rank = DBTextResource.ParseUI(GetReaderString(reader, "rank"));
                ad.ModelCameraOffset = DBTextResource.ParseVector3(GetReaderString(reader, "model_camera_offset"));
                ad.ModelCameraRotate = DBTextResource.ParseVector3(GetReaderString(reader, "model_camera_rotate"));
                ad.ModelDefaultAngle = DBTextResource.ParseVector3(GetReaderString(reader, "model_default_angle"));
                ad.DeathModelCenter  = DBTextResource.ParseVector3(GetReaderString(reader, "death_model_center"));
                ad.DeathModelRadius  = DBTextResource.ParseF(GetReaderString(reader, "death_model_radius"));
                ad.ColorType         = DBTextResource.ParseUI_s(GetReaderString(reader, "color_type"), 0);
                ad.Order             = DBTextResource.ParseUI_s(GetReaderString(reader, "order"), 0);
                data.Add(ad.Id, ad);
                m_sortData.Add(ad);
            }
            m_sortData.Sort((a, b) =>
            {
                if (a.Rank < b.Rank)
                {
                    return(-1);
                }
                else if (a.Rank > b.Rank)
                {
                    return(1);
                }
                return(0);
            });
        }