Ejemplo n.º 1
0
    public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
    {
        List <int> targetIdList = new List <int>();
        var        targetTeam   = msgData.PopInt32();                       // Get team number from bytestream
        var        msg          = msgData.PopString();                      // Get message from bytestream

        foreach (var user in server.NetUsers)                               // Check for all users with the same team
        {
            if (user.Value.ConnectionID == connectionId)
            {
                continue;                                                   // Skip player that sent the message
            }
            if (user.Value.TeamNumber != targetTeam)
            {
                continue;                                                   // Skip other team
            }
            targetIdList.Add(user.Value.ConnectionID);                      // Contain their ids
        }
        int[] targetIdArray = targetIdList.ToArray();                       // Convert list to array

        // Create a new message stream for team message
        var msgNew = new ByteStream();

        msgNew.Encode
        (
            (byte)NetMessageType.CHAT_TEAM_MESSAGE,
            msg,
            connectionId
        );
        // Send team message to the members of the same team with multicast
        server.MulticastNetMessage(targetIdArray, server.ReliableChannel, msgNew.ToArray());
    }
Ejemplo n.º 2
0
    public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
    {
        var targetId = msgData.PopInt32();

        msgData.Append(connectionId);

        server.SendNetMessage(targetId, server.ReliableChannel, msgData.ToArray());
    }
Ejemplo n.º 3
0
    public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
    {
        msgData.Append(connectionId);
        server.BroadcastNetMessage(server.ReliableChannel, msgData.ToArray(), connectionId);
        Vector3    pos          = msgData.PopVector3();
        GameObject movingPlayer = server.NetUsers[connectionId].Player;

        if (movingPlayer != null)
        {
            movingPlayer.GetComponent <NavMeshAgent>().SetDestination(pos);
        }
    }
Ejemplo n.º 4
0
    public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
    {
        server.NetUsers[connectionId].UserName   = msgData.PopString();
        server.NetUsers[connectionId].TeamNumber = msgData.PopInt32();

        // BC this user's info to other users
        var msg = new ByteStream();

        msg.Encode
        (
            (byte)NetMessageType.USER_INFO,
            connectionId,
            server.NetUsers[connectionId].UserName,
            server.NetUsers[connectionId].TeamNumber,
            server.NetUsers[connectionId].Player.transform.position
        );
        server.BroadcastNetMessage(server.ReliableChannel, msg.ToArray(), connectionId);

        // Send other user's info to this user
        foreach (var user in server.NetUsers)
        {
            if (user.Key == connectionId)
            {
                continue;
            }
            msg = new ByteStream();
            msg.Encode
            (
                (byte)NetMessageType.USER_INFO,
                user.Value.ConnectionID,
                user.Value.UserName,
                user.Value.TeamNumber,
                server.NetUsers[user.Value.ConnectionID].Player.transform.position
            );
            server.SendNetMessage(connectionId, server.ReliableChannel, msg.ToArray());
        }

        Debug.Log($"@Server -> User[{connectionId}, {server.NetUsers[connectionId].UserName}, {server.NetUsers[connectionId].TeamNumber}] registered");
    }
 public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
 {
     msgData.Append(connectionId);
     server.BroadcastNetMessage(server.ReliableChannel, msgData.ToArray(), connectionId);
 }
 public override void Server_ReceiveMessage(int connectionId, ByteStream data, LLServer server)
 {
     //Never gets called
 }
 public override void Server_ReceiveMessage(int connectionId, ByteStream msgData, LLServer server)
 {
     // Not required
 }