private float finishTime; //结束倒计时 public void CreatBattle(int _battleID, List <MatchUserInfo> _battleUser) { int randSeed = UnityEngine.Random.Range(0, 100); ThreadPool.QueueUserWorkItem((obj) => { battleID = _battleID; dic_battleUserUid = new Dictionary <int, int> (); dic_udp = new Dictionary <int, ClientUdp> (); dic_battleReady = new Dictionary <int, bool>(); int userBattleID = 0; TcpEnterBattle _mes = new TcpEnterBattle(); _mes.randSeed = randSeed; for (int i = 0; i < _battleUser.Count; i++) { int _userUid = _battleUser [i].uid; userBattleID++; dic_battleUserUid [_userUid] = userBattleID; string _ip = UserManage.Instance.GetUserInfo(_userUid).socketIp; var _upd = new ClientUdp(); _upd.StartClientUdp(_ip, _userUid); _upd.delegate_analyze_message = AnalyzeMessage; dic_udp [userBattleID] = _upd; dic_battleReady[userBattleID] = false; BattleUserInfo _bUser = new BattleUserInfo(); _bUser.uid = _userUid; _bUser.battleID = userBattleID; _bUser.roleID = _battleUser [i].roleID; _mes.battleUserInfo.Add(_bUser); } for (int i = 0; i < _battleUser.Count; i++) { int _userUid = _battleUser [i].uid; string _ip = UserManage.Instance.GetUserInfo(_userUid).socketIp; ServerTcp.Instance.SendMessage(_ip, CSData.GetSendMessage <TcpEnterBattle>(_mes, SCID.TCP_ENTER_BATTLE)); } }, null); }
public void AnalyzeMessage(SCID messageId, byte[] bodyData) { switch (messageId) { case SCID.TCP_RESPONSE_LOGIN: { TcpResponseLogin pb_ReceiveMes = CSData.DeserializeData <TcpResponseLogin>(bodyData); NetGlobal.Instance().AddAction(() => { mes_login_result(pb_ReceiveMes); }); } break; case SCID.TCP_RESPONSE_REQUEST_MATCH: { TcpResponseRequestMatch pb_ReceiveMes = CSData.DeserializeData <TcpResponseRequestMatch>(bodyData); NetGlobal.Instance().AddAction(() => { mes_request_match_result(pb_ReceiveMes); }); } break; case SCID.TCP_RESPONSE_CANCEL_MATCH: { TcpResponseCancelMatch pb_ReceiveMes = CSData.DeserializeData <TcpResponseCancelMatch>(bodyData); NetGlobal.Instance().AddAction(() => { mes_cancel_match_result(pb_ReceiveMes); }); } break; case SCID.TCP_ENTER_BATTLE: { TcpEnterBattle pb_ReceiveMes = CSData.DeserializeData <TcpEnterBattle>(bodyData); NetGlobal.Instance().AddAction(() => { mes_enter_battle(pb_ReceiveMes); }); } break; default: break; } }