diff options
| author | Spp <spp@jorge.gr> | 2012-12-07 09:22:43 +0100 |
|---|---|---|
| committer | Spp <spp@jorge.gr> | 2012-12-07 09:22:43 +0100 |
| commit | fb2e5c3c5840a77452a2418805eabd01147a4346 (patch) | |
| tree | a4490008845509814826b09f17ada5b2d9c9b405 /src/server/game/Globals/ObjectMgr.cpp | |
| parent | 4c78f667de319a9690493fddb690b57f940c862e (diff) | |
| parent | 6ed36342a20d11657eda8473b59ee10cbe92a507 (diff) | |
Merge branch 'master' into 4.3.4
Conflicts:
src/server/game/Conditions/ConditionMgr.cpp
src/server/game/Conditions/ConditionMgr.h
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Globals/ObjectMgr.cpp
src/server/game/Handlers/ItemHandler.cpp
src/server/game/Quests/QuestDef.cpp
src/server/game/Quests/QuestDef.h
src/server/game/Spells/Auras/SpellAuraEffects.cpp
src/server/game/World/World.h
src/server/scripts/Kalimdor/azshara.cpp
src/server/scripts/Kalimdor/azuremyst_isle.cpp
src/server/scripts/Kalimdor/darkshore.cpp
src/server/scripts/Kalimdor/durotar.cpp
src/server/scripts/Kalimdor/dustwallow_marsh.cpp
src/server/scripts/Kalimdor/feralas.cpp
src/server/scripts/Kalimdor/moonglade.cpp
src/server/scripts/Kalimdor/silithus.cpp
src/server/scripts/Kalimdor/stonetalon_mountains.cpp
src/server/scripts/Kalimdor/tanaris.cpp
src/server/scripts/Kalimdor/the_barrens.cpp
src/server/scripts/Kalimdor/thousand_needles.cpp
src/server/scripts/Spells/spell_generic.cpp
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 75 |
1 files changed, 44 insertions, 31 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 7ca6602eace..5cc304223e6 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -52,7 +52,6 @@ #include "World.h" ScriptMapMap sQuestEndScripts; -ScriptMapMap sQuestStartScripts; ScriptMapMap sSpellScripts; ScriptMapMap sGameObjectScripts; ScriptMapMap sEventScripts; @@ -64,7 +63,6 @@ std::string GetScriptsTableNameByType(ScriptsType type) switch (type) { case SCRIPTS_QUEST_END: res = "quest_end_scripts"; break; - case SCRIPTS_QUEST_START: res = "quest_start_scripts";break; case SCRIPTS_SPELL: res = "spell_scripts"; break; case SCRIPTS_GAMEOBJECT: res = "gameobject_scripts"; break; case SCRIPTS_EVENT: res = "event_scripts"; break; @@ -80,7 +78,6 @@ ScriptMapMap* GetScriptsMapByType(ScriptsType type) switch (type) { case SCRIPTS_QUEST_END: res = &sQuestEndScripts; break; - case SCRIPTS_QUEST_START: res = &sQuestStartScripts; break; case SCRIPTS_SPELL: res = &sSpellScripts; break; case SCRIPTS_GAMEOBJECT: res = &sGameObjectScripts; break; case SCRIPTS_EVENT: res = &sEventScripts; break; @@ -3470,8 +3467,8 @@ void ObjectMgr::LoadQuests() "DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4, EmoteOnIncomplete, EmoteOnComplete, " // 164 165 166 167 168 169 170 171 "OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4, OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4, " - // 172 173 174 - "StartScript, CompleteScript, WDBVerified" + // 173 174 + "CompleteScript, WDBVerified" " FROM quest_template"); if (!result) { @@ -3538,6 +3535,15 @@ void ObjectMgr::LoadQuests() } } + if (qinfo->Flags & QUEST_SPECIAL_FLAGS_MONTHLY) + { + if (!(qinfo->Flags & QUEST_SPECIAL_FLAGS_REPEATABLE)) + { + sLog->outError(LOG_FILTER_SQL, "Monthly quest %u not marked as repeatable in `SpecialFlags`, added.", qinfo->GetQuestId()); + qinfo->Flags |= QUEST_SPECIAL_FLAGS_REPEATABLE; + } + } + if (qinfo->Flags & QUEST_FLAGS_AUTO_REWARDED) { // at auto-reward can be rewarded only RewardChoiceItemId[0] @@ -4632,18 +4638,6 @@ void ObjectMgr::LoadQuestEndScripts() } } -void ObjectMgr::LoadQuestStartScripts() -{ - LoadScripts(SCRIPTS_QUEST_START); - - // check ids - for (ScriptMapMap::const_iterator itr = sQuestStartScripts.begin(); itr != sQuestStartScripts.end(); ++itr) - { - if (!GetQuestTemplate(itr->first)) - sLog->outError(LOG_FILTER_SQL, "Table `quest_start_scripts` has not existing quest (Id: %u) as script id", itr->first); - } -} - void ObjectMgr::LoadSpellScripts() { LoadScripts(SCRIPTS_SPELL); @@ -6607,13 +6601,11 @@ void ObjectMgr::LoadReputationRewardRate() _repRewardRateStore.clear(); // for reload case - uint32 count = 0; // 0 1 2 3 - QueryResult result = WorldDatabase.Query("SELECT faction, quest_rate, creature_rate, spell_rate FROM reputation_reward_rate"); - + uint32 count = 0; // 0 1 2 3 4 5 6 + QueryResult result = WorldDatabase.Query("SELECT faction, quest_rate, quest_daily_rate, quest_weekly_rate, quest_monthly_rate, creature_rate, spell_rate FROM reputation_reward_rate"); if (!result) { sLog->outError(LOG_FILTER_SQL, ">> Loaded `reputation_reward_rate`, table is empty!"); - return; } @@ -6621,13 +6613,16 @@ void ObjectMgr::LoadReputationRewardRate() { Field* fields = result->Fetch(); - uint32 factionId = fields[0].GetUInt32(); + uint32 factionId = fields[0].GetUInt32(); RepRewardRate repRate; - repRate.quest_rate = fields[1].GetFloat(); - repRate.creature_rate = fields[2].GetFloat(); - repRate.spell_rate = fields[3].GetFloat(); + repRate.questRate = fields[1].GetFloat(); + repRate.questDailyRate = fields[2].GetFloat(); + repRate.questWeeklyRate = fields[3].GetFloat(); + repRate.questMonthlyRate = fields[4].GetFloat(); + repRate.creatureRate = fields[5].GetFloat(); + repRate.spellRate = fields[6].GetFloat(); FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId); if (!factionEntry) @@ -6636,21 +6631,39 @@ void ObjectMgr::LoadReputationRewardRate() continue; } - if (repRate.quest_rate < 0.0f) + if (repRate.questRate < 0.0f) + { + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_rate with invalid rate %f, skipping data for faction %u", repRate.questRate, factionId); + continue; + } + + if (repRate.questDailyRate < 0.0f) + { + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_daily_rate with invalid rate %f, skipping data for faction %u", repRate.questDailyRate, factionId); + continue; + } + + if (repRate.questWeeklyRate < 0.0f) + { + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_weekly_rate with invalid rate %f, skipping data for faction %u", repRate.questWeeklyRate, factionId); + continue; + } + + if (repRate.questMonthlyRate < 0.0f) { - sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_rate with invalid rate %f, skipping data for faction %u", repRate.quest_rate, factionId); + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has quest_monthly_rate with invalid rate %f, skipping data for faction %u", repRate.questMonthlyRate, factionId); continue; } - if (repRate.creature_rate < 0.0f) + if (repRate.creatureRate < 0.0f) { - sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has creature_rate with invalid rate %f, skipping data for faction %u", repRate.creature_rate, factionId); + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has creature_rate with invalid rate %f, skipping data for faction %u", repRate.creatureRate, factionId); continue; } - if (repRate.spell_rate < 0.0f) + if (repRate.spellRate < 0.0f) { - sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has spell_rate with invalid rate %f, skipping data for faction %u", repRate.spell_rate, factionId); + sLog->outError(LOG_FILTER_SQL, "Table reputation_reward_rate has spell_rate with invalid rate %f, skipping data for faction %u", repRate.spellRate, factionId); continue; } |
