public void BeginMatch(int gameID, int gameMode) { CMMatchRequest msg = new CMMatchRequest(); msg.GameID = gameID; msg.GameMode = gameMode; msg.GroupID = -1; SendMessage <CMMatchRequest, CMMatchReply>(msg , (rep) => { if (rep.Status == 1) { SendEvent(EventDef.MatchBegin); } else if (rep.Status == 0) { MessageBox.Show("匹配失败", "匹配失败,没有可用的战场服务器!", MessageBoxStyle.OK); } else if (rep.Status == -1) { // 重连Or强退 MessageBox.Show("匹配失败", "已经在房间中!", MessageBoxStyle.OK, (result) => { CancelReconnect(gameID, gameMode); }); } }); }
private void OnBeginMatch(CMMatchRequest req) { //TODO: Game Id Game Mode... CMMatchReply rep = new CMMatchReply(); if (battleProxy.GetBestBattleServer() == null) { rep.Status = 0; //failed rep.WaitTime = 0; } else { rep.Status = 1; rep.WaitTime = 3; //TODO: WaitTime data.SetState(UserState.Matching); matchProxy.Add(data.uid, req.GameID, req.GameMode, req.GroupID); } SendMessage(rep); }