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) { if (reader == null || !reader.HasRows) { return; } while (reader.Read()) { var guide = new GuideData(); guide.Id = DBTextResource.ParseUI(GetReaderString(reader, "guide_id")); guide.Priority = DBTextResource.ParseUS(GetReaderString(reader, "priority")); guide.PreSys = DBTextResource.ParseUI(GetReaderString(reader, "sys")); guide.MinLevel = DBTextResource.ParseUI(GetReaderString(reader, "min_level")); guide.MaxLevel = DBTextResource.ParseUI(GetReaderString(reader, "max_level")); guide.InstanceType = DBTextResource.ParseI_s(GetReaderString(reader, "inst_type"), -1); guide.InstanceSubType = DBTextResource.ParseI_s(GetReaderString(reader, "inst_sub_type"), -1); guide.TriggerType = (GuideData.GuideTrigger)Enum.Parse(typeof(GuideData.GuideTrigger), GetReaderString(reader, "trigger_type")); guide.TriggerParams = new List <uint>(); string[] param = TextHelper.GetListFromString(GetReaderString(reader, "trigger_params")); if (param != null) { foreach (string s in param) { guide.TriggerParams.Add(DBTextResource.ParseUI_s(s, 0)); } } string rawStr = GetReaderString(reader, "auto_fight_when_finish"); if (string.IsNullOrEmpty(rawStr) == true || rawStr.Equals("0") == true) { guide.AutoFightWhenFinish = false; } else { guide.AutoFightWhenFinish = true; } guide.TimelineWhenFinish = DBTextResource.ParseUI_s(GetReaderString(reader, "timeline_when_finish"), 0); rawStr = GetReaderString(reader, "guide_main_task_when_finish_and_return_main_wnd"); if (string.IsNullOrEmpty(rawStr) == true || rawStr.Equals("0") == true) { guide.GuideMainTaskWhenFinishAndReturnMainWnd = false; } else { guide.GuideMainTaskWhenFinishAndReturnMainWnd = true; } guide.IsFinished = false; Guides.Add(guide.Id, guide); GuideList.Add(guide); } GuideList.Sort(); }
/// <summary> /// 获取表格中的飘字数据 /// </summary> public DBFightFlyWordISev GetFightFlyWordInfo(int effect_type) { DBFightFlyWordISev kResult; if (mInfos.TryGetValue(effect_type, out kResult)) { return(kResult); } else if (mNoExistKeyIdData.Contains(effect_type) == false) { var list = DBManager.Instance.QuerySqliteRow <string>(GlobalConfig.DBFile, "data_fight_fly_word", "id", effect_type.ToString()); if (list.Count > 0) { DBFightFlyWordISev info = new DBFightFlyWordISev(); Dictionary <string, string> table = list[0]; info.Id = int.Parse(table["id"]); info.Bone = table["bone"]; info.IsScreenCenterBone = info.Bone == ScreenCenterBoneString; info.XOffset = DBTextResource.ParseI_s(table["xOffset"], 0); info.YOffset = DBTextResource.ParseI_s(table["yOffset"], 0); if (!mInfos.ContainsKey(info.Id)) { mInfos.Add(info.Id, info); return(info); } else { Debug.LogError("[DBFightFlyWord]Key conflict, Id : " + info.Id); } } else { mNoExistKeyIdData.Add(effect_type); } } return(null); }
protected override void ParseData(SqliteDataReader reader) { mInfos.Clear(); DBCurrencyInfoItem info; if (reader != null) { if (reader.HasRows == true) { while (reader.Read()) { info = new DBCurrencyInfoItem(); info.Id = DBTextResource.ParseI_s(GetReaderString(reader, "id"), 0); info.CurrencyIcon = GetReaderString(reader, "currency_icon"); mInfos[info.Id] = info; } } } }
protected override void ParseData(SqliteDataReader reader) { base.ParseData(reader); if (reader == null || !reader.HasRows) { return; } mServerTypeInfos.Clear(); while (reader.Read()) { ServerTypeInfo info = new ServerTypeInfo(); info.platform = GetReaderString(reader, "platform"); info.test_id = DBTextResource.ParseI_s(GetReaderString(reader, "test_id"), 0); info.official_id = DBTextResource.ParseI_s(GetReaderString(reader, "official_id"), 0); info.audit_id = DBTextResource.ParseI_s(GetReaderString(reader, "audit_id"), 0); mServerTypeInfos[info.platform] = info; } }
protected override void ParseData(SqliteDataReader reader) { //mInfos.Clear(); mSortInfos.Clear(); DBMarketPasswordFilterItem info; if (reader != null) { if (reader.HasRows == true) { while (reader.Read()) { info = new DBMarketPasswordFilterItem(); info.Id = DBTextResource.ParseUI_s(GetReaderString(reader, "id"), 0); info.Name = GetReaderString(reader, "name"); info.Password = DBTextResource.ParseI_s(GetReaderString(reader, "password"), 0); mSortInfos.Add(info); } } } mSortInfos.Sort((a, b) => { if (a.Id < b.Id) { return(-1); } else if (a.Id > b.Id) { return(1); } return(0); }); }
protected override void ParseData(SqliteDataReader reader) { mInfos.Clear(); DBFightEfffectLayoutItem info; if (reader != null) { if (reader.HasRows == true) { while (reader.Read()) { info = new DBFightEfffectLayoutItem(); info.FightTypeStr = GetReaderString(reader, "type"); info.Level = DBTextResource.ParseI_s(GetReaderString(reader, "level"), 0); if (info.FightTypeStr != null && mInfos.ContainsKey(info.FightTypeStr) == false) { mInfos[info.FightTypeStr] = info; } } } } }
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); }
public static bool ToProcessCommand(string main, List <string> paramArray, DebugUI debugUI) { if (main.ToLower() == "h" || main.ToLower() == "help") { string desc = "常用GM指令如下:"; debugUI.PushLog(desc); desc = "monster [type_id] [num] : 创建n个怪物"; debugUI.PushLog(desc); desc = "playerai : 开启/关闭玩家ai"; debugUI.PushLog(desc); return(true); } else if (main.ToLower() == "playerai") { LocalPlayer act = (LocalPlayer)Game.GetInstance().GetLocalPlayer(); if (act != null) { bool aiEnable = act.GetAIEnable(); act.ActiveAI(!aiEnable); } } else if (main.ToLower() == "aoinum") { debugUI.DrawActorCount = !debugUI.DrawActorCount; } else if (main.ToLower() == "fsm_trace") { // 输入UnitID,开启或关闭状态调试 // 第一个参数是UnitID的 if (paramArray.Count == 3) { UnitID uid = new UnitID(); uid.type = byte.Parse(paramArray[0]); uid.obj_idx = uint.Parse(paramArray[1]); Actor actor = ActorManager.Instance.GetActor(uid); if (actor != null) { actor.FSM.bIsDebug = !actor.FSM.bIsDebug; return(true); } } } else if (main.ToLower() == "fsm_getcurstate") { // 输入UnitID,开启或关闭状态调试 // 第一个参数是UnitID的type, 第二个是serial_idx, 第三个是obj_idx if (paramArray.Count == 3) { UnitID uid = new UnitID(); uid.type = byte.Parse(paramArray[0]); uid.obj_idx = uint.Parse(paramArray[1]); Actor actor = ActorManager.Instance.GetActor(uid); if (actor != null) { string name = actor.FSM.GetCurState().Name; debugUI.PushLog("CurState: " + name); return(true); } } } else if (main.ToLower() == "localplayerid") { debugUI.PushLog("type:" + Game.GetInstance().LocalPlayerID.type + ",obj_id:" + Game.GetInstance().LocalPlayerID.obj_idx); return(true); } else if (main.ToLower() == "attackspeed") { float fSpeed = 1.0f; if (paramArray.Count >= 1) { if (paramArray[0] != "") { fSpeed = float.Parse(paramArray[0]); } } Game.GetInstance().GetLocalPlayer().AttackSpeed = fSpeed; return(true); } else if (main.ToLower() == "movespeed") { float fSpeed = 1.0f; if (paramArray.Count >= 1) { if (paramArray[0] != "") { fSpeed = float.Parse(paramArray[0]); } } Game.GetInstance().GetLocalPlayer().SetMoveSpeedScale(fSpeed, 0); return(true); } else if (main.ToLower() == "clear") { debugUI.Clear(); return(true); } else if (main.ToLower() == "globalcfg") { if (paramArray.Count >= 2) { try { xc.GlobalSettings settings = xc.GlobalSettings.GetInstance(); System.Reflection.FieldInfo[] fields = settings.GetType().GetFields(); foreach (System.Reflection.FieldInfo field in fields) { if (field.Name.ToLower() == paramArray[0].ToLower()) { if (field.FieldType == typeof(bool)) { field.SetValue(settings, bool.Parse(paramArray[1])); return(true); } else if (field.FieldType == typeof(float)) { field.SetValue(settings, float.Parse(paramArray[1])); return(true); } else if (field.FieldType == typeof(int)) { field.SetValue(settings, int.Parse(paramArray[1])); return(true); } return(true); } } } catch (System.Exception e) { GameDebug.Log(e.Message); } } } else if (main.ToLower() == "test_voice") { AudioManager.Instance.PlayBattleSFX(GlobalConst.ResPath + "Sound/voice/Test4.ogg", SoundType.NPC); //AudioManager.Instance.PlayBattleSFX(GlobalConst.ResPath + "Sound/voice/Test2.ogg", SoundType.Voice); //AudioManager.Instance.PlayBattleSFX(GlobalConst.ResPath + "Sound/voice/Test3.ogg", SoundType.Voice); return(true); } else if (main.ToLower() == "test_fight") { //LocalPlayerManager.Instance.TryShowFightRankAnim(100); int num = 0; for (var i = 0; i < paramArray.Count; i++) { if (int.TryParse(paramArray[i], out num)) { LocalPlayerManager.Instance.TryShowFightRankAnim(num); ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_LOCALPLAYER_BATTLE_POWER_CHANGED, null); } } return(true); } else if (main.ToLower() == "ip") { if (paramArray.Count >= 1) { Game.GetInstance().ServerIP = paramArray[0]; } if (paramArray.Count >= 2) { Game.GetInstance().ServerPort = int.Parse(paramArray[1]); } return(true); } else if (main.ToLower() == "pos") { LocalPlayer player = Game.GetInstance().GetLocalPlayer() as LocalPlayer; if (player != null) { debugUI.PushLog("Player Pos:" + player.transform.position); } return(true); } else if (main.ToLower() == "gl") { if (paramArray.Count > 0) { int lv = 0; if (int.TryParse(paramArray[0], out lv)) { QualitySetting.GraphicLevel = lv; return(true); } } } else if (main.ToLower() == "test") { // **** 临时测试命令 int alpha = 0; if (paramArray.Count > 0) { int.TryParse(paramArray[0], out alpha); } Game.GetInstance().GetLocalPlayer().Alpha = Mathf.Clamp01((float)(alpha / 255.0f)); return(true); } else if (main.ToLower() == "openallsys") { debugUI.ProcessCommand("c:#set_open&1"); return(true); } else if (main.ToLower() == "sleep_guide") { GuideManager.GetInstance().ForceToSleepGuide(); return(true); } else if (main.ToLower() == "sg") { GuideManager.GetInstance().ForceToSleepGuide(); return(true); } else if (main.ToLower() == "sleep_auto") { TaskHelper.IsAutoMainTask = false; return(true); } else if (main.ToLower() == "sa") { TaskHelper.IsAutoMainTask = false; return(true); } else if (main.ToLower() == "reset_guide") { GuideManager.GetInstance().ResetAllSysGuide(); return(true); } else if (main.ToLower() == "diaobao") { // sleep guide GuideManager.GetInstance().ForceToSleepGuide(); /*xc.ui.UIMainmapSysOpenWindow.ShowSysOpenAnim = false;*/ // lv max debugUI.ProcessCommand("c:#lv&70"); // rich debugUI.ProcessCommand("c:#rich"); // gm equip debugUI.ProcessCommand("c:#e_new&1000905&8"); debugUI.ProcessCommand("c:#e_new&1000906&8"); } else if (main.ToLower() == "test_equip&1") { // string str = GameConstHelper.GetString("GAME_TEST_ADD_EQUIPS1"); // string[] strList = str.Split(','); // for (int i = 0; i < strList.Length; i++) // { // string str1 = strList[i].Replace(" ", ""); // str1 = str1.Substring(1, str1.Length - 2); // debugUI.ProcessCommand(str1); // } debugUI.ProcessCommand("c:#add_goods&100001&1"); debugUI.ProcessCommand("c:#add_goods&100002&1"); debugUI.ProcessCommand("c:#add_goods&100003&1"); debugUI.ProcessCommand("c:#add_goods&100004&1"); debugUI.ProcessCommand("c:#add_goods&100005&1"); debugUI.ProcessCommand("c:#add_goods&100006&1"); debugUI.ProcessCommand("c:#add_goods&100007&1"); debugUI.ProcessCommand("c:#add_goods&100008&1"); debugUI.ProcessCommand("c:#add_goods&100009&1"); } else if (main.ToLower() == "test_equip&2") { string str = GameConstHelper.GetString("GAME_TEST_ADD_EQUIPS2"); string[] strList = str.Split(','); for (int i = 0; i < strList.Length; i++) { string str1 = strList[i].Replace(" ", ""); str1 = str1.Substring(1, str1.Length - 2); debugUI.ProcessCommand(str1); } } else if (main.ToLower() == "test_equip&3") { string str = GameConstHelper.GetString("GAME_TEST_ADD_EQUIPS3"); string[] strList = str.Split(','); for (int i = 0; i < strList.Length; i++) { string str1 = strList[i].Replace(" ", ""); str1 = str1.Substring(1, str1.Length - 2); debugUI.ProcessCommand(str1); } } else if (main.ToLower() == "test_equip") { string str = GameConstHelper.GetString("GAME_TEST_ADD_EQUIPS"); string[] strList = str.Split(','); for (int i = 0; i < strList.Length; i++) { string str1 = strList[i].Replace(" ", ""); str1 = str1.Substring(1, str1.Length - 2); debugUI.ProcessCommand(str1); } return(true); } else if (main.ToLower() == "test_refining") { debugUI.ProcessCommand("c:#add_goods&30001&90"); debugUI.ProcessCommand("c:#add_goods&30002&45"); debugUI.ProcessCommand("c:#add_goods&30003&30"); debugUI.ProcessCommand("c:#add_goods&30004&60"); return(true); } else if (main.ToLower() == "start_guide") { GuideManager.Instance.StartGuide(DBTextResource.ParseUI(paramArray[0]), null); return(true); } else if (main.ToLower() == "open_sys") { foreach (var param in paramArray) { SysConfigManager.Instance.ForceOpenSys(uint.Parse(param)); } ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_NEW_WAITING_SYS, new CEventBaseArgs()); return(true); } else if (main.ToLower() == "close_sys") { foreach (var param in paramArray) { SysConfigManager.Instance.ForceCloseSys(uint.Parse(param)); } return(true); } else if (main.ToLower().StartsWith("start_inst")) { if (paramArray.Count > 0) { uint instanceId = DBTextResource.ParseUI_s(paramArray[0], 0); SceneHelp.JumpToScene(instanceId); } } else if (main.ToLower().StartsWith("jump")) { if (paramArray.Count > 0) { uint instanceId = DBTextResource.ParseUI_s(paramArray[0], 0); SceneHelp.JumpToScene(instanceId); } } else if (main.ToLower().StartsWith("dialog")) { if (paramArray.Count > 0) { uint dialogId = DBTextResource.ParseUI_s(paramArray[0], 0); DialogManager.GetInstance().TriggerDialog(dialogId); } } else if (main.ToLower().StartsWith("ride_all")) { mTestRide = true; foreach (var item in ActorManager.Instance.PlayerSet) { item.Value.mRideCtrl.RemotePlayerUsingRideId = 400001; item.Value.mRideCtrl.RemotePlayerServerStatusRiding = true; } return(true); } else if (main.ToLower().StartsWith("unride_all")) { mTestRide = false; foreach (var item in ActorManager.Instance.PlayerSet) { item.Value.mRideCtrl.RemotePlayerServerStatusRiding = false; } return(true); } else if (main.ToLower().StartsWith("exit")) { ClientEventMgr.GetInstance().FireEvent((int)ClientEvent.CE_EXITINSTANCE, null); return(true); } else if (main.ToLower() == "fast_sys_open") { // xc.ui.UIMainmapSysOpenWindow.ShowSysOpenAnim = false; return(true); } else if (main.ToLower().Equals("show_win")) { if (paramArray.Count > 2) { int param_int = 0; int param_int_2 = 0; if (int.TryParse(paramArray[1], out param_int) && int.TryParse(paramArray[2], out param_int_2)) { xc.ui.ugui.UIManager.Instance.ShowWindow(paramArray[0], param_int, param_int_2); } } else if (paramArray.Count > 1) { int param_int = 0; if (int.TryParse(paramArray[1], out param_int)) { xc.ui.ugui.UIManager.Instance.ShowWindow(paramArray[0], param_int); } } else if (paramArray.Count > 0) { //xc.ui.UIManager.Instance.UIMain.StartCoroutine(xc.ui.UIManager.GetInstance().ShowWindow(paramArray[0])); xc.ui.ugui.UIManager.Instance.ShowWindow(paramArray[0]); } return(true); } else if (main.ToLower().Equals("show_sys_win")) { if (paramArray.Count > 0) { xc.ui.ugui.UIManager.Instance.ShowSysWindow(paramArray[0]); } return(true); } else if (main.ToLower().Equals("close_win")) { if (paramArray.Count > 0) { //xc.ui.UIManager.Instance.UIMain.StartCoroutine(xc.ui.UIManager.GetInstance().ShowWindow(paramArray[0])); xc.ui.ugui.UIManager.Instance.CloseWindow(paramArray[0]); } return(true); } else if (main.ToLower().Equals("close_sys_win")) { if (paramArray.Count > 0) { xc.ui.ugui.UIManager.Instance.CloseSysWindow(paramArray[0]); } return(true); } else if (main.ToLower().StartsWith("crashu")) { //becarefull! Debug.Log("crash c#"); MainGame.HeartBehavior.StartCoroutine(CreateNewObject()); return(true); } else if (main.ToLower().StartsWith("hangup")) { //becarefull! System.Threading.Thread.Sleep(10000); return(true); } else if (main.ToLower() == "test_lua") { //xc.ui.UIManager.Instance.ShowWindow("LuaTestWindow"); var funcName = paramArray[0]; var method = typeof(LuaTestMgr).GetMethod(funcName); if (method != null) { method.Invoke(LuaTestMgr.Instance, null); } else { GameDebug.LogError("Can not find method " + funcName + " in LuaTestMgr"); } return(true); } else if (main.ToLower() == "save_call") { //LuaBugFixMgr.SaveCallFile(); return(true); } else if (main.ToLower().StartsWith("play_movie")) { #if UNITY_ANDROID || UNITY_IPHONE var path = paramArray[0]; Handheld.PlayFullScreenMovie(path, Color.black, FullScreenMovieControlMode.CancelOnInput, FullScreenMovieScalingMode.AspectFit); #endif return(true); } else if (main.ToLower() == "test_avatar") // 测试变身技能 { uint type_id = 0; // 角色id if (paramArray.Count > 0) { uint.TryParse(paramArray[0], out type_id); } var player = Game.Instance.GetLocalPlayer(); if (player != null) { //bool isShifted = player.mAvatarCtrl.IsShapeShift; //player.mAvatarCtrl.ShapeShift(!isShifted, type_id, 0); //player.mAvatarCtrl.ShapeShift(isShifted, type_id, 1); player.BuffCtrl.AddBuff(20018, 3.0f); player.BuffCtrl.AddBuff(23005, 5.0f);//test_avatar 19001 } return(true); } else if (main.ToLower() == "test_shift") // 测试变身技能 { uint type_id = 0; // 角色id if (paramArray.Count > 0) { uint.TryParse(paramArray[0], out type_id); } var player = Game.Instance.GetLocalPlayer(); if (player != null) { player.BuffCtrl.AddBuff(23005, 30.0f); player.Kill(); } return(true); } else if (main.ToLower() == "fightingtip") { var str = paramArray[0]; buffID = uint.Parse(str); new Utils.Timer((int)(20 * 1000f), true, 0.5f * 1000f, OnFightEffectTimer); return(true); } else if (main.ToLower() == "clearcd") { uint skill_id = 0;// 角色id if (paramArray.Count > 0) { uint.TryParse(paramArray[0], out skill_id); } Actor localplayer = Game.GetInstance().GetLocalPlayer(); if (localplayer != null) { localplayer.CDCtrl.RemoveCD(skill_id); } debugUI.ProcessCommand("c:#ignore_skill_cd"); return(true); } else if (main.ToLower() == "setskill") { uint skill_id = 0; // 技能id uint skill_pos = 0; // 技能pos if (paramArray.Count < 2) { return(false); } uint.TryParse(paramArray[0], out skill_id); uint.TryParse(paramArray[1], out skill_pos); SkillManager.Instance.SetOpeningSkill(DBCommandList.BtnToOPFlag(skill_pos), skill_id); return(true); } else if (main.ToLower().StartsWith("float_tips")) { UINotice.Instance.ShowMessage(paramArray[0]); return(true); } else if (main.ToLower().StartsWith("rolling_notice")) { UINotice.Instance.ShowRollingNotice(paramArray[0]); return(true); } else if (main.ToLower().StartsWith("warnning")) { UINotice.Instance.ShowWarnning(paramArray[0]); return(true); } else if (main.ToLower().StartsWith("danmu")) { UINotice.Instance.ShowDanmaku(paramArray[0]); return(true); } else if (main.ToLower().StartsWith("bottom_message")) { UINotice.Instance.ShowBottomMessage(paramArray[0]); return(true); } else if (main.ToLower().StartsWith("reloadui")) { string name = ""; if (paramArray.Count > 0) { name = paramArray[0]; xc.ui.ugui.UIManager.Instance.CloseWindow(name); xc.ui.ugui.UIManager.Instance.ShowWindow(name); return(true); } else { return(false); } } else if (main.ToLower().StartsWith("pet_attack_parent_target")) { if (paramArray.Count > 0) { int useParentTarget = DBTextResource.ParseI_s(paramArray[0], 0); LocalPlayer localPlayer = Game.Instance.GetLocalPlayer() as LocalPlayer; if (localPlayer != null) { Pet currentPet = localPlayer.GetPet(); if (currentPet != null) { BehaviourAI ai = currentPet.GetAI() as BehaviourAI; if (ai != null && ai.RunningProperty != null) { if (useParentTarget == 0) { ai.RunningProperty.IsAttackParentTarget = false; } else { ai.RunningProperty.IsAttackParentTarget = true; } } } } } } else if (main.ToLower().Equals("p")) { TestUnit.DisplayDebugDraw = !TestUnit.DisplayDebugDraw; return(true); } else if (main.ToLower() == "test_db") { System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); for (int i = 0; i < 1; ++i) { List <Dictionary <string, string> > ret = DBManager.Instance.QuerySqliteRow <string>(GlobalConfig.DBFile, "reward", "item_id", "100101"); } GameDebug.LogRed("Db query time: " + stopwatch.ElapsedMilliseconds); stopwatch.Stop(); stopwatch.Start(); for (int i = 0; i < 1; ++i) { string queryStr = string.Format("SELECT * FROM {0} WHERE {0}.{1} LIKE \"{2}__\"", "reward", "item_id", 1001); List <Dictionary <string, string> > ret = DBManager.Instance.QuerySqliteRow(GlobalConfig.DBFile, "reward", queryStr); } GameDebug.LogRed("Db query time: " + stopwatch.ElapsedMilliseconds); return(true); } else if (main.ToLower() == "notice_dlg") { if (paramArray.Count > 0) { string text = paramArray[0]; xc.ui.UIWidgetHelp.GetInstance().ShowNoticeDlg(xc.ui.ugui.UINoticeWindow.EWindowType.WT_OK_DisableCloseBtn, "", text, null, null); } else { xc.ui.UIWidgetHelp.GetInstance().ShowNoticeDlg(xc.ui.ugui.UINoticeWindow.EWindowType.WT_OK_DisableCloseBtn, "teset", null, null); } return(true); } else if (main.ToLower() == "toggle_notice_dlg") { xc.ui.UIWidgetHelp.GetInstance().ShowNoticeDlg(xc.ui.ugui.UINoticeWindow.EWindowType.WT_OK_Cancel_Toggle, "title", "content", null, null, null, null, "", "", "toggle_text", false); return(true); } else if (main.ToLower() == "reload") // 重载表格 { string table_name = ""; if (paramArray.Count > 0) { DBManager.Instance.ClearCache(); table_name = paramArray[0]; var table = DBManager.Instance.GetDB(table_name); if (table != null) { table.Unload(); table.Load(); } } return(true); } else if (main.ToLower() == "newskill")// 新技能的指令 { uint skill_id = 0; if (paramArray.Count > 0) { skill_id = uint.Parse(paramArray[0]); SkillHoleManager.Instance.ClearSkill(skill_id); SkillHoleManager.Instance.OpenNewSkill(skill_id); } return(true); } else if (main.ToLower().Equals("hide_debug_ui")) { MainGame.HideDebugUI(); return(true); } else if (main.ToLower().Equals("hide_ui")) { MainGame.HideDebugUI(); xc.ui.ugui.UIManager.Instance.ClearUI(); return(true); } else if (main.ToLower().Equals("hide_ui_and_hook")) { MainGame.HideDebugUI(); xc.ui.ugui.UIManager.Instance.ClearUI(); InstanceManager.Instance.SetOnHook(true); return(true); } else if (main.ToLower().Equals("play_timeline")) { if (paramArray.Count > 0) { uint id = uint.Parse(paramArray[0]); TimelineManager.Instance.Play(id, null); } return(true); } else if (main.ToLower().Equals("timeline_change_skin")) { if (paramArray.Count > 0) { uint param = uint.Parse(paramArray[0]); TimelineManager.Instance.changeSkin = param == 1; } return(true); } else if (main.ToLower().Equals("play_timeline_and_jump")) { if (paramArray.Count > 1) { uint id = uint.Parse(paramArray[0]); uint instanceId = uint.Parse(paramArray[1]); TimelineManager.Instance.Play(id, () => { xc.SceneHelp.JumpToScene(instanceId); }); } return(true); } else if (main.ToLower().Equals("preload_timeline")) { if (paramArray.Count > 0) { uint id = uint.Parse(paramArray[0]); TimelineManager.Instance.Preload(id); } return(true); } else if (main.ToLower().Equals("st")) { TimelineManager.Instance.Stop(); return(true); } else if (main.ToLower().Equals("npc_unload_model")) { if (paramArray.Count > 0) { uint id = uint.Parse(paramArray[0]); NpcPlayer npc = NpcManager.Instance.GetNpcByNpcId(id); if (npc != null) { npc.mAvatarCtrl.UnloadModel(); } } return(true); } else if (main.ToLower().Equals("npc_reload_model")) { if (paramArray.Count > 0) { uint id = uint.Parse(paramArray[0]); NpcPlayer npc = NpcManager.Instance.GetNpcByNpcId(id); if (npc != null) { npc.mAvatarCtrl.ReloadModel(); } } return(true); } else if (main.ToLower().Equals("ui_delay")) { if (paramArray.Count < 0) { return(false); } float delay; float.TryParse(paramArray[0], out delay); if (delay >= 0) { UIManager.Instance.MainCtrl.Delay = delay; } return(true); } else if (main.ToLower().Equals("skip_sys_open") || main.ToLower().Equals("sso")) { SysConfigManager.Instance.SkipSysOpen = true; return(true); } else if (main.ToLower() == "show_chip")// 显示碎片动画 { if (paramArray.Count >= 2) { uint goods_id = uint.Parse(paramArray[0]); uint goods_num = uint.Parse(paramArray[1]); xc.ui.ugui.UIManager.Instance.ShowWindow("UIBossFragmentsWindow", goods_id, goods_num); } return(true); } else if (main.ToLower() == "show_pet")// 显示获得守护 { if (paramArray.Count >= 1) { uint pet_id = uint.Parse(paramArray[0]); xc.ui.ugui.UIManager.Instance.ShowWindow("UIGetNewPetWindow", pet_id); } return(true); } else if (main.ToLower() == "play_xihun") { string sound_path = "Assets/" + ResPath.Sound_ui_xihun; xc.AudioManager.DynamicAudioParam param = new xc.AudioManager.DynamicAudioParam(); param.res_path = sound_path; param.is_loop = false; param.volume = 1; xihun_sound_id = xc.AudioManager.Instance.PlayAudio_dynamic_out(param); return(true); } else if (main.ToLower() == "stop_xihun") { xc.AudioManager.Instance.StopAudio_dynamic(xihun_sound_id); return(true); } else if (main.ToLower() == "show_mount")// 显示坐骑获得动画 { if (paramArray.Count >= 1) { uint mount_id = uint.Parse(paramArray[0]); xc.ui.ugui.UIManager.Instance.ShowWindow("UIGetNewMountWindow", mount_id); } } else if (main.ToLower() == "set_mount")// 设置主角坐骑ID { if (paramArray.Count >= 1) { uint mount_id = uint.Parse(paramArray[0]); Actor local_player = xc.Game.Instance.GetLocalPlayer(); if (local_player != null) { local_player.MountId = mount_id; } } } else if (main.ToLower() == "router") //跳转 { if (paramArray.Count == 1) { uint sys_id = uint.Parse(paramArray[0]); RouterManager.Instance.GenericGoToSysWindow(sys_id); } else if (paramArray.Count == 2) { uint sys_id = uint.Parse(paramArray[0]); uint param1 = uint.Parse(paramArray[1]); RouterManager.Instance.GenericGoToSysWindow(sys_id, param1); } } else if (main.ToLower() == "pause_instance")// 暂停副本 { InstanceHelper.PauseInstance(); } else if (main.ToLower() == "resume_instance")// 恢复副本 { InstanceHelper.ResumeInstance(); } else if (main.ToLower().Equals("task_changed"))// fire一个任务变化的事件 { ClientEventMgr.Instance.FireEvent((int)ClientEvent.TASK_CHANGED, null); return(true); } else if (main.ToLower().Equals("finish_task"))// fire一个完成任务的事件 { if (paramArray.Count > 0) { uint id = uint.Parse(paramArray[0]); ClientEventMgr.Instance.FireEvent((int)ClientEvent.TASK_FINISHED, new CEventBaseArgs(id)); } return(true); } else if (main.ToLower().Equals("cam_zoom"))// 拉近拉远摄像机 { if (paramArray.Count > 0) { float zoom = float.Parse(paramArray[0]); if (Game.Instance.CameraControl != null) { Game.Instance.CameraControl.Zoom = zoom; } } return(true); } else if (main.ToLower().Equals("cam_fov"))// 拉近拉远摄像机 { if (paramArray.Count > 0) { float fov = float.Parse(paramArray[0]); if (Game.Instance.CameraControl != null) { Game.Instance.CameraControl.FOV = fov; } } return(true); } else if (main.ToLower().Equals("cam_follow_dis"))// 拉近拉远摄像机 { if (paramArray.Count > 0) { float followDistance = float.Parse(paramArray[0]); if (Game.Instance.CameraControl != null) { Game.Instance.CameraControl.FollowDistance = followDistance; } } return(true); } else if (main.ToLower().Equals("stop_navigate"))// 停止寻路 { TargetPathManager.Instance.StopPlayerAndReset(); return(true); } else if (main.ToLower().Equals("large_num_float_tips"))// 大数字飘字 { if (paramArray.Count > 0) { ulong num = ulong.Parse(paramArray[0]); uint decimalPlaces = 1; if (paramArray.Count > 1) { decimalPlaces = uint.Parse(paramArray[1]); } UINotice.Instance.ShowMessage(xc.ui.UIWidgetHelp.GetLargeNumberString(num, decimalPlaces)); } return(true); } else if (main.ToLower().Equals("enter_guild_manor"))// 进入帮派领地 { InstanceHelper.EnterGuildManor(); return(true); } else if (main.ToLower().Equals("fly"))// 主角瞬移 { if (paramArray.Count > 1) { float x = float.Parse(paramArray[0]); float z = float.Parse(paramArray[1]); Actor localPlayer = Game.Instance.GetLocalPlayer(); if (localPlayer != null) { localPlayer.MoveCtrl.SendFly(new Vector3(x, 0f, z)); } } return(true); } else if (main.ToLower().Equals("-jumpscene"))// 跳场景动画测试 { var local_player = Game.Instance.GetLocalPlayer(); if (local_player != null) { local_player.BeginJumpScene("jumpout"); } return(true); } else if (main.ToLower().Equals("posteffect"))// 后处理效果测试 { WaterWaveEffect.Instance.Start(2.0f, null); return(true); } else if (main.ToLower().Equals("lowfps"))// fps较低 { ClientEventMgr.Instance.PostEvent((int)ClientEvent.CE_SETTING_LOW_FPS, null); return(true); } else if (main.ToLower().Equals("event"))// { int eventId = 0; if (paramArray.Count > 0) { eventId = int.Parse(paramArray[0]); } ClientEventMgr.GetInstance().FireEvent(eventId, null); } else if (main.ToLower().Equals("testdb")) { var buff_info = DBBuffSev.GetInstance().GetBuffInfo(25103); /*var db_stigmalv = DBManager.Instance.GetDB<DBStigmaLv>(); * var max_lv = db_stigmalv.GetMaxLevel(100001); * var info = db_stigmalv.GetOneInfo(100001, 1); * * var text = DBConstText.GetText("GUILD_FIRE_DRINK_WINE_ROLLING_NOTICE"); * var random_text = DBConstText.GetRandomText("GUILD_FIRE_GET_MEAT_SYS_MSG_",3); * var db_guildskill = DBManager.Instance.GetDB<DBGuildSkill>(); * var skill_info = db_guildskill.GetOneItem(1, 10); * * var dv_equip_attr = DBManager.Instance.GetDB<DBEquipAttr>(); * var a = dv_equip_attr.GetAttrData(993901); * var b = dv_equip_attr.GetAttrDataByGroupId(9939); * * var d = DBSuitRefine.Instance.GetRefineListByPos(EEquipPos.POS_ARMOUR, 5); * var s = DBSuitRefine.Instance.GetData("3_7_3");*/ return(true); } else if (main.ToLower().Equals("testdrop")) { //InstanceDropManager.Instance.DestroyAllDrops(); var drop = new S2CNwarDrop(); drop.em_id = 0; drop.drop_type = 1; for (int i = 0; i < 100; ++i) { var give = new PkgDropGive(); give.oid = (uint)i + 1; give.type = GameConst.GIVE_TYPE_GOODS; give.gid = 1085; give.num = 1; give.time = Game.Instance.ServerTime; give.name = System.Text.Encoding.UTF8.GetBytes("掉落归属者"); drop.drops.Add(give); } byte[] serialData = null; using (MemoryStream m = new MemoryStream()) { Serializer.Serialize <S2CNwarDrop>(m, drop); m.Position = 0; serialData = new byte[m.Length]; m.Read(serialData, 0, (int)m.Length); } Game.GetInstance().ProcessServerData(NetMsg.MSG_NWAR_DROP, serialData); } else if (main.ToLower().Equals("clear_drop")) { InstanceDropManager.Instance.DestroyAllDrops(); } else if (main.ToLower().Equals("copy")) { if (paramArray.Count > 0) { TextHelper.CopyTextToClipboard(paramArray[0]); } } else if (main.ToLower().Equals("test_download")) { if (paramArray.Count > 0) { xpatch.http.Request httpRequest = new xpatch.http.Request(); httpRequest.Url = paramArray[0]; httpRequest.SavePath = Application.dataPath + "/../download"; httpRequest.ResumeSize = 0; httpRequest.ExecuteDownload(); } } else if (main.ToLower().Equals("log_msg")) { xc.Game.Instance.PackRecorder.EnableLogFile = true; } LuaScriptMgr.Instance.CallLuaFunction(LuaScriptMgr.Instance.Lua.Global, "LuaProcessDebugCommand", main, paramArray); return(false); }
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(); }
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> /// 获取表格中的技能数据 /// </summary> public SkillInfoSev GetSkillInfo(uint skill_id) { SkillInfoSev skill_info = null; if (!mSkillInfoMap.TryGetValue(skill_id, out skill_info)) { string query_str = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", "data_skill", "id", skill_id); var table_reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, "data_skill", query_str); if (table_reader == null) { mSkillInfoMap[skill_id] = null; return(null); } if (!table_reader.HasRows || !table_reader.Read()) { mSkillInfoMap[skill_id] = null; table_reader.Close(); table_reader.Dispose(); return(null); } skill_info = new SkillInfoSev(); skill_info.Id = DBTextResource.ParseUI(GetReaderString(table_reader, "id")); skill_info.IsPg = DBTextResource.ParseUS_s(GetReaderString(table_reader, "is_pg"), 0) == 1; skill_info.FindTargetType = DBTextResource.ParseUS_s(GetReaderString(table_reader, "find_target"), 1); skill_info.FindTarget = skill_info.FindTargetType != 0; skill_info.TargetLimit = GetReaderString(table_reader, "target_limit"); skill_info.IsTrigger = GetReaderString(table_reader, "action_type") != "active"; skill_info.CDTime = DBTextResource.ParseUI_s(GetReaderString(table_reader, "cd"), 0); skill_info.Range = DBTextResource.ParseUI_s(GetReaderString(table_reader, "range"), 0) * 0.01f - 0.5f; // 因为服务端减少了容错,攻击范围变得更小了,所以这里减0.5 skill_info.Range = Mathf.Max(0f, skill_info.Range); skill_info.MpCost = DBTextResource.ParseI_s(GetReaderString(table_reader, "cost"), 0); skill_info.Target = GetReaderString(table_reader, "target"); skill_info.ForwardSpeed = (float)DBTextResource.ParseI_s(GetReaderString(table_reader, "forward_move_speed"), 0) * 0.01f; skill_info.ForwardTime = (float)DBTextResource.ParseI_s(GetReaderString(table_reader, "forward_move_time"), 0) * GlobalConst.MilliToSecond; skill_info.MaxSingTime = (float)DBTextResource.ParseI_s(GetReaderString(table_reader, "max_sing_time"), 0) * GlobalConst.MilliToSecond; skill_info.CastingSpeed = (float)DBTextResource.ParseI_s(GetReaderString(table_reader, "casting_move_speed"), 0) * 0.01f; skill_info.CastingTime = (float)DBTextResource.ParseI_s(GetReaderString(table_reader, "casting_move_time"), 0) * GlobalConst.MilliToSecond; skill_info.BulletId = DBTextResource.ParseUI_s(GetReaderString(table_reader, "bullet_id"), 0); skill_info.ParentSkillId = DBTextResource.ParseUI_s(GetReaderString(table_reader, "parent_skill"), 0); skill_info.ChildSkillId = DBTextResource.ParseUI_s(GetReaderString(table_reader, "child_skill"), 0); skill_info.AnimationName = GetReaderString(table_reader, "skill_ani"); skill_info.Sound = GetReaderString(table_reader, "skill_sound"); skill_info.CastingReadyName = GetReaderString(table_reader, "skill_sing_ani"); skill_info.CastingAnimationName = GetReaderString(table_reader, "skill_casting_ani"); skill_info.CastingEndAnimationName = GetReaderString(table_reader, "skill_casting_end_ani"); skill_info.RigidityTime = DBTextResource.ParseUS_s(GetReaderString(table_reader, "rigidity_time"), 0) * GlobalConst.MilliToSecond; skill_info.CacheTime = DBTextResource.ParseUS_s(GetReaderString(table_reader, "cache_time"), 0) * GlobalConst.MilliToSecond; skill_info.SkillAnnounce = GetReaderString(table_reader, "skill_announce"); skill_info.CostFury = DBTextResource.ParseUI_s(GetReaderString(table_reader, "cost_fury"), 0); skill_info.GenFury = DBTextResource.ParseUI_s(GetReaderString(table_reader, "gen_fury"), 0); skill_info.IsFalseHitBack = DBTextResource.ParseUS_s(GetReaderString(table_reader, "isFalseHitBack"), 0) == 1; skill_info.UiEffectIconList = DBTextResource.ParseArrayString(GetReaderString(table_reader, "ui_effect_icon_list"), ",", true); skill_info.UiEffectSoundName = GetReaderString(table_reader, "ui_effect_sound"); string[] ratios = TextHelper.GetTupleFromString(GetReaderString(table_reader, "multi_hit_ratio")); if (ratios != null) { skill_info.MultiHitRatios = new List <float>(); for (int j = 0; j < ratios.Length; ++j) { float ratio = DBTextResource.ParseF(ratios[j]); skill_info.MultiHitRatios.Add(ratio); } } string[] delays = TextHelper.GetTupleFromString(GetReaderString(table_reader, "multi_hit_delay")); if (delays != null) { skill_info.MultiHitDelayTimes = new List <float>(); for (int j = 0; j < delays.Length; ++j) { float delay = DBTextResource.ParseF(delays[j]); skill_info.MultiHitDelayTimes.Add(delay); } } if (skill_info.MultiHitDelayTimes != null && skill_info.MultiHitDelayTimes.Count != skill_info.MultiHitRatios.Count) { string log = string.Format("SkillId: {0} 多段伤害系数与延迟时间不匹配", skill_info.Id); Debug.LogError(log); } string[] effects = TextHelper.GetTupleFromString(GetReaderString(table_reader, "effects")); // 先把table_reader关闭,因为在GetBattleFxInfo和GetSkillEffectInfo中需要获取新的Reader table_reader.Close(); table_reader.Dispose(); // 获取技能特效参数 DBBattleFx.BattleFxInfo battleInfo = DBBattleFx.Instance.GetBattleFxInfo(skill_info.Id); if (battleInfo != null) { skill_info.BattleFxInfo = battleInfo; } else { if (skill_info.IsTrigger == false)// 非触发类型的技能才需要战斗效果信息 { GameDebug.LogError(string.Format("Skill: {0}没有对应的战斗效果信息", skill_info.Id)); } } // 追踪目标类型的子弹(依赖于battleInfo,所以要放在battleInfo数据读取之后) if (skill_info.BulletId != 0 && skill_info.IsTrigger == false) { DBBulletTrace.BulletInfo bulletInfo = DBBulletTrace.GetInstance().GetBulletInfo(skill_info.BulletId); if (bulletInfo != null) { skill_info.BulletTrace = new BulletTrackInstance(bulletInfo, skill_info); } } // 获取技能效果参数 if (effects != null) { for (int j = 0; j < effects.Length; ++j) { uint effectId = DBTextResource.ParseUI(effects[j]); var effect_info = DBSkillEffect.GetInstance().GetSkillEffectInfo(effectId); if (effect_info == null) { string log = string.Format("SkillId: {0} 对应的技能效果Id: {1} 错误", skill_info.Id, effectId); Debug.LogError(log); } else { if (effect_info.type == "charge" || effect_info.type == "teleport")// 冲锋、瞬移技能的移动速度参数放在效果表中配置 { skill_info.CastingSpeed = effect_info.p1 * GlobalConst.UnitScale; if (effect_info.type == "teleport") { skill_info.Invisible = true; } } } } } mSkillInfoMap[skill_info.Id] = skill_info; } return(skill_info); }
public GlobalConfig() { LoginInfo = new LoginInfoStruct(); IBridge bridge = DBOSManager.getDBOSManager().getBridge(); mDeviceMark = bridge.getDBMachineId(); mSDKName = bridge.getSDKName(); mAppDocPath = bridge.getGameDocPath(); mAppResPath = bridge.getGameResPath(); mAppId = 0; mChannel = ""; mSubChannel = ""; // 从SDKName中解析出Channel string[] sdkNameStrs = mSDKName.Split('_'); #if UNITY_ANDROID if (sdkNameStrs.Length >= 3) { mAppId = DBTextResource.ParseI_s(sdkNameStrs[1], 0); mChannel = sdkNameStrs[2]; } #elif UNITY_IPHONE if (sdkNameStrs.Length >= 2) { mAppId = DBTextResource.ParseI_s(sdkNameStrs[1], 0); } #else #endif int appId = bridge.getAppID(); if (appId > 0) { mAppId = appId; } string channel = bridge.getCurrChannel(); if (string.IsNullOrEmpty(channel) == false) { mChannel = channel; } string subChannel = bridge.getSubChannel(); if (string.IsNullOrEmpty(subChannel) == false) { mSubChannel = subChannel; } // 获取游戏启动时间戳,非安卓平台在NewInitSceneLoader那边获取 #if UNITY_ANDROID mStartTimeStamp = bridge.getStartTimeStamp(); #endif if (bridge.isBridgeEnable() == false) { mIsEnterSDK = false; mPlatformName = ""; #if UNITY_ANDROID mPlatformName = "android"; #elif UNITY_IPHONE mPlatformName = "ios"; #elif UNITY_EDITOR mPlatformName = "editor"; #else mPlatformName = "win"; #endif return; } #if UNITY_ANDROID #if HD_RESOURCE // 高清版 mIsEnterSDK = false; Const.IsFullApp = true; #else mIsEnterSDK = true; #endif mPlatformName = "android"; mDeviceMark = bridge.getDBMachineId(); #elif UNITY_IPHONE mIsEnterSDK = true; //mIsEnterUpgradeScene = false; mPlatformName = "ios"; // iOS的DeviceMark需要从本地保存的文件读取 GlobalSettings.GetInstance(); mDeviceMark = UserPlayerPrefs.Instance.GetString("DeviceMark", ""); #if FULL_APP mIsEnterSDK = true; Const.IsFullApp = true; #else mIsEnterSDK = true; #endif #elif UNITY_STANDALONE_WIN mPlatformName = "win"; #else mPlatformName = "android"; mDeviceMark = bridge.getDBMachineId(); #endif mIsDebugMode = false; #if TEST_HOST || CMPT_RELEASE //通过SDK登录 mIsEnterSDK = false; #if UNITY_ANDROID || UNITY_IPHONE mIsEnterSDK = false; #endif #endif }