Ejemplo n.º 1
0
    private void _EndPVPBattle()
    {
        if (actData != null)
        {
            KHPluginManager.Instance.SendMessage("ActCenter", "ActCenter.GeAllActInfoReq", actData.act_id);

            actData = null;
        }
        else
        {
            KHPluginManager.Instance.GetPluginByName(PVPRealTimeMainUIPlugin.PluginName).SendMessage("QueryPVPRealTimeInfo");

            // 新增检测在结算和loading的过程中是否有收到邀请 有则弹出
            PVPRealTimeFriendModel friendModel = KHPluginManager.Instance.GetModel(PVPRealTimeFriendPlugin.PluginName) as PVPRealTimeFriendModel;
            friendModel.CheckInviteInfo();
        }
    }
Ejemplo n.º 2
0
    public override void OnInitData(object _data)
    {
        isExiting     = false;
        isMatchReturn = false;
        actData       = null;
        plugin        = KHPluginManager.Instance.GetPluginByName(PVPRealTimeMainUIPlugin.PluginName) as PVPRealTimeMainUIPlugin;
        model         = plugin.Model as PVPRealTimeMainUIModel;
        data          = _data as MatchEnemyData;

        /// _data可能有三种含义: MatchEnemyData(正常匹配), FightAgainData(与其再战), BriefRoleInfo(好友切磋)
        /// 这里写的太乱了, 有空的时候重构下
        FightAgainData againData = _data as FightAgainData;

        if (againData != null)
        {
            ShowForFightAgain(againData);
            return;
        }

        if (data == null)
        {
            friend = _data as BriefRoleInfo;
            if (friend == null)
            {
                // 用于活动主播接受队列某个玩家的挑战, 也是用邀请好友这一套
                actData = _data as MatchPvPAct;
                friend  = new BriefRoleInfo();

                friend.name = actData.name;
                ulong player_id = 0;
                ulong.TryParse(actData.player_id, out player_id);
                friend.player_id = player_id;
                friend.zoneid    = actData.zoneid;
            }
            data = new MatchEnemyData();
            data.isFightAgain  = false;
            data.lastSeconds   = 0;
            data.isFriend      = true;
            data.expectSeconds = -1;
            data.friendName    = friend.name;
            data.matchType     = PvpMatchType.Entertainment;
            NetworkManager.Instance.AddMessageCallback((int)ZoneCmd.ZONE_PVP_1V1_ACCEPT_NTF, OnFriendAccept);
            InviteFriend(friend);
        }
        else
        {
            SendMatchEnemyReq(data);
        }
        NetworkManager.Instance.AddMessageCallback((int)ZoneCmd.ZONE_PVP_1V1_ENTER_GAME_NTF, MatchSuccNtf);
        NetworkManager.Instance.AddMessageCallback((int)ZoneCmdLua.ZONE_LUA_JDC_PVP_BAN_PICK_ROOM_MATCH_NTF, BanMatchSuccNtf);
        if (!data.isFriend)
        {
            NGUITools.SetActive(EstimatedContainer.gameObject, false);
            //EstimatedTimeLabel.text = data.expectSeconds + "秒";
            DescLabel.text   = "正在寻找旗鼓相当的对手...";
            CancelLabel.text = "取消匹配";
            NGUITools.SetActive(Button, false);
        }
        else
        {
            NGUITools.SetActive(EstimatedContainer.gameObject, false);
            DescLabel.text   = "正在邀请 " + data.friendName + " 进行切磋";
            CancelLabel.text = "取消邀请";
            NGUITools.SetActive(Button, false);
        }
        BindingTargetHelper.AddListen(this);
    }