Beispiel #1
0
    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);
    }
Beispiel #2
0
    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;
        }
    }