在线假人中load加载错误问题,修改为CharacterDatabase
This commit is contained in:
parent
2d101ed937
commit
de68aa4dc1
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
// 加载坐标数据
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user