/// <summary> /// 根据id得到模型信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public ModelInfo GetModel(uint id) { ModelInfo info; if (mModels.TryGetValue(id, out info)) { return(info); } string query_str = string.Format("SELECT * FROM {0} WHERE {1}=\"{2}\"", mTableName, "id", id); var reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query_str); if (reader == null) { mModels[id] = null; return(null); } if (!reader.HasRows || !reader.Read()) { mModels[id] = null; reader.Close(); reader.Dispose(); return(null); } string model = GetReaderString(reader, "model"); string ui_model = GetReaderString(reader, "ui_model"); string icon = GetReaderString(reader, "icon"); float scale = DBTextResource.ParseF_s(GetReaderString(reader, "scale"), 0f); Vector3 posOffsetInScene = DBTextResource.ParseVector3(GetReaderString(reader, "pos_offset_in_scene")); Vector3 camOffsetInDialogWnd = DBTextResource.ParseVector3(GetReaderString(reader, "cam_offset_in_dialog_wnd")); Vector3 camRotateInDialogWnd = DBTextResource.ParseVector3(GetReaderString(reader, "cam_rotate_in_dialog_wnd")); Vector3 modelOffsetInChipWin = DBTextResource.ParseVector3(GetReaderString(reader, "model_offset_in_chip_win")); Vector3 modelAngleInChipWin = DBTextResource.ParseVector3(GetReaderString(reader, "model_angle_in_chip_win")); string modelShowAction = GetReaderString(reader, "model_show_action"); info = new ModelInfo(id, model, ui_model, icon, scale, posOffsetInScene, camOffsetInDialogWnd, camRotateInDialogWnd, modelOffsetInChipWin, modelAngleInChipWin, modelShowAction); mModels.Add(info.Id, info); reader.Close(); reader.Dispose(); return(info); }
/// <summary> /// 根据物品ID来获取烟火特效的配置 /// </summary> /// <param name="id"></param> /// <returns></returns> public FireworkInfo GetInfo(uint id) { FireworkInfo info = null; if (mInfos.TryGetValue(id, out info)) { return(info); } string query_str = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mFirewordTableName, "id", id.ToString()); var table_reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mFirewordTableName, query_str); if (table_reader == null) { mInfos[id] = null; return(null); } if (!table_reader.HasRows || !table_reader.Read()) { mInfos[id] = null; table_reader.Close(); table_reader.Dispose(); return(null); } info = new FireworkInfo(); info.ID = DBTextResource.ParseUI_s(GetReaderString(table_reader, "id"), 0); info.AssetPath = GetReaderString(table_reader, "asset_path"); info.AudioPath = GetReaderString(table_reader, "audio_path"); info.Time = DBTextResource.ParseF_s(GetReaderString(table_reader, "time"), 1.0f); table_reader.Close(); table_reader.Dispose(); mInfos[info.ID] = info; return(info); }
protected override void ParseData(SqliteDataReader reader) { mPayItemInfos.Clear(); if (reader == null || reader.HasRows == false) { return; } while (reader.Read()) { var info = new PayItemInfo(); info.Id = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0); info.Channel = GetReaderString(reader, "channel"); System.Type rmbLowFieldType = reader.GetFieldType(reader.GetOrdinal("rmb_low")); if (rmbLowFieldType == typeof(string)) { info.RmbLow = DBTextResource.ParseF_s(GetReaderString(reader, "rmb_low"), 0f); } else if (rmbLowFieldType == typeof(float)) { info.RmbLow = GetReaderFloat(reader, "rmb_low"); } info.Diamond = DBTextResource.ParseUI_s(GetReaderString(reader, "diamond"), 0); info.LimitGID = DBTextResource.ParseUI_s(GetReaderString(reader, "gid"), 0); var good_ids = TextHelper.GetListFromString(GetReaderString(reader, "good_ids")); var good_num = TextHelper.GetListFromString(GetReaderString(reader, "good_num")); if (good_ids != null && good_num != null) { info.TreasureGID = new Dictionary <uint, uint>(); int i = 0; foreach (var id in good_ids) { var gid = DBTextResource.ParseUI_s(id, 0); uint gnum = 1; if (i < good_num.Length) { gnum = DBTextResource.ParseUI_s(good_num[i], 0); } info.TreasureGID[gid] = gnum; i++; } } info.LimitTimes = DBTextResource.ParseUI_s(GetReaderString(reader, "limit_times"), 0); info.BonusFirst = DBTextResource.ParseUI_s(GetReaderString(reader, "bonus_first"), 0); info.BonusFirstType = DBTextResource.ParseUI_s(GetReaderString(reader, "bonus_first_type"), 0); info.BonusOther = DBTextResource.ParseUI_s(GetReaderString(reader, "bonus_other"), 0); info.BonusOtherType = DBTextResource.ParseUI_s(GetReaderString(reader, "bonus_other_type"), 0); info.Icon = GetReaderString(reader, "icon"); info.SortId = DBTextResource.ParseUI_s(GetReaderString(reader, "sort_id"), 0); info.IsShow = DBTextResource.ParseUI_s(GetReaderString(reader, "is_show"), 0) == 1; //info.ProductId = GetReaderString(reader, "product_id"); //info.ProductName = GetReaderString(reader, "product_name"); //info.ProductDesc = GetReaderString(reader, "product_desc"); List <PayItemInfo> pay_item_list = null; if (!mPayItemInfos.TryGetValue(info.Channel, out pay_item_list)) { pay_item_list = new List <PayItemInfo>(); mPayItemInfos[info.Channel] = pay_item_list; } pay_item_list.Add(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(); } }