Example #1
0
        public void Login(string userID, int clientID)
        {
            bool     loggedIn;
            AckLogin ack = new AckLogin
            {
                UserID  = userID,
                Success = false,
            };

            if (_loggedIn.TryGetValue(userID, out loggedIn))
            {
                if (loggedIn)
                {
                    Debug.Log(string.Format("User attempted to login as {0} but {0} is already logged in", userID));
                    Socket.Instance.SendPacket(ack, Packets.AckLogin, clientID);
                    return;
                }
            }
            Player player     = World.Instance.GetPlayer(userID);
            bool   firstLogin = false;

            if (player == null)
            {
                player     = World.Instance.AddPlayer(userID);
                firstLogin = true;
            }
            player.Spawn();
            _users[userID]           = clientID;
            _userClientIDs[clientID] = userID;
            _loggedIn[userID]        = true;
            Debug.Log(string.Format("Event: Log In, UserID: {0}, ClientID: {1}", userID, clientID));
            ack.Success    = true;
            ack.FirstLogin = firstLogin;
            Socket.Instance.SendPacket(ack, Packets.AckLogin, clientID);
        }
Example #2
0
        internal static void SendLogin(AsyncUserToken asyncUserToken, string nickname, uint userid)
        {
            AckLogin nLogin = new AckLogin();

            nLogin.nickname = nickname;
            nLogin.userid   = userid;
            using (MemoryStream stream = new MemoryStream())
            {
                Serializer.Serialize <AckLogin>(stream, nLogin);
                Send(asyncUserToken, Protocol.AckLogin, stream.ToArray());
            }
        }
Example #3
0
    public void Receive(byte[] bytes)
    {
        using (MemoryStream stream = new MemoryStream(bytes))
        {
            GameMessage message  = Serializer.Deserialize <GameMessage>(stream);
            Protocol    protocol = (Protocol)message.type[0];
            switch (protocol)
            {
            case Protocol.AckLogin:
                using (MemoryStream stream2 = new MemoryStream(message.data))
                {
                    AckLogin login = Serializer.Deserialize <AckLogin>(stream2);
                    Debug.Log("userid = " + login.userid);
                    Debug.Log("nickname = " + login.nickname);
                    NetData.Instance.mUserData.Userid   = login.userid;
                    NetData.Instance.mUserData.Nickname = login.nickname;
                    _ViewManager.ClearView();
                    _ViewManager.LoadView("prefab/ui/matchview_prefab");
                    break;
                }

            case Protocol.NtfMatch:
                using (MemoryStream stream2 = new MemoryStream(message.data))
                {
                    NtfMatch match = Serializer.Deserialize <NtfMatch>(stream2);
                    Debug.Log("match.playerinfoList.Count = " + match.playerinfoList.Count);
                    NetData.Instance.mFightData.PlayerInfoList = match.playerinfoList;
                    NetData.Instance.mFightData.RoomId         = match.roomid;
                    _TcpSendManager.SendSelectHero(1);
                    break;
                }

            case Protocol.NtfSelectHeroFinish:
                using (MemoryStream stream2 = new MemoryStream(message.data))
                {
                    NtfSelectHeroFinish selectHeroFinish = Serializer.Deserialize <NtfSelectHeroFinish>(stream2);
                    Debug.Log("selectHeroFinish.select_herolist.Count = " + selectHeroFinish.select_herolist.Count);
                    NetData.Instance.mFightData.PlayerHeroInfoList = selectHeroFinish.select_herolist;
                    LoadingManager.LoadSceneAsync(SceneConfig.Fight);
                    break;
                }
            }
            if (_UnityTcpSocket.ReceiveAction != null)
            {
                _UnityTcpSocket.ReceiveAction(protocol);
            }
        }
    }
Example #4
0
 private static void HandleAckLogin(AckLogin ack)
 {
     if (ack == null)
     {
         throw new WrongPacketTypeException();
     }
     if (!ack.Success)
     {
         Debug.Log(string.Format("Unsuccessful login for UserID {0}", ack.UserID));
         UIManager.Instance.SetWarningText(string.Format("User {0} already logged in", ack.UserID));
         return;
     }
     ConnectionManager.Instance.LoggedIn(ack.UserID);
     if (ack.FirstLogin)
     {
         UIManager.Instance.OpenCustomize();
         UIManager.Instance.OpenHowToPlay();
     }
     UIManager.Instance.SetWarningText("", -1);
 }
Example #5
0
        public static void ReadMessage(byte[] message)
        {
            Envelope envelope = SerializationHandler.Deserialize <Envelope>(message);

            if (envelope == null)
            {
                throw new NotAnEnvelopeException();
            }
            switch (envelope.PacketType)
            {
            case Packets.None:
                Debug.Log("None");
                break;

            case Packets.String:
                string stringVal = SerializationHandler.Deserialize <string>(envelope.Packet);
                Debug.Log(stringVal);
                break;

            case Packets.AckLogin:
                AckLogin ackLogin = SerializationHandler.Deserialize <AckLogin>(envelope.Packet);
                HandleAckLogin(ackLogin);
                break;

            case Packets.AckJoinTeam:
                AckJoinTeam ackJoinTeam = SerializationHandler.Deserialize <AckJoinTeam>(envelope.Packet);
                HandleAckJoinTeam(ackJoinTeam);
                break;

            case Packets.DestroyObject:
                DestroyObject destroyObject = SerializationHandler.Deserialize <DestroyObject>(envelope.Packet);
                HandleDestroyObject(destroyObject);
                break;

            case Packets.PlayerSync:
                PlayerSync playerSync = SerializationHandler.Deserialize <PlayerSync>(envelope.Packet);
                HandlePlayerSync(playerSync);
                break;

            case Packets.SnowballSync:
                SnowballSync snowballSync = SerializationHandler.Deserialize <SnowballSync>(envelope.Packet);
                HandleSnowballSync(snowballSync);
                break;

            case Packets.SnowPileSync:
                SnowPileSync snowPileSync = SerializationHandler.Deserialize <SnowPileSync>(envelope.Packet);
                HandleSnowPileSync(snowPileSync);
                break;

            case Packets.LeaderboardData:
                LeaderboardDataEntry leaderboardDataResponse = SerializationHandler.Deserialize <LeaderboardDataEntry>(envelope.Packet);
                HandleLeaderboardDataEntry(leaderboardDataResponse);
                break;

            case Packets.EndLeaderboardResponse:
                HandleEndLeaderboardResponse();
                break;

            case Packets.AckConnection:
                HandleAckConnection();
                break;

            default:
                break;
            }
        }