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()); }
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()); }
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); } }
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 }