示例#1
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.OnFinished)
        {
            NetMessage.SCFinishBattle proto = args[0] as NetMessage.SCFinishBattle;
            if (proto == null)
            {
                return;
            }

            int rewardCount = 0;
            if (proto.rewards.Count > 0)
            {
                moneyObj.SetActive(true);
                moneyLabel.text = string.Format("X{0}", proto.rewards[0].num);
                moneyObj.SetActive(false);
                ++rewardCount;
            }
            if (rewardCount == 2)
            {
                lineObj.SetActive(true);
            }
            else if (rewardCount == 1)
            {
                chestObj.transform.localPosition = moneyObj.transform.localPosition = lineObj.transform.localPosition;
            }
        }

        if (eventId == EventId.OnFriendFollowResult)
        {
            // 关注好友结果
            int  userId = (int)args[0];
            bool follow = (bool)args[1]; // 关注或者取消关注行动
            NetMessage.ErrCode errCode = (NetMessage.ErrCode)args[2];
            if (errCode == NetMessage.ErrCode.EC_Ok)
            {
                Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(815), 1.0f);
                for (int i = 0; i < 4; i++)
                {
                    UILabel ID = btnAttention[i].transform.Find("useid").GetComponent <UILabel>();
                    if (ID == null || string.IsNullOrEmpty(ID.text))
                    {
                        continue;
                    }

                    int useID = int.Parse(ID.text);
                    if (userId == useID)
                    {
                        btnAttention[i].SetActive(false);
                    }
                }
            }
        }
    }
示例#2
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.RequestUserResult)
        {
            // 重连后获取玩家数据
            NetMessage.ErrCode code = (NetMessage.ErrCode)args[0];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
                EventSystem.Instance.FireEvent(EventId.ReconnectResult);
                UISystem.Instance.HideWindow("ReconnectWindow");
            }
            else if (code == NetMessage.ErrCode.EC_NoExist)
            {
                CreateDefaultUser();
                UISystem.Instance.HideWindow("ReconnectWindow");
            }
            else if (code == NetMessage.ErrCode.EC_NeedResume)
            {
                // 需要恢复
                UISystem.Instance.HideWindow("ReconnectWindow");
                EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 1, LanguageDataProvider.GetValue(20));
                NetSystem.Instance.helper.ReconnectResume(); // 此时根据结果来判断是走哪种恢复
                //EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 2, LanguageDataProvider.GetValue(20),
                //                                                          new EventDelegate(ReconnectResume),
                //                                                          new EventDelegate(ReconnectGiveup) );
            }
        }

        else if (eventId == EventId.CreateUserResult)
        {
            NetMessage.ErrCode code = (NetMessage.ErrCode)args[0];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
                EventSystem.Instance.FireEvent(EventId.ReconnectResult);
                UISystem.Instance.HideWindow("ReconnectWindow");
            }
        }

        else if (eventId == EventId.NetworkStatus)
        {
            bool bConnected = (bool)args[0];
            if (bConnected)
            {
                //UISystem.Instance.HideWindow("ReconnectWindow");
            }
        }
    }
示例#3
0
 public override void OnUIEventHandler(EventId eventId, params object[] args)
 {
     if (eventId == EventId.OnStartMatchResult)
     {
         NetMessage.ErrCode code = (NetMessage.ErrCode)args [0];
         if (code == NetMessage.ErrCode.EC_Ok)
         {
             // 关闭当前页,打开等待页
             UISystem.Instance.HideWindow("CreateRoomWindow");
             UISystem.Instance.ShowWindow("RoomWaitWindow");
         }
         else if (code == NetMessage.ErrCode.EC_MatchIsFull)
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(902), 1.0f);
         }
         else if (code == NetMessage.ErrCode.EC_MatchIsMember)
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(903), 1.0f);
         }
         else if (code == NetMessage.ErrCode.EC_NotInMatch)
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(904), 1.0f);
         }
         else if (code == NetMessage.ErrCode.EC_NotMaster)
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(905), 1.0f);
         }
         else if (code == NetMessage.ErrCode.EC_RoomNotExist)
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(906), 1.0f);
         }
         else
         {
             Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.Format(901, code), 1.0f);
         }
     }
 }
