diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 35097034..ada42a6d 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -5540,10 +5540,16 @@ void GameHandler::handlePacket(network::Packet& packet) { case Opcode::SMSG_MOVE_SET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY: case Opcode::SMSG_MOVE_UNSET_CAN_TRANSITION_BETWEEN_SWIM_AND_FLY: case Opcode::SMSG_MOVE_SET_COLLISION_HGT: - case Opcode::SMSG_MOVE_SET_FLIGHT: - case Opcode::SMSG_MOVE_UNSET_FLIGHT: packet.setReadPos(packet.getSize()); break; + case Opcode::SMSG_MOVE_SET_FLIGHT: + handleForceMoveFlagChange(packet, "SET_FLIGHT", Opcode::CMSG_MOVE_FLIGHT_ACK, + static_cast(MovementFlags::FLYING), true); + break; + case Opcode::SMSG_MOVE_UNSET_FLIGHT: + handleForceMoveFlagChange(packet, "UNSET_FLIGHT", Opcode::CMSG_MOVE_FLIGHT_ACK, + static_cast(MovementFlags::FLYING), false); + break; default: // In pre-world states we need full visibility (char create/login handshakes).