示例#1
0
    public void ShowForFightAgain(FightAgainData againData)
    {
        // 构造friend, 取消邀请的时候要用
        friend           = new BriefRoleInfo();
        friend.player_id = againData.player_id;
        friend.zoneid    = againData.zoneid;
        // 构造matchEnemyData
        data = new MatchEnemyData();
        data.isFightAgain  = true;
        data.lastSeconds   = 0;
        data.expectSeconds = -1;
        data.isFriend      = true; // 这里要设置为true, 如果为false, 则取消的时候会发送取消匹配的协议
        data.friendName    = againData.name;
        data.matchType     = PvpMatchType.Entertainment;
        NetworkManager.Instance.AddMessageCallback((int)ZoneCmd.ZONE_PVP_1V1_ACCEPT_NTF, OnFightAgainAccept);
        InviteFightAgain(againData);

        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, FightAgainBanMatchSuccNtf);
        NGUITools.SetActive(EstimatedContainer.gameObject, false);
        DescLabel.text   = "正在邀请 " + data.friendName + " 再来一战";
        CancelLabel.text = "取消邀请";
        NGUITools.SetActive(Button, false);
        BindingTargetHelper.AddListen(this);
    }
示例#2
0
    private void OnDisable()
    {
        if (data.isFriend)
        {
            NetworkManager.Instance.RemoveMessageCallback((int)ZoneCmd.ZONE_PVP_1V1_ACCEPT_NTF, OnFriendAccept);
        }
        data = null;
        NetworkManager.Instance.RemoveMessageCallback((int)ZoneCmd.ZONE_PVP_1V1_ENTER_GAME_NTF, MatchSuccNtf);
        NetworkManager.Instance.RemoveMessageCallback((int)ZoneCmdLua.ZONE_LUA_JDC_PVP_BAN_PICK_ROOM_MATCH_NTF, BanMatchSuccNtf);
        NetworkManager.Instance.RemoveMessageCallback((int)ZoneCmdLua.ZONE_LUA_JDC_PVP_BAN_PICK_ROOM_MATCH_NTF, FightAgainBanMatchSuccNtf);

        BindingTargetHelper.RemoveListen(this);
        isStarted = false;
    }
示例#3
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);
    }