示例#4
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.OnMatchInit)
        {
            // room init
            matchId = (string)args [0];
            roomId  = (string)args [1];
            IList <NetMessage.UserData> userList = (IList <NetMessage.UserData>)args [2];
            IList <int> userIndexList            = (IList <int>)args [3];
            hostId    = (int)args [4];
            playerNum = (int)args[5];

            // format data
            int nPlayerCount = 0;
            for (int i = 0; i < userList.Count; ++i)
            {
                PlayerData pd = new PlayerData();
                if (pd.userId > 0)
                {
                    nPlayerCount++;
                }
                pd.Init(userList [i]);
                int index = userIndexList [i];
                allPlayers [index] = pd;
            }

            SetModelPage();
            SetPage();
            Flurry.Instance.FlurryPVPBattleMatchEvent("1", matchId, "0", nPlayerCount.ToString(), roomId);
        }
        else if (eventId == EventId.OnMatchUpdate)
        {
            // room update

            IList <NetMessage.UserData> userAddList = (IList <NetMessage.UserData>)args [0];
            IList <int>  userIndexAddList           = (IList <int>)args [1];
            IList <int>  userIndexDeleteList        = (IList <int>)args [2];
            IList <bool> userKickList       = (IList <bool>)args [3];
            IList <int>  userChangeFromList = (IList <int>)args [4];
            IList <int>  userChangeToList   = (IList <int>)args [5];
            if (args.Length == 7)
            {
                hostId = (int)args [6];
            }

            for (int i = 0; i < userIndexDeleteList.Count; ++i)
            {
                int index = userIndexDeleteList [i];

                if (allPlayers [index] != null && allPlayers [index].userId == LocalPlayer.Get().playerData.userId)
                {
                    // 自己退出,则关闭页面
                    UISystem.Instance.HideWindow("RoomWaitWindow");
                    UISystem.Instance.ShowWindow("CreateRoomWindow");

                    if (userKickList [i])
                    {
                        // 被踢
                        Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(909), 1.0f);
                    }
                }

                allPlayers [index] = null;
            }
            // add
            for (int i = 0; i < userAddList.Count; ++i)
            {
                PlayerData pd = new PlayerData();
                pd.Init(userAddList [i]);
                int index = userIndexAddList [i];
                allPlayers [index] = pd;
            }
            // change pos
            for (int i = 0; i < userChangeFromList.Count; ++i)
            {
                AudioManger.Get().PlayEffect("onOpen");
                int from = userChangeFromList [i];
                int to   = userChangeToList [i];

                PlayerData temp = allPlayers [from];
                allPlayers [from] = allPlayers [to];
                allPlayers [to]   = temp;
            }

            SetPage();
        }
        else if (eventId == EventId.OnMatchQuit)
        {
            // quit , 谁触发的quit,谁收到quit,
            NetMessage.ErrCode code = (NetMessage.ErrCode)args [0];
            if (code == NetMessage.ErrCode.EC_NotMaster)
            {
                Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(905), 1.0f);
            }
            else if (code != NetMessage.ErrCode.EC_Ok)
            {
                Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.Format(901, code), 1.0f);
            }
            else if (code == NetMessage.ErrCode.EC_Ok)
            {
                UISystem.Get().HideAllWindow();
                UISystem.Get().ShowWindow("CreateRoomWindow");
            }
        }
    }
