示例#1
0
        protected override void ParseData(SqliteDataReader reader)
        {
            mTaskPrioritys.Clear();
            if (reader != null)
            {
                if (reader.HasRows == true)
                {
                    while (reader.Read())
                    {
                        TaskPriorityInfo taskPriorityInfo = new TaskPriorityInfo();

                        int  type      = DBTextResource.ParseI_s(GetReaderString(reader, "type"), 0);
                        byte priority  = DBTextResource.ParseBT_s(GetReaderString(reader, "priority"), 0);
                        byte priority2 = DBTextResource.ParseBT_s(GetReaderString(reader, "priority2"), 0);
                        taskPriorityInfo.Priority  = priority;
                        taskPriorityInfo.Priority2 = priority2;

#if UNITY_EDITOR
                        if (mTaskPrioritys.ContainsKey(type))
                        {
                            GameDebug.LogError(string.Format("[{0}]表重复添加的域id[{1}]", mTableName, type));
                            continue;
                        }
#endif
                        mTaskPrioritys.Add(type, taskPriorityInfo);
                    }
                }
            }
        }
示例#2
0
        protected override void ParseData(SqliteDataReader reader)
        {
            mGemInfos.Clear();
            GemInfo gemInfo = null;

            if (reader != null)
            {
                if (reader.HasRows == true)
                {
                    while (reader.Read())
                    {
                        gemInfo           = new GemInfo();
                        gemInfo.Id        = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0);
                        gemInfo.Type      = DBTextResource.ParseBT_s(GetReaderString(reader, "type"), 0);
                        gemInfo.Lv        = DBTextResource.ParseUS_s(GetReaderString(reader, "lv"), 0);
                        gemInfo.NextGemId = DBTextResource.ParseUI_s(GetReaderString(reader, "next_gem_id"), 0);
                        gemInfo.Attrs     = DBTextResource.ParseArrayUintUint(GetReaderString(reader, "attr"));
                        gemInfo.TypeName  = GetReaderString(reader, "type_name");

#if UNITY_EDITOR
                        if (mGemInfos.ContainsKey(gemInfo.Id))
                        {
                            GameDebug.LogError(string.Format("[{0}]表重复添加的域id[{1}]", mTableName, gemInfo.Id));
                            continue;
                        }
#endif
                        mGemInfos.Add(gemInfo.Id, gemInfo);
                    }
                }
            }
        }
示例#3
0
        protected override void ParseData(SqliteDataReader reader)
        {
            mGemHoleInfos.Clear();
            GemHoleInfo gemHoleInfo = null;

            if (reader != null)
            {
                if (reader.HasRows == true)
                {
                    while (reader.Read())
                    {
                        gemHoleInfo             = new GemHoleInfo();
                        gemHoleInfo.Pos         = DBTextResource.ParseBT_s(GetReaderString(reader, "pos"), 0);
                        gemHoleInfo.HoleId      = DBTextResource.ParseBT_s(GetReaderString(reader, "hole_id"), 0);
                        gemHoleInfo.CsvId       = string.Format("{0}_{1}", gemHoleInfo.Pos, gemHoleInfo.HoleId);
                        gemHoleInfo.LvStepLimit = DBTextResource.ParseUI_s(GetReaderString(reader, "lv_step_limit"), 0);
                        gemHoleInfo.VipLimit    = DBTextResource.ParseUI_s(GetReaderString(reader, "vip_limit"), 0);
                        gemHoleInfo.GemList     = DBTextResource.ParseArrayUint(GetReaderString(reader, "gem_list"), ",");

#if UNITY_EDITOR
                        if (mGemHoleInfos.ContainsKey(gemHoleInfo.CsvId))
                        {
                            GameDebug.LogError(string.Format("[{0}]表重复添加的域id[{1}]", mTableName, gemHoleInfo.CsvId));
                            continue;
                        }
#endif
                        mGemHoleInfos.Add(gemHoleInfo.CsvId, gemHoleInfo);
                    }
                }
            }
        }
示例#4
0
        protected override void ParseData(SqliteDataReader reader)
        {
            mMapInfos.Clear();
            MapInfo info;

            if (reader != null)
            {
                if (reader.HasRows == true)
                {
                    while (reader.Read())
                    {
                        info = new MapInfo();

                        info.Id             = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0);
                        info.SceneRes       = GetReaderString(reader, "scene_res");
                        info.HasMiddleScene = DBTextResource.ParseBT_s(GetReaderString(reader, "has_middle_scene"), 0) == 1;
                        info.HasLowScene    = DBTextResource.ParseBT_s(GetReaderString(reader, "has_low_scene"), 0) == 1;
                        info.IsBornMap      = DBTextResource.ParseUI_s(GetReaderString(reader, "is_born_map"), 0) == 1;
                        info.IsDynamic      = DBTextResource.ParseUI_s(GetReaderString(reader, "is_dynamic"), 0) == 1;
                        //info.SceneName = GetReaderString(reader, "scene_name");

#if UNITY_EDITOR
                        if (mMapInfos.ContainsKey(info.Id))
                        {
                            GameDebug.LogError(string.Format("[{0}]表重复添加的域id[{1}]", mTableName, info.Id));
                            continue;
                        }
#endif
                        mMapInfos.Add(info.Id, info);
                    }
                }
            }
        }
