-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transmogrification compatibility: worldserver.exe crash while loading bot data entries #101
Comments
Can't confirm using trickerer/TrinityCore-3.3.5-with-NPCBots@293c013 (TrinityCore/TrinityCore@3f36dc7) a534d17e2624 is not a TrinityCore revision The only way to find a source of that crash is to produce a debug crash log. |
you should use debug with crash log. |
Hi all, @qyh214 |
Hi all, I started the worldserver.exe in Visual Studio debug mode. Could you please let me know if this is enough what I got? Exception thrown at 0x00007FF7A5ED24D4 in worldserver.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF. 'worldserver.exe' (Win32): Loaded 'D:_SERVER\Trinity Core Server\worldserver.exe'. Module was built without symbols. The thread 0x2a90 has exited with code -1073741510 (0xc000013a). Viewing options: (If this is also necessary to know...) |
If you use transmog patch and I remember correctly, it will crash after starting the server for the second time. Please focus on : npcbot equip with char.item_instance ,with transmog patch in item_instance add new column src/server/database/Database/Implementation/CharacterDatabase.cpp CHAR_SEL_NPCBOT_EQUIP_BY_ITEM_INSTANCE |
No. You need to build server in Debug mode (instead of Release) and then it will produce useful crash log. |
Hi all, @qyh214 PrepareStatement(CHAR_SEL_NPCBOT_EQUIP_BY_ITEM_INSTANCE, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, guid, itemEntry, owner_guid " May I ask you what you think I should add into here? @trickerer |
Here is where this issue was discussed last time (just in case). Try changing PrepareStatement(CHAR_SEL_NPCBOT_EQUIP_BY_ITEM_INSTANCE, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, guid, itemEntry, owner_guid " |
The good thing: The bad thing: For your information: This was exactly what I got: I decided to use the bots ItemDisplay instead of transmogvendor. Could this maybe also be related? I build the server with "nxxxxsxxxxxxxxxxxxxxxxxxx". One more thing: |
Oops, you actually need to add a zero into a query to match data length with CHAR_SEL_CHARACTER_INVENTORY query result: PrepareStatement(CHAR_SEL_NPCBOT_EQUIP_BY_ITEM_INSTANCE, "SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, guid, itemEntry, owner_guid, 0, transmog " |
Dear @trickerer , One more question: |
You should scan your DBErrors.log and Server.log for sql errors or anything item related to see what is wrong. It is possible that items are saved, but not loaded, cluttering your |
DBErrors.log: "Script '0' is referenced by the database, but does not exist in the core!" For a new test I've deleted all entrees in item_instance, and
Do you have any further proposals? |
I'll guess all the other items in the table are worn by your character. Something sets item guid to 0, which could be related for item deletion. Before messing with code try snapshotting your Could you provide a link to a transmog patch you're using? Also I'd like to know what modification adds these additional links to bot whisper output. |
@trickerer maybe he used https://github.com/Rochet2/TrinityCore/tree/transmog_3.3.5 or https://github.com/Rochet2/TrinityCore/tree/transmogvendor_3.3.5 or both. PrepareStatement(CHAR_SEL_NPCBOT_EQUIP_BY_ITEM_INSTANCE, "
SELECT creatorGuid, giftCreatorGuid, count, duration, charges, flags, enchantments, randomPropertyId, durability, playedTime, text, guid, itemEntry, owner_guid, 0, transmog "
"FROM item_instance WHERE guid IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_SYNCH); and this is not only work,I also fix : void BotDataMgr::UpdateNpcBotData()
…………
stmt->setUInt32(++index, botitem->GetUInt32Value(ITEM_FIELD_CREATE_PLAYED_TIME));
stmt->setString(++index, botitem->GetText());
//after this line add
stmt->setUInt32(++index, 0); // this for transmog
and this will give a bug! If you transmog this item then give bot,then refund to yourself.transmog will missing.because I don't know how to fix this problem, how to get transmog data so I set 0. |
Change last line to |
Yeah it works now! You guys are outstanding. Big THANK YOU for this amazing support. To summarize and to help other people which are having NPCBots by trickerer + rochet's transmog 3.3.5 (Blizzlike) installed: 1.
2. This will ensure that the bots equipment gets correctly saved into SQL characters "item_instance" I will do more tests in the next days. When I don't get any more errors/problems, then I will close this issue. |
Works great, thank you. Issue can be closed, solved! |
Dear all,
I've had a very stable server on version a534d17e2624+ 2021-05-24 with latest version of bots (and transmog vendor) running. Everything went smoothly and I've set 167 bots into the world.
When I was playing the last days everything worked but then suddenly since yesterday evening I can no longer load the worldserver. It crashs while loading:
Starting NpcBot system...
...and then the worldsever is closed.
Could you please have a look into the files? Please let me know if you need more files or any more details.
All the best,
love your amazing work
Marco
Server.log
DBErrors.log
a534d17e2624+worldserver.exe[28-5_20-41-40].txt
The text was updated successfully, but these errors were encountered: