示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);
            }
        }
示例#4
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();
            }
        }