mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Fix quest required item display and add NPC spawn diagnostics
- Fix SMSG_QUESTGIVER_REQUEST_ITEMS: read emoteDelay(u32)+emoteId(u32)+autoFinish(u8) instead of 5 uint32s — the 11-byte over-read corrupted requiredMoney, itemCount, and all item data (itemId/count/displayInfoId) - Fix garbled CSV fallback in asset_manager: return nullptr instead of silently returning garbled DBC data when binary fallback is unavailable - Add NPC spawn diagnostics: log when UNIT blocks have displayId=0 (wrong field index) and when spawn callback fires with displayId + position - Improve getModelPathForDisplayId failure logging: distinguish displayDataMap_ miss vs modelIdToPath_ miss, and include map sizes for context
This commit is contained in:
parent
30efc59fff
commit
eebc0007a6
4 changed files with 26 additions and 26 deletions
|
|
@ -3436,6 +3436,10 @@ void GameHandler::handleUpdateObject(network::Packet& packet) {
|
|||
unit->setHostile(isHostileFaction(unit->getFactionTemplate()));
|
||||
}
|
||||
// Trigger creature spawn callback for units/players with displayId
|
||||
if (block.objectType == ObjectType::UNIT && unit->getDisplayId() == 0) {
|
||||
LOG_INFO("[Spawn] UNIT guid=0x", std::hex, block.guid, std::dec,
|
||||
" has displayId=0 — no spawn (entry=", unit->getEntry(), ")");
|
||||
}
|
||||
if ((block.objectType == ObjectType::UNIT || block.objectType == ObjectType::PLAYER) && unit->getDisplayId() != 0) {
|
||||
if (block.objectType == ObjectType::PLAYER && block.guid == playerGuid) {
|
||||
// Skip local player — spawned separately via spawnPlayerCharacter()
|
||||
|
|
@ -3451,6 +3455,9 @@ void GameHandler::handleUpdateObject(network::Packet& packet) {
|
|||
}
|
||||
}
|
||||
} else if (creatureSpawnCallback_) {
|
||||
LOG_INFO("[Spawn] UNIT guid=0x", std::hex, block.guid, std::dec,
|
||||
" displayId=", unit->getDisplayId(), " at (",
|
||||
unit->getX(), ",", unit->getY(), ",", unit->getZ(), ")");
|
||||
creatureSpawnCallback_(block.guid, unit->getDisplayId(),
|
||||
unit->getX(), unit->getY(), unit->getZ(), unit->getOrientation());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue