- Now counts as a hostile dispel (triggers on-dispel effects: Grobbulus injection etc)
- Can dispel non-deathpersist spells despite ATTR0_UNAFFECTED_BY_INVULNERABILITY (despite the name, this only means they can be applied while immune, not that the aura cannot be removed by immunity), if they do not have SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE (debuffs like recently bandaged etc have this)
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.