private void OnExitRoomRequest(ProtobufPacket <ExitRoomRequestPacket> packet) { ExitRoomRequestPacket request = packet.ProtobufMessage; ExitRoomAnswerPacket send = new ExitRoomAnswerPacket(); // Packet Data Set MNetworkRoom targetRoom = NetworkLobby.FindRoom(request.RoomName); MNetworkPlayer targetPlayer = NetworkLobby.FindPlayer(request.UserName); bool result = NetworkLobby.ExitFromRoom(targetRoom, targetPlayer); send.Success = result; Debug.Log($"S:[{packet.Serial}] Room exit request. Name: [{request.UserName}] Room: [{request.RoomName}] Result: [{send.Success}]"); if (targetRoom.PlayerCount == 0) { if (NetworkLobby.DeleteRoom(request.RoomName) == true) { Debug.Log($"Room deleted. Room: [{request.RoomName}]"); } } else { ChattingAnswerPacket exitMessage = new ChattingAnswerPacket(); exitMessage.Text = $"{targetPlayer.UserName} 님이 방에서 나갔습니다."; SendPacket(new ProtobufPacket <ChattingAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ChattingAnswer, exitMessage), targetRoom.SerialList); } SendPacket(new ProtobufPacket <ExitRoomAnswerPacket>(packet.Serial, PacketEnum.ProcessType.Data, (int)MessageType.ExitRoomAnswer, send)); }
public void OnExitRoomAnswer(ProtobufPacket <ExitRoomAnswerPacket> packet) { ExitRoomAnswerPacket answer = packet.ProtobufMessage; OnExitRoom?.Invoke(this, answer.Success); }