diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2021-01-22 19:48:50 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-06 00:56:46 +0100 |
commit | 5180abfb19b9c1c4f2df2fbfa918a62f1c4ae995 (patch) | |
tree | 8038c606101b28bd8675149a11aef9aa62ff7fb0 /src/server/game/Handlers/QuestHandler.cpp | |
parent | f74b4cb265d8ff9aab8e5734124dd3d2ec1b8a1a (diff) |
Core/Creature: Add new db field InteractionPauseTimer (#25880)
* Core/Creature: Add new db field InteractionPauseTimer
Add new db field InteractionPauseTimer to allow to define different interaction pause timers for each creature (the previous system was a global setting in worldserver.conf Creature.MovingStopTimeForPlayer)
* Set all columns in creature_template_movement as optional (can be NULL, default NULL). Fill only the columns that should override the default C++ value
* Use the InteractionPauseTimer value throughout the code instead of Creature.MovingStopTimeForPlayer
* Handle InteractionPauseTimer set to 0 as "don't stop at all"
* Implement InteractionPauseTimer in creature_movement_override
creature_movement_override allows NULL values, in which case the values from creature_template_movement will be used for those columns that are NULL, falling back to default C++ values if creature_template_movement has NULL values too (or no rows for the creature)
* Read default InteractionPauseTimer from worldserver.conf
* Rename 2021_99_99_99_world.sql to 2021_01_22_00_world.sql
(cherry picked from commit a22bc236ebc038c723774e5b38cd93e814ccc43d)
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index 90260a8b593..4683c3a177c 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -90,7 +90,8 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPackets::Quest::QuestGiverHe GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH); // Stop the npc if moving - creature->PauseMovement(sWorld->getIntConfig(CONFIG_CREATURE_STOP_FOR_PLAYER)); + if (uint32 pause = creature->GetMovementTemplate().GetInteractionPauseTimer()) + creature->PauseMovement(pause); creature->SetHomePosition(creature->GetPosition()); _player->PlayerTalkClass->ClearMenus(); |