Example #1
0
        public void MatchPlayers(MatchPlayersPara para, Action <ResponseEvent> callback)
        {
            if (Room.OnMatch != null)
            {
                Sdk.MatchPlayers(para, eve => {
                    if (eve.Data != null)
                    {
                        var rsp  = (MatchPlayersRsp)eve.Data;
                        eve.Data = rsp;
                    }
                    callback?.Invoke(eve);
                });
                return;
            }

            BroadcastOnce.Push(BroadcastOnce.PlayerComplex, callback);

            void Eve(ResponseEvent e)
            {
                if (e.Code == (int)QAppProtoErrCode.EcOk)
                {
                    return;
                }
                e.Data = null;
                BroadcastOnce.Once(BroadcastOnce.PlayerComplex, e);
            }

            Sdk.MatchPlayers(para, Eve);
        }
Example #2
0
        public void CancelPlayerMatch(CancelPlayerMatchPara para, Action <ResponseEvent> callback)
        {
            void Eve(ResponseEvent e)
            {
                if (e.Code == ErrCode.EcOk)
                {
                    BroadcastOnce.RemoveCallbacksByTag(BroadcastOnce.PlayerComplex);
                    BroadcastOnce.RemoveCallbacksByTag(BroadcastOnce.PlayerSimple);
                }

                callback?.Invoke(e);
            }

            Sdk.CancelMatch(para, Eve);
        }