Player.cpp中修改BuildEnumData函数,让硬核模式接受多个难度

This commit is contained in:
尚美 2025-10-03 15:02:10 +08:00
parent 8d4a0a79d1
commit d766592c5b

View File

@ -1148,10 +1148,11 @@ bool Player::BuildEnumData(PreparedQueryResult result, WorldPacket* data)
*data << uint8(facialStyle);
// 获取硬核模式状态 - 使用硬核模式字段
uint8 isHardcore = fields[25].Get<uint8>();
uint8 hardcoreModeId = fields[25].Get<uint8>();
uint8 actualLevel = fields[10].Get<uint8>();
// 使用最高位标记硬核模式,这样可以支持最高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<uint16>()); // map