private void UseSuitcaseOnClient(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); int networkPlayerId = int.Parse(defaultMessage.inputs[0]); OnSuitcaseOpened(networkPlayerId); }
private void UseHoleOnClient(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); int networkPlayerId = int.Parse(defaultMessage.inputs[0]); OnUseHole(networkPlayerId, defaultMessage.inputs[1]); }
private void UseItemOnClient(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); int networkPlayerId = int.Parse(defaultMessage.inputs[0]); OnPlayInteraction(networkPlayerId, defaultMessage.inputs[1], defaultMessage.inputs[2]); }
private void TryToSayHoleOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __message = defaultMessage.inputs[1]; if (__playerData.currentRoom.roomID != 0 && __playerData.currentRoom.roomID != 4) { message.conn.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, "There is no hole in the room.", MessageColor.RED)); } else { int __targetRoomId = 0; if (__playerData.currentRoom.roomID == 0) { __targetRoomId = 4; } foreach (PlayerData playerInRoom in roomsManager.FindRoomById(__targetRoomId).playersInRoom) { if (playerInRoom.id != __playerData.id) { if (connections.ContainsKey(playerInRoom.id)) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, __playerData.playerName + " says from the hole: " + __message, MessageColor.WHITE)); } } } } }
private void TryToWhisperOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __target = defaultMessage.inputs[1]; string __message = defaultMessage.inputs[2]; bool __messageSend = false; foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom) { if (connections.ContainsKey(playerInRoom.id) && playerInRoom.playerName == __target) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, __playerData.playerName + " whispers: " + __message, MessageColor.GREEN)); __messageSend = true; message.conn.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, "You whispers to " + __target + ": " + __message, MessageColor.GREEN)); __messageSend = true; } } if (!__messageSend) { message.conn.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, "There is nobody in the room with this name.", MessageColor.RED)); } }
private void TryToUseHoleOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); NetworkConnection clientConnection = message.conn; PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __sourceName = defaultMessage.inputs[1]; //Player don't have the item if (!__playerData.HasItem(__sourceName)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, playersManager.GetMessageWhenPlayerDontHaveItem(), MessageColor.RED)); } //There is no target item on the room else if (__playerData.currentRoom.roomID != 0 && __playerData.currentRoom.roomID != 4) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, "Server says: There is no hole in the room", MessageColor.RED)); } //The items exist else { Item __source = __playerData.GetItem(__sourceName); //Source can't be used if (!__source.isTransferable) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenItemCantBeTransfered(), MessageColor.RED)); } else { NetworkServer.SendToAll(MessageConstants.USE_HOLE, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __sourceName })); //Only send messages to player in same room foreach (PlayerData playerInRoom in playersManager.players) { if (playerInRoom.currentRoom.roomID == 0 || playerInRoom.currentRoom.roomID == 4) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenSomeoneSendItem(playerInRoom.playerName, __sourceName), MessageColor.LIGHT_BLUE)); } } } } }
private void TryToUseSuitcaseOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); NetworkConnection clientConnection = message.conn; PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __password = defaultMessage.inputs[1]; long __result = 0; //Player is not on the Office if (__playerData.currentRoom != roomsManager.rooms[1]) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenItemNotFound(), MessageColor.RED)); } //Valid password else if (long.TryParse(__password, out __result)) { //Right password if (__result == 895402763152) { NetworkServer.SendToAll(MessageConstants.USE_SUITCASE, new NetworkDefaultMessage(new[] { __playerData.id.ToString() })); //Only send messages to player in same room foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom) { if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenSomeoneUsedSuitcase(playerInRoom.playerName), MessageColor.LIGHT_BLUE)); } } } //Wrong password else { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenWrondPassword(), MessageColor.RED)); } } //Invalid password else { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenInvalidPassword(), MessageColor.RED)); } }
private void MoveOnClient(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); int networkPlayerId = int.Parse(defaultMessage.inputs[0]); PlayerData playerData = playersManager.FindPlayerById(networkPlayerId); CardinalPoint cardinalPoint = (CardinalPoint)int.Parse(defaultMessage.inputs[1]); roomsManager.MoveToRoom(playerData, cardinalPoint, playersManager.activePlayer.id == networkPlayerId); }
private void TryToGetItemOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __itemName = defaultMessage.inputs[1]; //If room have item if (__playerData.currentRoom.HasItem(__itemName)) { Item __item = __playerData.currentRoom.GetItem(__itemName); if (__item.isPickable) { NetworkServer.SendToAll(MessageConstants.GET, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __itemName })); //Only send messages to player in same room foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom) { //<<<<<<< HEAD // if (playerInRoom.id == 0) continue; // NetworkServer.SendToClient(playerInRoom.id, // MessageConstants.MESSAGE, // new NetworkConsoleMessage(__playerData.id, // itemsManager.GetMessageWhenSomeonePickedItem(__playerData.playerName, // __item.GetFullName()), // MessageColor.LIGHT_BLUE)); //======= if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenSomeonePickedItem(__playerData.playerName, __item.GetFullName()), MessageColor.LIGHT_BLUE)); } //>>>>>>> origin/Gabriel } } //Item not pickable else { NetworkServer.SendToClient(__playerData.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenItemCantBePicked(), MessageColor.RED)); } } //Room don't have item else { NetworkServer.SendToClient(__playerData.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, roomsManager.GetMessageWhenRoomDontHaveItem(), MessageColor.RED)); } }
private void TryToMoveOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); PlayerData playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); CardinalPoint cardinalPoint = (CardinalPoint)int.Parse(defaultMessage.inputs[1]); NetworkConnection clientConnection = message.conn; if (roomsManager.CheckDirectionNotExists(playerData, cardinalPoint)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenDirectionNotExists(), MessageColor.RED)); } else if (roomsManager.CheckIfRoomIsLocked(playerData, cardinalPoint)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenLocked(playerData, cardinalPoint), MessageColor.RED)); } else { NetworkServer.SendToAll(MessageConstants.MOVE, new NetworkDefaultMessage(new[] { playerData.id.ToString(), ((int)cardinalPoint).ToString() })); // only send messages to player in same room foreach (PlayerData playerInRoom in playerData.currentRoom.playersInRoom) { //<<<<<<< HEAD // if (playerInRoom.id == 0) continue; // NetworkServer.SendToClient(playerInRoom.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedOutSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE)); // } // foreach (PlayerData playerInRoom in roomsManager.FindRoomInDirection(playerData, cardinalPoint).playersInRoom) // { // if (playerInRoom.id == 0) continue; // NetworkServer.SendToClient(playerInRoom.id, MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedInSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE)); //======= if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != playerData.id) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, roomsManager.GetMessageWhenMovedOutSuccessfully(playerData.playerName), MessageColor.LIGHT_BLUE)); } //>>>>>>> origin/Gabriel } // only send messages to player in the target room foreach (PlayerData playerInRoom in playerData.currentRoom. adjacentRooms[(int)cardinalPoint].targetRoom.playersInRoom) { if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != playerData.id) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(playerData.id, "Server says: " + playerData.playerName + " has joined the room.", MessageColor.LIGHT_BLUE)); } } } }
private void DropItemOnClient(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); int networkPlayerId = int.Parse(defaultMessage.inputs[0]); PlayerData __playerData = playersManager.FindPlayerById(networkPlayerId); string __itemName = defaultMessage.inputs[1]; Item __item = itemsManager.GetItem(__itemName); __playerData.currentRoom.items.Add(__item); __playerData.inventory.Remove(__item); if (playersManager.activePlayer.id == networkPlayerId) { UIManager.CreateDefautMessage(DefaultMessageType.DROP_ITEM, new List <string> { __item.GetFullName() }); } }
private void TryToSayOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __message = defaultMessage.inputs[1]; foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom) { if (playerInRoom.id != __playerData.id) { if (connections.ContainsKey(playerInRoom.id)) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, __playerData.playerName + " says: " + __message, MessageColor.WHITE)); } } } }
/////////////////////////////////// // USE_SUITCASE command public void AskServerToUseSuitcase(PlayerData p_playerData, string p_password) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_password }); SendMessageToServer(MessageConstants.USE_SUITCASE, message); }
/////////////////////////////////// // DROP command public void AskServerToDropItem(PlayerData p_playerData, string p_itemName) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_itemName }); SendMessageToServer(MessageConstants.DROP, message); }
/////////////////////////////////// // WHISPER command public void AskServerToWhisper(PlayerData p_playerData, string p_target, string p_message) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_target, p_message }); SendMessageToServer(MessageConstants.WHISPER, message); }
/////////////////////////////////// // MOVE command public void AskServerMoveToRoom(PlayerData playerData, CardinalPoint cardinalPoint) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { playerData.id.ToString(), ((int)cardinalPoint).ToString() }); SendMessageToServer(MessageConstants.MOVE, message); }
/////////////////////////////////// // SAY_HOLE command public void AskServerToSayHole(PlayerData p_playerData, string p_message) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_message }); SendMessageToServer(MessageConstants.SAY_HOLE, message); }
/////////////////////////////////// // USE command public void AskServerToUseItem(PlayerData p_playerData, string p_source, string p_target) { NetworkDefaultMessage message = new NetworkDefaultMessage(new[] { p_playerData.id.ToString(), p_source, p_target }); SendMessageToServer(MessageConstants.USE, message); }
private void TryToUseItemOnServer(NetworkMessage message) { NetworkDefaultMessage defaultMessage = message.ReadMessage <NetworkDefaultMessage>(); NetworkConnection clientConnection = message.conn; PlayerData __playerData = playersManager.FindPlayerById(int.Parse(defaultMessage.inputs[0])); string __sourceName = defaultMessage.inputs[1]; string __targetName = defaultMessage.inputs[2]; //Player don't have the item if (!__playerData.HasItem(__sourceName)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, playersManager.GetMessageWhenPlayerDontHaveItem(), MessageColor.RED)); } //There is no target item on the room else if (!__playerData.currentRoom.HasItem(__targetName)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, roomsManager.GetMessageWhenRoomDontHaveTargetItem(), MessageColor.RED)); } //The items exist else { Item __source = __playerData.GetItem(__sourceName); Item __target = __playerData.currentRoom.GetItem(__targetName); //Source can't be used if (!__source.isUsable) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenItemCantBeUsed(), MessageColor.RED)); } //No interaction between items else if (!__target.HasInteractionWithItem(__source)) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenNoInteraction(), MessageColor.RED)); } //Interaction not active else if (!__target.GetInteraction(__source).active) { clientConnection.Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenInteractionNotActive(), MessageColor.RED)); } else { NetworkServer.SendToAll(MessageConstants.USE, new NetworkDefaultMessage(new[] { __playerData.id.ToString(), __sourceName, __targetName })); //Only send messages to player in same room foreach (PlayerData playerInRoom in __playerData.currentRoom.playersInRoom) { if (connections.ContainsKey(playerInRoom.id) && playerInRoom.id != __playerData.id) { connections[playerInRoom.id].Send(MessageConstants.MESSAGE, new NetworkConsoleMessage(__playerData.id, itemsManager.GetMessageWhenSomeoneUsedItem(playerInRoom.playerName, __sourceName, __targetName), MessageColor.LIGHT_BLUE)); } } } } }