diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6d9db9f..968bf44 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1148,10 +1148,11 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data) *data << uint8(facialStyle); // 获取硬核模式状态 - 使用硬核模式字段 - uint8 isHardcore = fields[25].Get(); + uint8 hardcoreModeId = fields[25].Get(); uint8 actualLevel = fields[10].Get(); - // 使用最高位标记硬核模式,这样可以支持最高127级的角色 - uint8 encodedLevel = actualLevel | (isHardcore << 7); + // 如果是硬核模式(ID > 0),使用最高位标记 + bool isHardcore = hardcoreModeId > 0; + uint8 encodedLevel = actualLevel | (isHardcore ? 1 << 7 : 0); *data << uint8(encodedLevel); // level *data << uint32(zone); // zone *data << uint32(fields[12].Get()); // map