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); } } } }
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); } } } }
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); } } } }
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); } } } }
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); }
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); } } } }
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; }
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); }
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(); }
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); }
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(); } }
/// <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); }
/// <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); }