Example #1
0
		public bool existPlayerByID (List<Player> L, byte query, out Player player)
		{
			Predicate<Player> pr = p => p.id == query;

			int i = L.FindIndex(pr);
			if (i == -1) {
				player = null;
				return false;
			}
			player = L.Find(pr);
			return true;
		}
Example #2
0
		public bool existPlayerByName (List<Player> L, string query, out Player player)
		{
			Predicate<Player> pr = p => p.name == query;

			int i = L.FindIndex(pr);
			if (i == -1) {
				player = null;
				return false;
			}
			player = L.Find(pr);
			return true;
		}
Example #3
0
		public bool existPlayerByID (List<Player> L, byte query)
		{
			Player p = new Player();

			return existPlayerByID(L, query, out p);
		}
Example #4
0
		public ServerPlayer(Player p, NetworkConnection c) : base(p) { connection = c; }
Example #5
0
		public bool existPlayerByName (List<Player> L, string query)
		{
			Player p = new Player();

			return existPlayerByName(L, query, out p);
		}
Example #6
0
		public Player(Player p) { id = p.id; name = p.name; }
Example #7
0
		string printPlayerName(Player p)
		{
			if(networkingInfo.isServer) return p.name + "(" + p.id + ")";
			return p.name;
		}
Example #8
0
		// ===========================================================================
		// ========================= DOD CALLBACK FUNCTIONS =========================
		// ===========================================================================

		void cbClientHandler (NetworkMessage netMsg) 
		{
			switch(netMsg.msgType)
			{
			case (short)Message.ID.UserLogin:
				{
					Message.UserLogin msg = netMsg.ReadMessage<Message.UserLogin>();
					myID = msg.playerID;
					ClientSendMessage(Message.ID.UserLogin,
						new Message.UserLogin(myID, networkingInfo.playerName),
						Channels.reliable);
				}
				break;

			case (short)Message.ID.KickReason:
				{
					Message.KickReason msg = netMsg.ReadMessage<Message.KickReason>();
					common.printConsole(tag, "Kicked from server. Reason: " + msg.reason, true);
				}
				break;

			case (short)Message.ID.ConsoleBroadcast:
				{
					Message.ConsoleBroadcast msg = netMsg.ReadMessage<Message.ConsoleBroadcast>();
					Player p;
					if ( common.existPlayerByID(connectedPlayers, msg.playerID, out p) )
					{
						common.printConsole(NetworkingCommon.CHATTAG, p.name +  ": " + msg.broadcast, true);
					}
					else if ( msg.playerID == NetworkingCommon.SERVERID )
					{
						common.printConsole(NetworkingCommon.CHATTAG, "SERVER" +  " ~ " + msg.broadcast, true);
					}
				}
				break;

			case (short)Message.ID.NameChange:
				{
					Message.NameChange msg = netMsg.ReadMessage<Message.NameChange>();
					Player p;
					if ( common.existPlayerByID(connectedPlayers, msg.playerID, out p) )
					{
						if( msg.playerID == myID ) // Its me, check if it failed or not
						{
							if ( msg.failed ) // Was not successful
							{
								common.printConsole(NetworkingCommon.NOTAG, "Name change failed. " + msg.newName + " is already occupied.", true);
							}
							else
							{
								common.printConsole(NetworkingCommon.NOTAG, "Your new name is " + msg.newName, true);
								p.name = msg.newName;
							}
						}
						else // Someone else changed their name
						{
							if ( !msg.failed )
							{
								common.printConsole(NetworkingCommon.NOTAG, printPlayerName(p) + " is now known as " + msg.newName, true);
								p.name = msg.newName;
							}
						}
					}
				}
				break;

			case (short)Message.ID.PlayerCon:
				{
					Message.PlayerCon msg = netMsg.ReadMessage<Message.PlayerCon>();
					Player p;
					connectedPlayers.Add(p = new Player(msg.playerID, msg.name));
					if(msg.playerID != myID)
					{
						common.printConsole(NetworkingCommon.NOTAG, "Player connected: " + printPlayerName(p), true);
					}
					else
					{
						common.printConsole(NetworkingCommon.NOTAG, "Connected to " + printServerAdress() + " with ID: " + myID, true);
					}
				}
				break;

			case (short)Message.ID.PlayerDisc:
				{
					Message.PlayerDisc msg = netMsg.ReadMessage<Message.PlayerDisc>();
					Player p;
					if ( common.existPlayerByID(connectedPlayers, msg.playerID, out p) )
					{
						common.printConsole(NetworkingCommon.NOTAG, printPlayerName(p) + " disconnected. Reason: " + msg.reason, true);
						connectedPlayers.Remove(p);
					}
				}
				break;

			case (short)Message.ID.PlayerList:
				{
					Message.PlayerList msg = netMsg.ReadMessage<Message.PlayerList>();
					connectedPlayers = msg.GetArrayAsList();
				}
				break;

			case (short)Message.ID.HeartBeat:
				{
					// Do nothing, since this is not interresting for us
				}
				break;

			default:
				common.printConsole(tag, "Unknown message id received: " + netMsg.msgType, true);
				break;
			}
		}
Example #9
0
			public PlayerCon(Player p) { playerID = p.id; name = p.name; }
Example #10
0
		string printPlayerName(Player p)
		{
			return p.name + "(" + p.id + ")";
		}
Example #11
0
		List<Player> getAllPlayers(List<ServerPlayer> L)
		{
			List<Player> newList = new List<Player>();
			foreach(ServerPlayer sp in connectedPlayers)
			{
				Player p = new Player (sp.id, sp.name);
				newList.Add(p);
			}
			return newList;
		}