示例#5
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.OnGetLeagueInfoResult)
        {
            // 获取的是自身的联赛信息,则要么在战斗,要么在等待
            leagueInfo = (NetMessage.LeagueInfo)args [0];
            selfInfo   = (NetMessage.MemberInfo)args [1];

            start = TimeSystem.Instance.GetTime(leagueInfo.combat_start);
            end   = TimeSystem.Instance.GetTime(leagueInfo.combat_finish);
            DateTime serverTime = TimeSystem.Instance.GetServerTime();

            if (serverTime.CompareTo(start) < 0)
            {
                // 未开始
                SetWaitPage();
            }
            else if (serverTime.CompareTo(end) < 0)
            {
                // 战斗中
                if (selfInfo.battle_num == 0)
                {
                    SetWaitPage();
                }
                else
                {
                    SetBattlePage();
                    // 请求排行榜
                    NetSystem.Instance.helper.RequestLeagueRank(leagueInfo.id, 0);
                }
            }
            else
            {
                // 已结束
                SetResultPage();
                // 请求排行榜
                NetSystem.Instance.helper.RequestLeagueRank(leagueInfo.id, 0);
            }
        }
        else if (eventId == EventId.OnLeagueListResult)
        {
            // 展示报名信息
            int start = (int)args [0];
            IList <NetMessage.LeagueInfo> leagueList = (IList <NetMessage.LeagueInfo>)args [1];

            if (leagueList == null || leagueList.Count == 0)
            {
                // 没有活动
                SetNotOpenPage();
            }
            else
            {
                // 显示第一个活动
                SetSignUpPage(leagueList [0]);
            }
        }
        else if (eventId == EventId.OnLeagueSignUpResult)
        {
            // 报名结果
            NetMessage.ErrCode code     = (NetMessage.ErrCode)args [0];
            string             leagueId = (string)args [1];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
                // 不需要,自动发送获取联赛信息的消息
            }
            else if (code == NetMessage.ErrCode.EC_LeagueIsFull)
            {
                Tips.Make(LanguageDataProvider.GetValue(210));
            }
            else if (code == NetMessage.ErrCode.EC_LeagueIn)
            {
                Tips.Make(LanguageDataProvider.GetValue(211));
            }
            else if (code == NetMessage.ErrCode.EC_LeagueNotExist)
            {
                Tips.Make(LanguageDataProvider.GetValue(212));
            }
            else if (code == NetMessage.ErrCode.EC_LeagueNotOpen)
            {
                Tips.Make(LanguageDataProvider.GetValue(213));
            }
            else
            {
                Tips.Make(LanguageDataProvider.GetValue(214) + code);
            }
        }
        else if (eventId == EventId.OnLeagueRankResult)
        {
            IList <NetMessage.MemberInfo> list = (IList <NetMessage.MemberInfo>)args [1];
            rankList.AddRange(list);

            if (battlePage.activeSelf)
            {
                SetRankScrollView(battleRankScrollView, battleRankGrid, battleStaticRanks);
            }
            else if (resultPage.activeSelf)
            {
                SetRankScrollView(resultRankScrollView, resultRankGrid, resultStaticRanks);
                // 设置结果自己的排名
                SetResultSelfRank();
            }
        }
        else if (eventId == EventId.OnLeagueMatchResult)
        {
            NetMessage.ErrCode code = (NetMessage.ErrCode)args [0];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
            }
            else if (code == NetMessage.ErrCode.EC_LeagueNotInMatchTime)
            {
                Tips.Make(LanguageDataProvider.GetValue(215));
            }
            else
            {
                Tips.Make(LanguageDataProvider.GetValue(216));
            }
        }
    }
