예제 #1
0
    private void InviteFightAgain(object data)
    {
        FightAgainData againData = data as FightAgainData;
        var            req       = new ZonePvp1v1InviteReq();

        req.friend_gid  = againData.player_id;
        req.friend_zone = againData.zoneid;
        req.invite      = true;
        req.plat_friend = false;
        req.fight_again = true;
        req.pvp_type    = againData.pvp_type;

        NetworkManager.Instance.Send <ZonePvp1v1InviteReq>((uint)ZoneCmd.ZONE_PVP_1V1_INVITE, req, (object fullInfo) =>
        {
            ZonePvp1v1InviteResp resp = fullInfo as ZonePvp1v1InviteResp;
            if (resp.ret_info.ret_code == 0)
            {
                isStarted = true;
            }
            else
            {
                ErrorCodeCenter.DefaultProcError(resp.ret_info);
                _CloseWindow(null);
            }
        }, false, timeoutCallback => {
            UIAPI.ShowMsgTip("邀请再来一战超时");
            _CloseWindow(null);
        });
    }
예제 #2
0
    //先进界面再发请求,以防止未打开界面时,就已经匹配了。
    private void InviteFriend(object data)
    {
        BriefRoleInfo friend = data as BriefRoleInfo;
        var           req    = new ZonePvp1v1InviteReq();

        req.friend_gid  = friend.player_id;
        req.friend_zone = friend.zoneid;
        req.invite      = true;
        var friendModel = KHPluginManager.Instance.GetModel(PVPRealTimeFriendPlugin.PluginName) as PVPRealTimeFriendModel;

        if (actData != null)
        {
            req.pvp_type = actData.pvp_type;
        }
        else
        {
            req.pvp_type = friendModel.banMode ? 1u : 0u;
        }


        if (friendModel.platformFriendList.Contains(friend))
        {
            req.plat_friend = true;
        }
        else
        {
            req.plat_friend = false;
        }
        NetworkManager.Instance.Send <ZonePvp1v1InviteReq>((uint)ZoneCmd.ZONE_PVP_1V1_INVITE, req, (object fullInfo) =>
        {
            ZonePvp1v1InviteResp resp = fullInfo as ZonePvp1v1InviteResp;
            if (resp.ret_info.ret_code == 0)
            {
                isStarted = true;
                if (actData == null)
                {
                    NGUITools.SetActive(Button, true);
                }
            }
            else
            {
                ErrorCodeCenter.DefaultProcError(resp.ret_info);

                if (actData != null && actData.remain_times > 0)
                {
                    ActCenterPlugin plugin = KH.KHPluginManager.Instance.GetPluginByName(KH.Plugins.ActCenterPlugin.NAME) as KH.Plugins.ActCenterPlugin;
                    plugin.InvokeActFun((uint)actData.act_id, "ReqCmd7");
                }
                else
                {
                    _CloseWindow(null);
                }
            }
            if (resp.refresh)
            {
                var model = plugin.Model as PVPRealTimeMainUIModel;
                model.TriggerBinding("RefreshFriendList");
            }
        }, false, timeoutCallback => {
            UIAPI.ShowMsgTip("邀请好友比试超时");

            if (actData != null && actData.remain_times > 0)
            {
                ActCenterPlugin plugin = KH.KHPluginManager.Instance.GetPluginByName(KH.Plugins.ActCenterPlugin.NAME) as KH.Plugins.ActCenterPlugin;
                plugin.InvokeActFun((uint)actData.act_id, "ReqCmd7");
            }
            else
            {
                _CloseWindow(null);
            }
        });
    }