在线假人中load加载错误问题,修改为CharacterDatabase

This commit is contained in:
尚美 2025-07-16 17:15:05 +08:00
parent 2d101ed937
commit de68aa4dc1

View File

@ -31,21 +31,19 @@ void Faker::Load()
[](Field* fields) { return fields[0].Get<uint32>(); }
);
// 加载角色GUID到map
// 加载角色GUID到map - 改用 CharacterDatabase
for (uint32 accountId : accountIDs) {
// 使用fmt库安全格式化查询字符串
std::string query = fmt::format("SELECT guid FROM characters WHERE account = {}", accountId);
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID);
stmt->SetData(0, accountId);
std::map<uint32, bool> tempMap;
sDataLoader->LoadDataToMap(
tempMap,
query.c_str(), // 转换为C风格字符串
nullptr, // 禁用日志
[](Field* fields) {
return std::make_pair(fields[0].Get<uint32>(), false);
}
);
FakerMap.insert(tempMap.begin(), tempMap.end());
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (result) {
do {
Field* fields = result->Fetch();
uint32 guid = fields[0].Get<uint32>();
FakerMap[guid] = false;
} while (result->NextRow());
}
}
// 加载坐标数据