From 38ab1e0aea22d1f95bdb66b77f3d27676cff3bf8 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Fri, 13 Mar 2026 06:16:19 -0700 Subject: [PATCH] fix: show correct duel fled message when loser left the duel area SMSG_DUEL_WINNER type=1 means the loser fled the duel zone rather than being defeated; was previously treated the same as a normal win. Now shows "X has fled from the duel. Y wins!" for the flee case vs the standard "X has defeated Y in a duel!" for a normal outcome. --- src/game/game_handler.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 8ce64482..45e6f107 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -11996,13 +11996,18 @@ void GameHandler::handleDuelComplete(network::Packet& packet) { void GameHandler::handleDuelWinner(network::Packet& packet) { if (packet.getSize() - packet.getReadPos() < 3) return; - /*uint8_t type =*/ packet.readUInt8(); // 0=normal, 1=flee + uint8_t duelType = packet.readUInt8(); // 0=normal win, 1=opponent fled duel area std::string winner = packet.readString(); std::string loser = packet.readString(); - std::string msg = winner + " has defeated " + loser + " in a duel!"; + std::string msg; + if (duelType == 1) { + msg = loser + " has fled from the duel. " + winner + " wins!"; + } else { + msg = winner + " has defeated " + loser + " in a duel!"; + } addSystemChatMessage(msg); - LOG_INFO("SMSG_DUEL_WINNER: winner=", winner, " loser=", loser); + LOG_INFO("SMSG_DUEL_WINNER: winner=", winner, " loser=", loser, " type=", static_cast(duelType)); } void GameHandler::toggleAfk(const std::string& message) {