// Lets a player know about their resources. public void SendResourceUpdate(IClient player) { if (player.NetConn.Status != NetConnectionStatus.Connected) return; // ore, cash, weight, max ore, max weight, team ore, red cash, blue cash, all uint NetBuffer msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.ResourceUpdate); msgBuffer.Write((uint)player.Ore); msgBuffer.Write((uint)player.Cash); msgBuffer.Write((uint)player.Weight); msgBuffer.Write((uint)player.OreMax); msgBuffer.Write((uint)player.WeightMax); msgBuffer.Write((uint)(player.Team == PlayerTeam.Red ? teamOreRed : teamOreBlue)); msgBuffer.Write((uint)teamCashRed); msgBuffer.Write((uint)teamCashBlue); player.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder1); }
public void SendPlayerJoined(IClient player) { NetBuffer msgBuffer; // Let this player know about other players. foreach (IClient p in playerList.Values) { msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.PlayerJoined); msgBuffer.Write((uint)p.ID); msgBuffer.Write(p.Handle); msgBuffer.Write(p == player); msgBuffer.Write(p.Alive); //if (player.NetConn.Status == NetConnectionStatus.Connected) player.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder2); msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.PlayerSetTeam); msgBuffer.Write((uint)p.ID); msgBuffer.Write((byte)p.Team); //if (player.NetConn.Status == NetConnectionStatus.Connected) player.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder2); } // Let this player know about all placed beacons. foreach (KeyValuePair<Vector3, Beacon> bPair in beaconList) { Vector3 position = bPair.Key; position.Y += 1; // beacon is shown a block below its actually position to make altitude show up right msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.SetBeacon); msgBuffer.Write(position); msgBuffer.Write(bPair.Value.ID); msgBuffer.Write((byte)bPair.Value.Team); //if (player.NetConn.Status == NetConnectionStatus.Connected) player.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder2); } // Let other players know about this player. msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.PlayerJoined); msgBuffer.Write((uint)player.ID); msgBuffer.Write(player.Handle); msgBuffer.Write(false); msgBuffer.Write(player.Alive); foreach (IClient iplayer in playerList.Values) //if (netConn.Status == NetConnectionStatus.Connected) iplayer.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder2); // Send this out just incase someone is joining at the last minute. if (winningTeam != PlayerTeam.None) BroadcastGameOver(); // Send out a chat message. msgBuffer = netServer.CreateBuffer(); msgBuffer.Write((byte)InfiniminerMessage.ChatMessage); msgBuffer.Write((byte)ChatMessageType.SayAll); msgBuffer.Write(player.Handle + " HAS JOINED THE ADVENTURE!"); foreach (IClient iplayer in playerList.Values) //if (netConn.Status == NetConnectionStatus.Connected) iplayer.AddQueMsg(msgBuffer, NetChannel.ReliableInOrder3); }