示例#5
0
        List <DBSuitAttrInfo> GetItemInfo(uint id, uint lv)
        {
            uint   uid    = MakeUID(id, lv);
            string query  = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\" AND {0}.{3}=\"{4}\"", mTableName, "id", id, "lv", lv);
            var    reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query);

            if (reader == null)
            {
                mInfos[uid] = null;
                return(null);
            }

            if (!reader.HasRows)
            {
                mInfos[uid] = null;

                reader.Close();
                reader.Dispose();
                return(null);
            }

            List <DBSuitAttrInfo> attrInfos = null;

            while (reader.Read())
            {
                DBSuitAttrInfo info = new DBSuitAttrInfo();
                info.Id       = id;
                info.Lv       = lv;
                info.Num      = DBTextResource.ParseBT_s(GetReaderString(reader, "num"), 0);
                info.EffectId = DBTextResource.ParseUI_s(GetReaderString(reader, "effect_id"), 0);

                string raw = GetReaderString(reader, "base_attr");
                raw = raw.Replace(" ", "");
                var matchs = Regex.Matches(raw, @"\{(\d+),(\d+)\}");
                info.BasicAttrs = new ActorAttribute();
                foreach (Match _match in matchs)
                {
                    if (_match.Success)
                    {
                        uint attrId  = (DBTextResource.ParseUI(_match.Groups[1].Value));
                        var  attrVal = DBTextResource.ParseUI(_match.Groups[2].Value);
                        info.BasicAttrs.Add(attrId, attrVal);
                    }
                }

                if (attrInfos == null)
                {
                    attrInfos = new List <DBSuitAttrInfo>();
                }

                attrInfos.Add(info);
            }

            mInfos[uid] = attrInfos;
            reader.Close();
            reader.Dispose();
            return(attrInfos);
        }
示例#6
0
        protected override void ParseData(SqliteDataReader reader)
        {
            mEngravenfos.Clear();
            EngraveInfo gemInfo = null;

            if (reader != null)
            {
                if (reader.HasRows == true)
                {
                    while (reader.Read())
                    {
                        gemInfo               = new EngraveInfo();
                        gemInfo.Id            = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0);
                        gemInfo.Type          = DBTextResource.ParseBT_s(GetReaderString(reader, "type"), 0);
                        gemInfo.Lv            = DBTextResource.ParseUS_s(GetReaderString(reader, "lv"), 0);
                        gemInfo.NextEngraveId = DBTextResource.ParseUI_s(GetReaderString(reader, "next_engrave_id"), 0);
                        gemInfo.Attrs         = DBTextResource.ParseArrayUintUint(GetReaderString(reader, "attr"));

                        mEngravenfos.Add(gemInfo.Id, gemInfo);
                    }
                }
            }
        }
示例#7
0
        ActorData GetActorInfo(uint id)
        {
            string query_str = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mTableName, "id" , id.ToString());

            var table_reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query_str);
            if (table_reader == null)
            {
                return null;
            }

            if (!table_reader.HasRows)
            {
                table_reader.Close();
                table_reader.Dispose();
                return null;
            }

            if (!table_reader.Read())
            {
                table_reader.Close();
                table_reader.Dispose();
                return null;
            }

            ActorData ad = new ActorData();
            ad.name = GetReaderString(table_reader, "name");
            ad.vocation = DBTextResource.ParseBT(GetReaderString(table_reader, "vocation"));
            ad.level = DBTextResource.ParseUI(GetReaderString(table_reader, "level"));
            ad.color = (Monster.QualityColor)DBTextResource.ParseBT_s(GetReaderString(table_reader, "color"), 0); ;
            ad.type = DBTextResource.ParseBT(GetReaderString(table_reader, "type"));
            ad.war_tag = DBTextResource.ParseBT(GetReaderString(table_reader, "war_tag"));
            ad.race_id = DBTextResource.ParseUI(GetReaderString(table_reader, "race_id"));
            ad.skill_count = DBTextResource.ParseBT(GetReaderString(table_reader, "skill_count"));
            if (ad.skill_count > 0)
            {
                ad.skill_idx = new uint[ad.skill_count];
                ad.cast_rate = new byte[ad.skill_count];
                for (int k = 0; k < ad.skill_count; ++k)
                {
                    ad.skill_idx[k] = DBTextResource.ParseUI_s(GetReaderString(table_reader, string.Format("skill_idx_{0}", k)), 0);
                    ad.cast_rate[k] = DBTextResource.ParseBT(GetReaderString(table_reader, string.Format("cast_rate_{0}", k)));
                }
            }

            ad.model_id = DBTextResource.ParseUI(GetReaderString(table_reader, "model_id"));
            ad.runspeed = (ushort)GetReaderFloat(table_reader, "runspeed");
            ad.motion_radius = DBTextResource.ParseBT(GetReaderString(table_reader, "motion_radius"));
            ad.behaviour_tree = GetReaderString(table_reader, "behaviour_tree");
            ad.summon_behaviour_tree = GetReaderString(table_reader, "summon_behaviour_tree");
            ad.attack_rotaion = DBTextResource.ParseBT(GetReaderString(table_reader, "attack_rotaion"));
            ad.hp_bar_count = DBTextResource.ParseBT(GetReaderString(table_reader, "hp_bar_count"));
            ad.gravity = DBTextResource.ParseUS_s(GetReaderString(table_reader, "gravity"), DBActor.Gravity);
            ad.dead_notify = DBTextResource.ParseByteArray(GetReaderString(table_reader, "dead_notify"));
            ad.spawn_timeline = DBTextResource.ParseUI(GetReaderString(table_reader, "spawn_timeline"));
            ad.dead_timeline = DBTextResource.ParseUI(GetReaderString(table_reader, "dead_timeline"));
            string isHideShadow = GetReaderString(table_reader, "is_hide_shadow");
            if (isHideShadow == string.Empty || isHideShadow == "0")
            {
                ad.is_hide_shadow = false;
            }
            else
            {
                ad.is_hide_shadow = true;
            }
            string isHideSelectEffect = GetReaderString(table_reader, "is_hide_select_effect");
            if (isHideSelectEffect == string.Empty || isHideSelectEffect == "0")
            {
                ad.is_hide_select_effect = false;
            }
            else
            {
                ad.is_hide_select_effect = true;
            }
            ad.attr_param = DBTextResource.ParseUI_s(GetReaderString(table_reader, "attr_param"), 0);
            ad.default_actor_id = DBTextResource.ParseUI_s(GetReaderString(table_reader, "default_actor_id"), 0);
            data[id] = ad;

            table_reader.Close();
            table_reader.Dispose();

            return ad;
        }
