public void RefreshByProtocol(int funcId, int subFuncId) { //蛋疼的策划非得不统一客户端、服务端id FunctionOpenType type = (FunctionOpenType)(funcId / 10 * 10); int sub = subFuncId - funcId; switch (type) { case FunctionOpenType.MainView_Mail: MailProxy.instance.hasNewMailComing = true; break; case FunctionOpenType.MainView_Friend: if (sub == 1) { FriendProxy.instance.NewFriendListComing = true; } else if (sub == 3) { FriendProxy.instance.NewFriendRequestComing = true; } break; default: { LuaTable model = (LuaTable)LuaInterface.LuaScriptMgr.Instance.CallLuaFunction("gamemanager.GetModel", "red_point_model")[0]; model.GetLuaFunction("UpdateRedPointByProtocol").Call((int)type, sub); } break; } RefreshSpecific((int)type); }
public void OpenLuaView(FunctionOpenType type, params object[] param) { if (LuaScriptMgr.Instance == null) { return; } FunctionOpenModelLuaTable.GetLuaFunction("OpenFunctionByCSharp").Call((int)type, param); }
public bool IsFunctionOpen(FunctionOpenType type, bool showTip) { if (LuaScriptMgr.Instance == null) { return(true); } object isOpenTable = FunctionOpenModelLuaTable.GetLuaFunction("IsFunctionOpen").Call((int)type, showTip)[0]; return((bool)isOpenTable); }
/// <summary> /// Opens the function. /// </summary> /// <param name="type">Type.</param> /// <param name="data">Data. 界面数据需要:Hero_BreakThrough、Hero_Strengthen、Hero_Advance、Dungeon_Detail_View</param> /// <param name="loadParent">如果打开的是二级界面, 是否加载一级界面.</param> /// <param name="showTip">功能未开放,是否显示提示文字</param> public void OpenFunction(FunctionOpenType type, object data, bool loadParent = false, bool showTip = false) { if (!IsFunctionOpen(type, showTip)) { return; } if (loadParent) { UI.UIMgr.instance.Close(Logic.UI.EUISortingLayer.MainUI); } DoOpenFunction(type, data, loadParent); }
public static FunctionData GetFunctionDataByID(FunctionOpenType type) { int id = (int)type; return(GetFunctionDataByID(id)); }
public void OnClickTaskIconBtnHandler() { TaskConditionData data = TaskConditionData.GetTaskConditionData(taskInfo.taskData.id); if (data == null) { Debugger.LogError("taskConditionData 找不到 id:{0}", taskInfo.GetFirstCondition().taskDataId); return; } if (data.goto_type == 0) { Debugger.Log("goto_type is 0"); return; } FunctionOpenType type = (FunctionOpenType)data.goto_type; bool isOpen = FunctionOpenProxy.instance.IsFunctionOpen(type, true); if (isOpen) { FunctionOpenProxy.instance.OpenFunction(type, data.goto_num); if (data.goto_num == 0) { return; } if (type == FunctionOpenType.MainView_PVE || type == FunctionOpenType.PVE_Normal || type == FunctionOpenType.PVE_Hard) { DungeonInfo info = DungeonProxy.instance.GetDungeonInfo(data.goto_num); if (info != null && !info.isLock) { FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_Detail_View, data.goto_num); } else if (info == null) { Debugger.LogError("副本不存在,id" + data.goto_num); } else if (info.isLock) { CommonAutoDestroyTipsView.Open(Localization.Get("ui.goodsJumpPathView.notUnlock")); } } if (type == FunctionOpenType.MainView_Hero) { List <HeroInfo> heroList = HeroProxy.instance.GetAllHeroInfoList(); if (heroList.Count == 0) { return; } int id = (int)heroList[0].instanceID; print((FunctionOpenType)data.goto_num); FunctionOpenProxy.instance.OpenLuaView((FunctionOpenType)data.goto_num, id); } } // TaskType type = (TaskType)_taskInfo.taskData.type; // switch(type) // { // case TaskType.PassDungeonTimes://通关某个副本 // case TaskType.clearDungeon: //通关某个副本 // case TaskType.assignDungeonStar://指定副本星级 // { // int id = taskInfo.GetFirstCondition().secondParam; // DungeonInfo info = DungeonProxy.instance.GetDungeonInfo(id); // if(info!= null && !info.isLock) // FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_Detail_View,info,true); // if(info == null) // Debugger.LogError("副本不存在,id"+id); // else if(info.isLock) // { // CommonAutoDestroyTipsView.Open(Localization.Get("ui.goodsJumpPathView.notUnlock")); // } // } // break; // case TaskType.dailyDungeonFight://参与每日副本 // { // FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.MainView_DailyDungeon,null,false,true); // } // break; // case TaskType.boostNewDungeonCount://推进新副本次数 // //case TaskType.ProfessionIDAndLevel://职业等级 // { // FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.Dungeon_SelectChapter_View); // } // break; // case TaskType.pvpFightCount: //竞技场战斗次数 // { // FunctionOpenProxy.instance.OpenFunction(FunctionOpenType.FightCenter_Arena,null,false,true); // } // break; // // } }
public void OpenFunction(FunctionOpenType type, Object data = null) { OpenFunction(type, data, false, true); }
public bool IsFunctionOpen(FunctionOpenType type) { return(IsFunctionOpen(type, false)); }
private void DoOpenFunction(FunctionOpenType type, object data = null, bool loadParent = false) { UIMgr uiMgrInstance = UIMgr.instance; switch (type) { case FunctionOpenType.MainView: Logic.UI.Main.View.MainView.Open(); break; case FunctionOpenType.MainView_Hero: //主界面-英雄按钮 case FunctionOpenType.RoleInfoView: if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } OpenLuaView(FunctionOpenType.MainView_Hero); break; case FunctionOpenType.PveEmbattleView: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } LuaTable pveEmbattleCtrlLua = (LuaTable)LuaScriptMgr.Instance.CallLuaFunction("gamemanager.GetCtrl", "pve_embattle_controller")[0]; pveEmbattleCtrlLua.GetLuaFunction("OpenPveEmbattleView").Call(); } break; case FunctionOpenType.Shop_View: //商店 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } // Logic.UI.Shop.View.ShopView shopView = uiMgrInstance.Open<Logic.UI.Shop.View.ShopView>(Logic.UI.Shop.View.ShopView.PREFAB_PATH); // Logic.UI.Shop.View.ShopView.Open((int)data); // if (data != null) // shopView.SetTogglePanel((int)data); LuaTable shopControllerLuaTable = (LuaTable)LuaScriptMgr.Instance.CallLuaFunction("gamemanager.GetCtrl", "shop_controller")[0]; shopControllerLuaTable.GetLuaFunction("OpenShopView").Call(); } break; case FunctionOpenType.Shop_Diamond: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } Logic.UI.Shop.View.ShopView.Open(3); } break; case FunctionOpenType.Shop_Action: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } Logic.UI.Shop.View.ShopView.Open(4); } break; case FunctionOpenType.Shop_Gold: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } Logic.UI.Shop.View.ShopView.Open(5); } break; case FunctionOpenType.MainView_Equipment: //主界面-装备按钮 是否可见 case FunctionOpenType.Equipment_View: //装备界面 if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } uiMgrInstance.Open(Logic.UI.Equipments.View.EquipmentsBrowseView.PREFAB_PATH); break; case FunctionOpenType.Player_Change_Profession: //主角-转职 { if (loadParent) { DoOpenFunction(FunctionOpenType.RoleInfoView, data, loadParent); } uiMgrInstance.Open(Logic.UI.ChangeProfession.View.ChangeProfessionView.PREFAB_PATH); } break; case FunctionOpenType.PlayerWearEquip: //主角-穿戴 { if (loadParent) { DoOpenFunction(FunctionOpenType.RoleInfoView, data, loadParent); } Logic.UI.Equipments.View.RoleEquipmentsView roleEquipmentsView = UIMgr.instance.Open <Logic.UI.Equipments.View.RoleEquipmentsView>(Logic.UI.Equipments.View.RoleEquipmentsView.PREFAB_PATH); roleEquipmentsView.SetPlayerInfo(GameProxy.instance.PlayerInfo); } break; case FunctionOpenType.MainView_Formation: //英雄1队 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, data, loadParent); } LuaTable pveEmbattleCtrlLua = (LuaTable)LuaScriptMgr.Instance.CallLuaFunction("gamemanager.GetCtrl", "pve_embattle_controller")[0]; pveEmbattleCtrlLua.GetLuaFunction("OpenPveEmbattleView").Call(); } break; case FunctionOpenType.Dungeon_Detail_View: //副本详情 { if (data == null) { return; } int id = (int)data; if (loadParent) { DoOpenFunction(FunctionOpenType.Dungeon_SelectChapter_View, id, loadParent); } Logic.UI.DungeonDetail.View.DungeonDetailView.Open(id); } break; case FunctionOpenType.MainView_PVE: case FunctionOpenType.PVE_Normal: case FunctionOpenType.PVE_Hard: case FunctionOpenType.Dungeon_SelectChapter_View: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.SelectChapter.View.SelectChapterView chapter = uiMgrInstance.Open <Logic.UI.SelectChapter.View.SelectChapterView>(Logic.UI.SelectChapter.View.SelectChapterView.PREFAB_PATH); int dungeonID; if (data == null || (int)data == 0) { dungeonID = Logic.Dungeon.Model.DungeonProxy.instance.GetLastUnlockDungeonID(Dungeon.Model.DungeonProxy.instance.LastSelectPVEDungeonType); } else { dungeonID = (int)data; } chapter.SetSelectDungeon(dungeonID); } break; case FunctionOpenType.MainView_Task: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.Task.View.TaskView.Open(); } break; case FunctionOpenType.MainView_Mail: //邮件 if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.Mail.View.MailView.Open(); break; case FunctionOpenType.FightCenter_Arena: { if (loadParent) { DoOpenFunction(FunctionOpenType.MultpleFight_View, null, loadParent); } Logic.UI.Pvp.View.PvpView.Open(); } break; case FunctionOpenType.MainView_DailyDungeon: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } UIMgr.instance.Open(Logic.UI.DailyDungeon.View.DailyDungeonView.PREFAB_PATH); } break; case FunctionOpenType.Dungeon_Daily_Detail: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView_DailyDungeon, null, loadParent); } Logic.UI.DailyDungeon.View.DailyDungeonInfoView.Open(data as Logic.Activity.Model.ActivityInfo); } break; case FunctionOpenType.FightCenter_Expedition: //远征 { if (loadParent) { DoOpenFunction(FunctionOpenType.MultpleFight_View, null, loadParent); } Logic.UI.Expedition.View.ExpeditionView.Open(); } break; case FunctionOpenType.MainView_BlackMarket: //黑市 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } OpenLuaView(FunctionOpenType.MainView_BlackMarket, data); } break; case FunctionOpenType.MainView_FightCenter: case FunctionOpenType.MultpleFight_View: //pvp、竞技场一级界面 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.MultipleFight.View.MultipleFightView.Open(); } break; case FunctionOpenType.FightCenter_WorldTree: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } UIMgr.instance.Open(Logic.UI.WorldTree.View.WorldTreePreviewView.PREFAB_PATH); } break; case FunctionOpenType.MainView_WorldBoss: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } UIMgr.instance.Open(Logic.UI.WorldBoss.View.WorldBossView.PREFAB_PATH); } break; case FunctionOpenType.MainView_illustrate: //图鉴 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } bool use = false; if (data != null) { use = (bool)data; } Logic.UI.IllustratedHandbook.View.IllustratedHandbookView.Open(use); } break; case FunctionOpenType.MainView_Friend: //好友 { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.Friend.View.FriendView.Open(); } break; case FunctionOpenType.MainView_SignIn: //签到 if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } Logic.UI.SignIn.View.SignInView.Open(); break; case FunctionOpenType.MainView_Player: //主界面-主角按钮 是否可见 case FunctionOpenType.PlayerInfoView: if (loadParent) { DoOpenFunction(FunctionOpenType.MainView, null, loadParent); } UIMgr.instance.Open(Logic.UI.Player.View.PlayerInfoView.PREFAB_PATH); break; case FunctionOpenType.PlayerTraining: //使魔成长功能 if (loadParent) { DoOpenFunction(FunctionOpenType.PlayerInfoView, null, loadParent); } Logic.UI.Player.View.PlayerTalentView.Open(); break; case FunctionOpenType.Boss_List_View: { if (loadParent) { DoOpenFunction(FunctionOpenType.MainView_PVE, null, loadParent); } LuaTable chapterController = (LuaTable)LuaScriptMgr.Instance.CallLuaFunction("gamemanager.GetCtrl", "chapter_controller")[0]; chapterController.GetLuaFunction("OpenBossDungeonListView").Call(); } break; default: if (data != null) { OpenLuaView(type, data); } else { OpenLuaView(type); } break; } }