示例#6
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.OnMatchInit)
        {
            matchId = (string)args[0];
            roomId  = (string)args[1];
            IList <NetMessage.UserData> userList = (IList <NetMessage.UserData>)args[2];
            IList <int> userIndexList            = (IList <int>)args[3];
            timeCount = (int)args[4];
            playerNum = (int)args[5];
            int nPlayerCount = 0;
            for (int i = 0; i < userList.Count; ++i)
            {
                PlayerData pd = new PlayerData();
                pd.Init(userList[i]);
                if (pd.userId > 0)
                {
                    nPlayerCount++;
                }
                else
                {
                    // AI
                    //pd.name = AIManager.GetAIName(pd.userId);
                    //pd.icon = AIManager.GetAIIcon(pd.userId);
                }

                int index = userIndexList[i];
                nowUserDatas[index] = pd;
                SetModelPage();
                SetPage();
                CheckAllEntered();
                Flurry.Instance.FlurryPVPBattleMatchEvent("0", matchId, "0", nPlayerCount.ToString(), "");
            }
        }
        else if (eventId == EventId.OnMatchUpdate)
        {
            IList <NetMessage.UserData> userAddList = (IList <NetMessage.UserData>)args[0];
            IList <int> userIndexAddList            = (IList <int>)args[1];
            IList <int> userIndexDeleteList         = (IList <int>)args[2];
            for (int i = 0; i < userIndexDeleteList.Count; ++i)
            {
                int index = userIndexDeleteList[i];
                nowUserDatas[index] = null;
            }

            // add
            for (int i = 0; i < userAddList.Count; ++i)
            {
                PlayerData pd = new PlayerData();
                pd.Init(userAddList[i]);
                if (pd.userId <= 0)
                {
                    // AI
                    //pd.name = AIManager.GetAIName(pd.userId);
                    //pd.icon = AIManager.GetAIIcon(pd.userId);
                }

                int index = userIndexAddList[i];
                nowUserDatas[index] = pd;
            }

            SetPage();
            CheckAllEntered();
        }
        else if (eventId == EventId.OnMatchQuit)
        {
            // quit , 谁触发的quit,谁收到quit,
            NetMessage.ErrCode code = (NetMessage.ErrCode)args[0];

            if (code == NetMessage.ErrCode.EC_NotMaster)
            {
                Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.GetValue(905), 1.0f);
            }
            else if (code != NetMessage.ErrCode.EC_Ok)
            {
                Tips.Make(Tips.TipsType.FlowUp, LanguageDataProvider.Format(901, code), 1.0f);
            }
            else if (code == NetMessage.ErrCode.EC_Ok)
            {
                BattleSystem.Instance.battleData.root.SetActive(false);
                BattleSystem.Instance.Reset();
                UISystem.Get().HideAllWindow();
                UISystem.Get().ShowWindow("StartWindow");
            }
        }
    }
