aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2013-06-29 15:44:32 +0200
committerNaios <naios-dev@live.de>2013-06-29 15:44:32 +0200
commit642ed8a5d27734bee5ccafb3ae3646d2bee74659 (patch)
tree1dba02245d08ce838309591dd597289028fb0c6e
parent13bd999b7dda6726f9741f708f0865343da4d7a4 (diff)
Core/PhaseMgr: Fixed an updateleak that occured if the rewarded quest hadn't requirements
* Fixed the range for phase ids in the phase_definition table * solves http://www.trinitycore.org/f/topic/8737-condition-quest-rewarded-dosnt-work-instantly/
-rw-r--r--sql/updates/world/2013_06_29_00_world_phase_definitions_434.sql2
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/sql/updates/world/2013_06_29_00_world_phase_definitions_434.sql b/sql/updates/world/2013_06_29_00_world_phase_definitions_434.sql
new file mode 100644
index 00000000000..c78620f72d1
--- /dev/null
+++ b/sql/updates/world/2013_06_29_00_world_phase_definitions_434.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `phase_definitions`
+ CHANGE COLUMN `phaseId` `phaseId` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `phasemask`;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 153f6c3da89..5f82f07234f 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15396,6 +15396,10 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
m_RewardedQuests.insert(quest_id);
m_RewardedQuestsSave[quest_id] = true;
+ PhaseUpdateData phaseUdateData;
+ phaseUdateData.AddQuestUpdate(quest_id);
+ phaseMgr.NotifyConditionChanged(phaseUdateData);
+
// StoreNewItem, mail reward, etc. save data directly to the database
// to prevent exploitable data desynchronisation we save the quest status to the database too
// (to prevent rewarding this quest another time while rewards were already given out)