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);
        }
Exemple #2
0
 public void OpenLuaView(FunctionOpenType type, params object[] param)
 {
     if (LuaScriptMgr.Instance == null)
     {
         return;
     }
     FunctionOpenModelLuaTable.GetLuaFunction("OpenFunctionByCSharp").Call((int)type, param);
 }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        public static FunctionData GetFunctionDataByID(FunctionOpenType type)
        {
            int id = (int)type;

            return(GetFunctionDataByID(id));
        }
Exemple #6
0
        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;
//
//			}
        }
Exemple #7
0
 public void OpenFunction(FunctionOpenType type, Object data = null)
 {
     OpenFunction(type, data, false, true);
 }
Exemple #8
0
 public bool IsFunctionOpen(FunctionOpenType type)
 {
     return(IsFunctionOpen(type, false));
 }
Exemple #9
0
        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;
            }
        }