Implements two standard features of the Auction House.
* GetAll scan, retrieves all auctions and sends them in a single packet.
There's a limitation on how often a player can do this (Max 55000 items)
* Search throttling. For normal searches, the server can send a time
in milliseconds to the client, the client will wait that long between
searches. Delay set in config
Closes#16469
If there is an alive instance of the creature upon creature spawn, skip
spawn entirely. If there are only dead instances, despawn them. A new dead
corpse in the creatures home position will be respawned.
Closes: #16462
- moved 2 #define text lines to enum, already in npc_text
- new gossip_menu_option for NPC 3678 Disciple of Naralex
- using `ADD_GOSSIP_ITEM_DB` instead of `ADD_GOSSIP_ITEM`
Tested on both alliance and horde characters, works just like before.
Tiles which are owned by the mesh should have the DT_TILE_FREE_DATA flag to ensure
deallocation on removal from the mesh.
Log:
==23516== 6,181,976 bytes in 6 blocks are definitely lost in loss record 15 of 15
==23516== at 0x4C298A0: operator new[](unsigned long) (vg_replace_malloc.c:389)
==23516== by 0x2052660: dtCustomAlloc(int, dtAllocHint) (Memory.h:11)
==23516== by 0x29D7FDA: dtAlloc(int, dtAllocHint) (DetourAlloc.cpp:43)
==23516== by 0x230AA70: MMAP::MMapManager::loadMap(std::string const&, unsigned int, int, int) (MMapManager.cpp:166)
==23516== by 0x1DD585B: Map::LoadMMap(int, int) (Map.cpp:125)
==23516== by 0x1DD7266: Map::LoadMapAndVMap(int, int) (Map.cpp:200)
==23516== by 0x1DD93C6: Map::EnsureGridCreated_i(CoordPair<64u> const&) (Map.cpp:453)
==23516== by 0x1DD9129: Map::EnsureGridCreated(CoordPair<64u> const&) (Map.cpp:429)
==23516== by 0x1DED100: Map::GetGrid(float, float) (Map.cpp:2200)
==23516== by 0x1DE0F4C: Map::GetAreaFlag(float, float, float, bool*) const (Map.cpp:2349)
==23516== by 0x198521B: Map::GetZoneId(float, float, float) const (Map.h:353)
==23516== by 0x197CFF0: WorldObject::GetZoneId() const (Object.cpp:1277)
Phase tiles aren't managed by detour so they shouldn't be free'd automatically on removal.
See MMapManager::UnloadPhaseTile
(cherry picked from commit 32e8b6506f)
Additional change: menu options are changed from containing only names
to include the text " is my answer.", based on the lines in `broadcast_text`.
- replaced core text with DB SAI script
- created DB creature_text entries for Parqual Fintallas
- created DB gossip_menu_option entries for the NPC
- implemented NPC say lines in reply to all the answers
- added conditions for which gossip should show, depending on quest status
- added conditions to avoid exploits in the time it takes for NPC to say his texts
This PR is tested several times on a horde character (horde-only quest).
It now works as originally intended, with option-specific NPC replies.
The spell that trigger the achievement check, needs to be cast before setting up the variables used for the second round, otherwise the achievement will be granted to the wrong team.
Also, SPELL_END_OF_ROUND needs to be casted on the end of the second round too, this was confirmed in retail.
This can be used to fix quests such as "Heated Battle" or "If Valgarde Falls..." that are currently very hard to complete at the appropriate level due to "friendly" NPCs killing off the required targets too quickly for players to get 50% of damage in.