示例#8
0
        TaskDefine ReadReader(SqliteDataReader reader)
        {
            ushort     taskType = DBTextResource.ParseUS_s(GetReaderString(reader, "type"), 0);
            TaskDefine define   = new TaskDefine();

            define.Id = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0);
            define.DescriptionBytes = GetReaderBytes(reader, "description");
            define.NameBytes        = GetReaderBytes(reader, "name");
            define.Type             = taskType;
            define.SubType          = DBTextResource.ParseUI_s(GetReaderString(reader, "sub_type"), 0);
            define.RequestLevelMin  = DBTextResource.ParseI_s(GetReaderString(reader, "lv_min"), 0);
            define.PreviousId       = DBTextResource.ParseUI_s(GetReaderString(reader, "pre_id"), 0);
            define.NextId           = DBTextResource.ParseUI_s(GetReaderString(reader, "next_id"), 0);
            define.NextId           = DBTextResource.ParseUI_s(GetReaderString(reader, "next_id"), 0);

            string serverStepRawsString       = GetReaderString(reader, "goals");
            string clientStepRawsString       = GetReaderString(reader, "steps");
            string navigationPointsRawsString = GetReaderString(reader, "navigation_points");

            define.Steps = TaskDefine.TaskStep.CreateStepsByRawString(serverStepRawsString, clientStepRawsString, navigationPointsRawsString);
            if (define.Steps == null || define.Steps.Count == 0)
            {
                GameDebug.LogError("Parse task " + define.Id + " error, step is empty!!!");
            }

            define.RewardIds = DBTextResource.ParseArrayUint(GetReaderString(reader, "reward_ids"), ",");
            define.GetSkills = DBTextResource.ParseArrayUint(GetReaderString(reader, "get_skills"), ",");
            define.IsShowGetSkillProgress = DBTextResource.ParseI_s(GetReaderString(reader, "is_show_get_skill_progress"), 0) == 0 ? false : true;
            define.ReceiveDialogId        = DBTextResource.ParseUI_s(GetReaderString(reader, "receive_dialog_id"), 0);
            define.SubmitDialogId         = DBTextResource.ParseUI_s(GetReaderString(reader, "submit_dialog_id"), 0);
            define.ReceiveNpc             = NpcScenePosition.Make(GetReaderString(reader, "receive_npc"));
            define.SubmitNpc     = NpcScenePosition.Make(GetReaderString(reader, "submit_npc"));
            define.AutoRunType   = (TaskDefine.EAutoRunType)DBTextResource.ParseBT_s(GetReaderString(reader, "auto_run"), 0);
            define.ShowPriority  = DBManager.Instance.GetDB <DBTaskPriority>().GetTaskPriority((int)taskType);
            define.ShowPriority2 = DBManager.Instance.GetDB <DBTaskPriority>().GetTaskPriority2((int)taskType);

            string raw = GetReaderString(reader, "is_temporary_on_top");

            if (string.IsNullOrEmpty(raw) == true || raw == "0")
            {
                define.IsTemporaryOnTop = false;
            }
            else
            {
                define.IsTemporaryOnTop = true;
            }

            string npcsRawString = GetReaderString(reader, "create_npcs_when_received");

            define.CreateNpcsWhenReceived = TaskDefine.MakeNpcScenePositions(npcsRawString);
            npcsRawString = GetReaderString(reader, "delete_npcs_when_received");
            define.DeleteNpcsWhenReceived = TaskDefine.MakeNpcScenePositions(npcsRawString);
            npcsRawString             = GetReaderString(reader, "create_npcs_when_done");
            define.CreateNpcsWhenDone = TaskDefine.MakeNpcScenePositions(npcsRawString);
            npcsRawString             = GetReaderString(reader, "delete_npcs_when_done");
            define.DeleteNpcsWhenDone = TaskDefine.MakeNpcScenePositions(npcsRawString);

            define.FollowNpcs         = TaskDefine.MakeNpcScenePositions(GetReaderString(reader, "follow_npcs"));
            define.CanUseBoots        = (DBTextResource.ParseI_s(GetReaderString(reader, "can_use_boots"), 0) > 0);
            define.ReceivedTimelineId = DBTextResource.ParseUI_s(GetReaderString(reader, "received_timeline_id"), 0);
            define.SubmitedTimelineId = DBTextResource.ParseUI_s(GetReaderString(reader, "submited_timeline_id"), 0);

            raw = GetReaderString(reader, "cost");
            if (string.IsNullOrEmpty(raw) == false)
            {
                define.Costs = DBTextResource.ParseArrayStringString(raw);
            }

            raw = GetReaderString(reader, "show_reward_goods_id");
            List <List <uint> > showRewardGoodsIdConfigs = DBTextResource.ParseArrayUintUint(raw);

            define.ShowRewardGoodsIds = new Dictionary <uint, uint>();
            define.ShowRewardGoodsIds.Clear();
            define.ShowRewardGoodsNums = new Dictionary <uint, uint>();
            define.ShowRewardGoodsNums.Clear();
            define.ShowRewardGoodsIsBinds = new Dictionary <uint, byte>();
            define.ShowRewardGoodsIsBinds.Clear();
            uint index = 1;

            foreach (List <uint> showRewardGoodsIdConfig in showRewardGoodsIdConfigs)
            {
                define.ShowRewardGoodsIds[index]     = showRewardGoodsIdConfig[0];
                define.ShowRewardGoodsNums[index]    = showRewardGoodsIdConfig[1];
                define.ShowRewardGoodsIsBinds[index] = (byte)showRewardGoodsIdConfig[2];
                ++index;
            }

            mTasksData.Add(define.Id, define);
            if (mTasksDataByType.ContainsKey(define.Type) == true)
            {
                mTasksDataByType[define.Type].Add(define.Id, define);
            }
            else
            {
                Dictionary <uint, TaskDefine> taskDefines = new Dictionary <uint, TaskDefine>();
                taskDefines.Clear();
                taskDefines.Add(define.Id, define);

                mTasksDataByType.Add(define.Type, taskDefines);
            }

            return(define);
        }
示例#9
0
        protected override void ParseData(SqliteDataReader reader)
        {
            if (reader == null || !reader.HasRows)
            {
                return;
            }

            SysConfig config = null;

            while (reader.Read())
            {
                var id = DBTextResource.ParseUI(GetReaderString(reader, "sys_id"));
                config = new SysConfig(id);
                var sys_title = GetReaderString(reader, "sys_title");

                var    level       = DBTextResource.ParseUS_s(GetReaderString(reader, "lv_open"), 0);
                string taskTypeStr = GetReaderString(reader, "task_limit");
                if (string.IsNullOrEmpty(taskTypeStr))
                {
                    taskTypeStr = "0";
                }
                var    task_type   = (ESysTaskType)Enum.Parse(typeof(ESysTaskType), taskTypeStr);
                var    task_id     = DBTextResource.ParseUI_s(GetReaderString(reader, "task_args"), 0);
                string positionStr = GetReaderString(reader, "position");
                if (string.IsNullOrEmpty(positionStr))
                {
                    positionStr = "0";
                }
                var    pos         = (ESysBtnPos)Enum.Parse(typeof(ESysBtnPos), positionStr);
                uint   sub_pos     = DBTextResource.ParseUI_s(GetReaderString(reader, "sub_pos"), 0);
                string fixedPosStr = GetReaderString(reader, "fixed_pos");
                if (string.IsNullOrEmpty(fixedPosStr))
                {
                    fixedPosStr = "0";
                }
                var  is_fixed       = (ESysBtnFixType)DBTextResource.ParseUI_s(fixedPosStr, 1);
                bool show_bg        = DBTextResource.ParseUI_s(GetReaderString(reader, "show_bg"), 0) == 1;
                uint is_activity    = DBTextResource.ParseUI_s(GetReaderString(reader, "is_activity"), 0);
                var  desc           = GetReaderString(reader, "desc");
                var  btn_sprite     = GetReaderString(reader, "btn_spr");
                var  btn_text       = GetReaderString(reader, "btn_text");
                var  sort_order     = DBTextResource.ParseBT_s(GetReaderString(reader, "sort_order"), 0);
                var  transfer_limit = DBTextResource.ParseUI_s(GetReaderString(reader, "transfer_limit"), 0);
                var  not_open_tips  = GetReaderString(reader, "not_open_tips");
                var  main_ui_btn_id = DBTextResource.ParseUI_s(GetReaderString(reader, "main_ui_btn_id"), 0);

                config.Init(level, task_type, task_id, pos, sub_pos, is_fixed, show_bg, is_activity == 1, desc, btn_sprite, btn_text, sort_order, transfer_limit, not_open_tips, sys_title, main_ui_btn_id);
                config.NeedAnim = DBTextResource.ParseUI_s(GetReaderString(reader, "is_need_anim"), 0) == 0 ? false : true;

                if (pos == ESysBtnPos.NONE) // 当在主ui上没有按钮图标的时候,也一定不需要播放开启的动画
                {
                    if (config.NeedAnim)
                    {
                        config.NeedAnim = false;
                        GameDebug.LogError(string.Format("sys:{0} 在主ui上没有图标, 却配置了开启动画", id));
                    }
                }

                config.InitNeedShow          = DBTextResource.ParseUI_s(GetReaderString(reader, "is_need_show"), 0) == 0 ? false : true;
                config.PatchId               = DBTextResource.ParseI_s(GetReaderString(reader, "patch_id"), 0);
                config.HideBtnWhenActNotOpen = DBTextResource.ParseUI_s(GetReaderString(reader, "hide_btn_when_act_not_open"), 0) == 0 ? false : true;
                config.SysIdClosePresent     = DBTextResource.ParseUI_s(GetReaderString(reader, "sys_id_close_present"), 0);

                // 如果有系统开放关联配置,需要将数据存在另外的字典中
                if (config.SysIdClosePresent != 0)
                {
                    List <uint> notifySysIdList = null;
                    if (!mConfigRelation.TryGetValue(config.SysIdClosePresent, out notifySysIdList))
                    {
                        notifySysIdList = new List <uint>();
                        mConfigRelation[config.SysIdClosePresent] = notifySysIdList;
                    }

                    if (!notifySysIdList.Contains(config.Id))
                    {
                        notifySysIdList.Add(config.Id);
                    }
                }
                config.TabOrder        = DBTextResource.ParseUI_s(GetReaderString(reader, "tab_order"), 0);
                config.DropDown        = DBTextResource.ParseArrayUint(GetReaderString(reader, "drop_down"), ",");
                config.DropDownType    = DBTextResource.ParseUI(GetReaderString(reader, "drop_down_type"));
                config.UIBehavior      = DBTextResource.ParseArrayString(GetReaderString(reader, "ui_behavior"));
                config.TimeLimitStr    = GetReaderString(reader, "time_limit");
                config.CustomCondition = DBTextResource.ParseUI_s(GetReaderString(reader, "custom_condition"), 0) == 0 ? false : true;

                mConfigList.Add(config);
                mConfigMap[config.Id] = config;
            }

            mConfigList.Sort();
        }
示例#10
0
        public GoodsInfo GetGoodsInfo(uint gid)
        {
            GoodsInfo goods_info = null;

            if (mGoodsInfos.TryGetValue(gid, out goods_info))
            {
                return(goods_info);
            }

            string query  = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", GoodsTableName, "gid", gid);
            var    reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, GoodsTableName, query);

            if (reader == null)
            {
                GameDebug.LogError("Can not find goods info by gid " + gid + ", reader is null!!!");

                mGoodsInfos[gid] = null;
                return(null);
            }

            if (!reader.HasRows || !reader.Read())
            {
                GameDebug.LogError("Can not find goods info by gid " + gid);

                mGoodsInfos[gid] = null;

                reader.Close();
                reader.Dispose();
                return(null);
            }

            goods_info            = new GoodsInfo();
            goods_info.name       = GetReaderString(reader, "name");
            goods_info.sort_id    = DBTextResource.ParseUI_s(GetReaderString(reader, "sort_id"), 0);
            goods_info.sort_top   = DBTextResource.ParseUI_s(GetReaderString(reader, "sort_top"), 0);
            goods_info.type       = DBTextResource.ParseBT_s(GetReaderString(reader, "type"), 0);
            goods_info.sub_type   = DBTextResource.ParseUS_s(GetReaderString(reader, "sub_type"), 0);
            goods_info.color_type = DBTextResource.ParseBT_s(GetReaderString(reader, "color_type"), 0);
            goods_info.max_stack  = DBTextResource.ParseUS_s(GetReaderString(reader, "max_stack"), 1);
            goods_info.effect     = GetReaderString(reader, "effect");
            var arg = GetReaderString(reader, "arg");

            if (!string.IsNullOrEmpty(arg))
            {
                goods_info.arg = arg.Replace(" ", "");
            }
            else
            {
                goods_info.arg = "";
            }
            goods_info.client_use          = DBTextResource.ParseBT_s(GetReaderString(reader, "client_use"), 0);
            goods_info.cd_id               = DBTextResource.ParseUI_s(GetReaderString(reader, "cd_id"), 0);
            goods_info.use_cd              = DBTextResource.ParseUS_s(GetReaderString(reader, "use_cd"), 0);
            goods_info.use_lv              = DBTextResource.ParseUI_s(GetReaderString(reader, "use_lv"), 0);
            goods_info.use_job             = DBTextResource.ParseBT_s(GetReaderString(reader, "use_job"), 0);
            goods_info.use_transfer        = DBTextResource.ParseBT_s(GetReaderString(reader, "use_transfer"), 0);
            goods_info.need_count          = DBTextResource.ParseBT_s(GetReaderString(reader, "need_count"), 0);
            goods_info.guild_wpoint        = DBTextResource.ParseUI_s(GetReaderString(reader, "guild_wpoint"), 0);
            goods_info.sell_price          = DBTextResource.ParseUI_s(GetReaderString(reader, "sell_price"), 0);
            goods_info.expire_time         = DBTextResource.ParseUI_s(GetReaderString(reader, "expire_time"), 0);
            goods_info.mktype_1            = DBTextResource.ParseBT_s(GetReaderString(reader, "mktype_1"), 0);
            goods_info.mktype_2            = DBTextResource.ParseBT_s(GetReaderString(reader, "mktype_2"), 0);
            goods_info.bind                = DBTextResource.ParseBT_s(GetReaderString(reader, "bind"), 1);
            goods_info.price_recommend     = (uint)(GetReaderFloat(reader, "price_recommend"));
            goods_info.price_lower_limit   = GetReaderFloat(reader, "price_lower_limit");
            goods_info.price_upper_limit   = GetReaderFloat(reader, "price_upper_limit");
            goods_info.desc                = GetReaderString(reader, "desc");
            goods_info.gain_text           = GetReaderString(reader, "gain_text");
            goods_info.gain_from           = GetReaderString(reader, "gain_from");
            goods_info.icon_id             = DBTextResource.ParseUI_s(GetReaderString(reader, "icon_id"), 0);
            goods_info.is_show             = DBTextResource.ParseBT_s(GetReaderString(reader, "is_show"), 0);
            goods_info.is_quick            = DBTextResource.ParseBT_s(GetReaderString(reader, "is_quick"), 0);
            goods_info.is_confirmation     = DBTextResource.ParseBT_s(GetReaderString(reader, "is_confirmation"), 0);
            goods_info.sys_id              = DBTextResource.ParseUI_s(GetReaderString(reader, "sys_id"), 0);
            goods_info.is_mutil_use        = DBTextResource.ParseBT_s(GetReaderString(reader, "is_mutil_use"), 0);
            goods_info.daily_use_limit     = DBTextResource.ParseUS_s(GetReaderString(reader, "daily_use_limit"), 0);
            goods_info.is_display_goods    = DBTextResource.ParseBT_s(GetReaderString(reader, "is_display_goods"), 0);
            goods_info.wing_exp            = DBTextResource.ParseUI_s(GetReaderString(reader, "wing_exp"), 0);
            goods_info.show_step           = DBTextResource.ParseUI_s(GetReaderString(reader, "show_step"), 0);
            goods_info.is_precious         = DBTextResource.ParseUI_s(GetReaderString(reader, "is_precious"), 0);
            goods_info.discount            = DBTextResource.ParseUI_s(GetReaderString(reader, "discount"), 0);
            goods_info.overdue_notice_time = DBTextResource.ParseUI_s(GetReaderString(reader, "overdue_notice_time"), 0);

            mGoodsInfos[gid] = goods_info;

            reader.Close();
            reader.Dispose();

            return(goods_info);
        }
