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); }
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); }