示例#7
0
    public override void OnUIEventHandler(EventId eventId, params object[] args)
    {
        if (eventId == EventId.RequestUserResult)
        {
            // 请求玩家数据结果
            NetMessage.ErrCode code = (NetMessage.ErrCode)args[0];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
                RequestAccountAndChapters();
            }
            else if (code == NetMessage.ErrCode.EC_NoExist)
            {
                // 默认玩家
                CreateDefaultUser();
            }
            else if (code == NetMessage.ErrCode.EC_NeedResume)
            {
                // 需要恢复
                UISystem.Get().ShowWindow("CommonDialogWindow");
                EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 1, LanguageDataProvider.GetValue(20));
                NetSystem.Instance.helper.ReconnectResume(); // 此时根据结果来判断是走哪种恢复
                //EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 2, LanguageDataProvider.GetValue(20),
                //                                                          new EventDelegate(ReconnectResume),
                //                                                          new EventDelegate(ReconnectGiveup));
            }
        }
        else if (eventId == EventId.CreateUserResult)
        {
            // 创建玩家结果
            NetMessage.ErrCode code = (NetMessage.ErrCode)args[0];
            if (code == NetMessage.ErrCode.EC_Ok)
            {
                RequestAccountAndChapters();
            }
            else if (code == NetMessage.ErrCode.EC_NameExist)
            {
                Tips.Make(LanguageDataProvider.GetValue(4));
            }
            else if (code == NetMessage.ErrCode.EC_InvalidName)
            {
                Tips.Make(LanguageDataProvider.GetValue(5));
            }
            else if (code == NetMessage.ErrCode.EC_AccountExist)
            {
                Tips.Make(LanguageDataProvider.GetValue(6));
            }
            else
            {
                Tips.Make(LanguageDataProvider.GetValue(7));
            }
        }
        else if (eventId == EventId.OnABGetVersions)
        {
            int versionCount = (int)args[0];
            loadingTip.text += "";
            if (versionCount == 0)
            {
                SetProgress(0.6f);
                RequestOfflineNotice();
            }
            else
            {
                loadingTip.text += string.Format(LanguageDataProvider.GetValue(305), versionCount);
                progressInterval = 0.5f / versionCount;
                SetProgress(0.1f);
                CoroutineMono.Start(UpdateSystem.Get().StartUpdate());
            }
        }
        else if (eventId == EventId.OnPackageUpdate)
        {
            // 整包更新
            TableVersion packageUpdateVersion = args[0] as TableVersion;
            // 弹出大版本更新提示框
            string desc = packageUpdateVersion.desc.Replace("\\n", "\n");
            UISystem.Instance.ShowWindow("CommonDialogWindow");
            EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 4, desc
                                           , new EventDelegate(() =>
            {
                Application.OpenURL(packageUpdateVersion.assetTableUrl);
            }));
        }
        else if (eventId == EventId.OnHttpNotice)
        {
            // 获取http公告
            string notice = (string)args[0];
            int    len    = notice.Length;
            if (len < 2)
            {
                // 没有公告,进入sdk登录
                LoginSDK();
            }
            else
            {
                // 有公告,分析公告
                int type = 0;
                int.TryParse(notice.Substring(0, 1), out type);
                string text = notice.Substring(2).Replace("\\n", "\n");
                UISystem.Instance.ShowWindow("CommonNoticeWindow");
                if (type == 0)
                {
                    EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 1, text
                                                   , new EventDelegate(() =>
                    {
                        LoginSDK();
                    }));
                }
                else
                {
                    EventSystem.Instance.FireEvent(EventId.OnCommonDialog, 4, text);
                }
            }
        }
        else if (eventId == EventId.OnABDownloadIndex)
        {
            int index = (int)args[0];
            int size  = (int)args[1];
            loadingTip.text += string.Format(LanguageDataProvider.GetValue(306), index + 1, size / 8000);
            SetProgress(targetProgress + (index + 1) * progressInterval);
        }
        else if (eventId == EventId.OnABDownloading)
        {
            float progress = (float)args[0];
            int   bytes    = (int)args[1];
            Debug.Log("progress : " + progress + "  已接收:" + bytes);
        }
        else if (eventId == EventId.OnABDownloadingFinished)
        {
            loadingTip.text += LanguageDataProvider.GetValue(307);
            SetProgress(0.6f);

            loadingTip.text += LanguageDataProvider.GetValue(308);
            UpdateSystem.Get().ReloadClient();
            loadingTip.text += LanguageDataProvider.GetValue(309);

            RequestOfflineNotice();
        }
        else if (eventId == EventId.OnSDKLoginResult)
        {
            CoroutineMono.Start(LoginServer());
        }

        else if (eventId == EventId.UpdateChaptersView)
        {
            UISystem.Get().HideAllWindow();
            UISystem.Get().ShowWindow("LobbyWindowView");
            EventSystem.Instance.FireEvent(EventId.UpdateChaptersWindow, 1);
        }

        else if (eventId == EventId.OnSyncuserAndChaptersResult)
        {
            //int type    = (int)args[0];
            //int nResult = (int)args[1];
            //if( type == 0 )
            //{
            //    if (UserSyncSysteam.Get().curLoadStruct != null && nResult == 1)
            //    {
            //        if (UserSyncSysteam.Get().curLoadStruct.regtimeSaveFile != LocalAccountStorage.Get().regtimeSaveFile)
            //            UISystem.Instance.ShowWindow("CloudWindow");
            //        else
            //            StartSingleGame();
            //    }
            //    else
            //    {
            //        StartSingleGame();
            //    }
            //}
        }
    }