示例#11
0
        protected override void ParseData(SqliteDataReader reader)
        {
            if (reader == null || !reader.HasRows)
            {
                return;
            }

            while (reader.Read())
            {
                var guide_step = new Step(0, 0, false);
                guide_step.GuideId   = DBTextResource.ParseUI(GetReaderString(reader, "guide_id"));
                guide_step.StepId    = DBTextResource.ParseUI(GetReaderString(reader, "step_id"));
                guide_step.EventType = DBTextResource.ParseBT_s(GetReaderString(reader, "event_type"), 1);

                var is_forcible = DBTextResource.ParseUI_s(GetReaderString(reader, "forcible"), (uint)0) > (uint)0 ? true : false;
                guide_step.IsForcible = is_forcible;
                var click_any = DBTextResource.ParseUI_s(GetReaderString(reader, "click_any"), (uint)0) > (uint)0 ? true : false;
                guide_step.ClickAny    = click_any;
                guide_step.IsPause     = DBTextResource.ParseUI_s(GetReaderString(reader, "pause"), 0) == 1;
                guide_step.IsCanFinish = DBTextResource.ParseUI_s(GetReaderString(reader, "can_finish"), 0) == 1;
                guide_step.IsCanSkip   = DBTextResource.ParseUI_s(GetReaderString(reader, "can_skip"), 0) == 1;
                guide_step.HideWidget  = GetReaderString(reader, "hide_widget");

                var icon_dir = (EGuideIconDir)DBTextResource.ParseI_s(GetReaderString(reader, "icon_dir"), 1);
                guide_step.IconDir = icon_dir;

                var icon_desc = GetReaderString(reader, "icon_desc");
                if (icon_desc.Contains("\n"))
                {
                    icon_desc = icon_desc.Substring(1, icon_desc.Length - 2);
                }
                guide_step.IconDesc      = icon_desc;
                guide_step.PicName       = GetReaderString(reader, "pic_name");
                guide_step.DisplayType   = (EDisplayType)DBTextResource.ParseI_s(GetReaderString(reader, "display_type"), 1);
                guide_step.AnimationName = GetReaderString(reader, "animation_name");
                guide_step.Offset_X      = DBTextResource.ParseF_s(GetReaderString(reader, "offset_x"), 0);
                guide_step.VoiceId       = DBTextResource.ParseUI_s(GetReaderString(reader, "voice"), 0);

                int guide_condition_count = DBTextResource.ParseI_s(GetReaderString(reader, "trigger_count"), 0);
                for (int index = 1; index <= guide_condition_count; index++)
                {
                    var index_str = index.ToString();

                    var condition_type   = (ECondtionType)Enum.Parse(typeof(ECondtionType), GetReaderString(reader, "trigger_type_" + index_str));
                    var condition_params = GetReaderString(reader, "trigger_params_" + index_str);

                    var condition = Guide.Condition.Factory.CreateCondition(condition_type, condition_params);

                    guide_step.GuideTriggerList.Add(condition);
                }

                try
                {
                    // 设置完成条件
                    var trigger_type   = (ETriggerType)Enum.Parse(typeof(ETriggerType), GetReaderString(reader, "target_type"));
                    var trigger_params = GetReaderString(reader, "target_params");

                    guide_step.TargetTrigger        = Guide.Trigger.Factory.CreateTrigger(trigger_type, trigger_params);
                    guide_step.TargetTrigger.Parent = guide_step;
                }
                catch (Exception e)
                {
                    GameDebug.LogError(string.Format("引导步骤({0}-{1})的“完成条件”配置错误:{2}", guide_step.GuideId, guide_step.StepId, e.Message));
                    guide_step.TargetTrigger = null;
                }

                guide_step.IsFinished = false;
                AddGuideStep(guide_step);
            }

            foreach (var step_list in mGuideStepDict.Values)
            {
                step_list.Sort();
            }
        }
示例#12
0
        /// <summary>
        /// 获取奖励item列表
        /// </summary>
        /// <returns>The reward item list.</returns>
        /// <param name="rewardId">Reward identifier.</param>
        public List <RewardInfo> GetRewardItemList(uint rewardId)
        {
            List <RewardInfo> rewardList = new List <RewardInfo>();

            rewardList.Clear();
            if (mRewardInfosList == null)
            {
                mRewardInfosList = new Dictionary <uint, List <RewardInfo> >();
                mRewardInfosList.Clear();
            }
            if (mRewardInfosList.ContainsKey(rewardId) == true)
            {
                foreach (RewardInfo rewardInfo in mRewardInfosList[rewardId])
                {
                    rewardList.Add(rewardInfo);
                }
            }
            else
            {
                List <RewardInfo> rewardInfos = new List <RewardInfo>();
                rewardInfos.Clear();

                //string queryStr = string.Format("SELECT * FROM {0} WHERE {0}.{1} LIKE \"{2}__\"", "reward", "item_id", rewardId);
                //List<Dictionary<string, string>> rows = DBManager.Instance.QuerySqliteRow<string>(GlobalConfig.DBFile, queryStr, true);
                List <Dictionary <string, string> > rows = DBManager.Instance.QuerySqliteRow <string>(GlobalConfig.DBFile, "reward", "cid", rewardId.ToString());
                if (rows.Count > 0)
                {
                    foreach (Dictionary <string, string> row in rows)
                    {
                        RewardInfo rewardInfo = new RewardInfo();

                        string raw = string.Empty;
                        row.TryGetValue("item_id", out raw);
                        uint itemId = DBTextResource.ParseUI_s(raw, 0);
                        rewardInfo.mItemID = itemId;

                        row.TryGetValue("gid", out raw);
                        uint gid = DBTextResource.ParseUI_s(raw, 0);
                        rewardInfo.mGID = gid;

                        row.TryGetValue("num", out raw);
                        long num = 0;
                        if (long.TryParse(raw, out num) == false)
                        {
                            List <long> nums = DBTextResource.ParseArrayLong(raw, ",");
                            if (nums.Count > 0)
                            {
                                rewardInfo.mFixedNum = nums[0];
                                rewardInfo.mNum      = nums[0];
                            }
                            else
                            {
                                rewardInfo.mFixedNum = num;
                                rewardInfo.mNum      = num;
                            }
                        }
                        else
                        {
                            rewardInfo.mFixedNum = num;
                            rewardInfo.mNum      = num;
                        }

                        row.TryGetValue("race", out raw);
                        byte race = DBTextResource.ParseBT_s(raw, 0);
                        rewardInfo.mVocation = race;

                        row.TryGetValue("is_lv_eff", out raw);
                        byte isLvEff = DBTextResource.ParseBT_s(raw, 0);
                        rewardInfo.mEffectByLevel = isLvEff;

                        row.TryGetValue("lv_limit", out raw);
                        rewardInfo.mLvLimit = DBTextResource.ParseArrayUint(raw, ",");

                        row.TryGetValue("is_bind", out raw);
                        rewardInfo.mIsBind = DBTextResource.ParseUI_s(raw, 0);

                        row.TryGetValue("sys_open", out raw);
                        rewardInfo.mOpenSysId = DBTextResource.ParseUI_s(raw, 0);

                        row.TryGetValue("show_color_effect2", out raw);
                        if (string.IsNullOrEmpty(raw) == true || raw.Equals("0") == true)
                        {
                            rewardInfo.mShowColorEffect2 = false;
                        }
                        else
                        {
                            rewardInfo.mShowColorEffect2 = true;
                        }

                        rewardInfos.Add(rewardInfo);
                    }
                }

                foreach (RewardInfo rewardInfo in rewardInfos)
                {
                    rewardList.Add(rewardInfo);
                }
                mRewardInfosList.Add(rewardId, rewardInfos);
            }

            // 删除不是本职业的奖励
            for (int i = rewardList.Count - 1; i >= 0; i--)
            {
                if (rewardList[i].mVocation != 0 && (uint)rewardList[i].mVocation != LocalPlayerManager.Instance.LocalActorAttribute.Vocation)
                {
                    rewardList.Remove(rewardList[i]);
                }
            }

            if (rewardList == null)
            {
                rewardList = new List <RewardInfo>();
                rewardList.Clear();
            }
            return(rewardList);
        }
示例#13
0
        /// <summary>
        /// 读取指定窗口的配置
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        private UIInfo GetUIInfo(string name)
        {
            string queryStr = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mTableName, "name", name);

            var reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, queryStr);

            if (reader == null)
            {
                return(null);
            }

            if (!reader.HasRows || !reader.Read())
            {
                reader.Close();
                reader.Dispose();
                return(null);
            }

            UIInfo info = new UIInfo();

            info.name              = name;
            info.support_back      = DBTextResource.ParseBT_s(GetReaderString(reader, "support_back"), 0) == 1;
            info.is_modal          = DBTextResource.ParseBT_s(GetReaderString(reader, "is_modal"), 0) == 1;
            info.ui_type           = DBTextResource.ParseBT_s(GetReaderString(reader, "ui_type"), 0);
            info.is_global         = DBTextResource.ParseBT_s(GetReaderString(reader, "is_global"), 0) == 1;
            info.sub_panels        = GetReaderString(reader, "sub_panels");
            info.init_open_panels  = GetReaderString(reader, "init_open_panels");
            info.sub_canvas_lenght = DBTextResource.ParseBT_s(GetReaderString(reader, "sub_canvas_lenght"), 0);
            info.lua_path          = GetReaderString(reader, "lua_path");

            var    delay_time_text = GetReaderString(reader, "destroy_delay_time");
            ushort delay_time      = 0;

            if (string.IsNullOrEmpty(delay_time_text))
            {
                if (SystemInfo.systemMemorySize <= 1024)
                {
                    delay_time = 10;
                }
                else
                {
                    delay_time = 20;
                }
            }
            else
            {
                delay_time = DBTextResource.ParseUS_s(delay_time_text, 10);
            }
            info.destroy_delay_time = delay_time;

            info.static_layer_index = DBTextResource.ParseS_s(GetReaderString(reader, "static_layer_index"), -1);
            info.reconnect_handle   = DBTextResource.ParseBT_s(GetReaderString(reader, "reconnect_handle"), 0);
            info.return_handle      = DBTextResource.ParseBT_s(GetReaderString(reader, "return_handle"), 0);
            info.stay_when_switch_plane_instance = DBTextResource.ParseBT_s(GetReaderString(reader, "stay_when_switch_plane_instance"), 0) == 1;
            info.close_wins_type_when_show       = DBTextResource.ParseBT_s(GetReaderString(reader, "close_wins_type_when_show"), 0);
            info.ban_back_last_panel             = DBTextResource.ParseBT_s(GetReaderString(reader, "ban_back_last_panel"), 0) == 1;
            info.ban_sub_window_when_back        = DBTextResource.ParseBT_s(GetReaderString(reader, "ban_sub_window_when_back"), 0) == 1;
            info.reopen   = DBTextResource.ParseBT_s(GetReaderString(reader, "reopen"), 0) == 1;
            info.patch_id = DBTextResource.ParseBT_s(GetReaderString(reader, "patch_id"), 0);

            mData[info.name] = info;

            reader.Close();
            reader.Dispose();

            return(info);
        }