diff --git a/data/sql/updates/pending_db_world/rev_1624095622339138000.sql b/data/sql/updates/pending_db_world/rev_1624095622339138000.sql new file mode 100644 index 000000000..b8309fced --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1624095622339138000.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1624095622339138000'); + +UPDATE `quest_template` SET `RewardMoney`=0 WHERE `id`=8194; diff --git a/src/server/scripts/World/player_scripts.cpp b/src/server/scripts/World/player_scripts.cpp new file mode 100644 index 000000000..eccd37fc7 --- /dev/null +++ b/src/server/scripts/World/player_scripts.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 + */ + +#include "Player.h" +#include "ScriptMgr.h" + +enum ApprenticeAnglerQuestEnum +{ + QUEST_APPRENTICE_ANGLER = 8194 +}; + +class QuestApprenticeAnglerPlayerScript : public PlayerScript +{ +public: + QuestApprenticeAnglerPlayerScript() : PlayerScript("QuestApprenticeAnglerPlayerScript") + { + } + + void OnPlayerCompleteQuest(Player* player, Quest const* quest) override + { + if (quest->GetQuestId() == QUEST_APPRENTICE_ANGLER) + { + uint32 level = player->getLevel(); + int32 moneyRew = 0; + if (level <= 10) + moneyRew = 85; + else if (level <= 60) + moneyRew = 2300; + else if (level <= 69) + moneyRew = 9000; + else if (level <= 70) + moneyRew = 11200; + else if (level <= 79) + moneyRew = 12000; + else + moneyRew = 19000; + + player->ModifyMoney(moneyRew); + player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, uint32(moneyRew)); + player->SaveToDB(false, false); + + // Send packet with money + WorldPacket data(SMSG_QUESTGIVER_QUEST_COMPLETE, (4 + 4 + 4 + 4 + 4)); + data << uint32(quest->GetQuestId()); + data << uint32(0); + data << uint32(moneyRew); + data << uint32(0); + data << uint32(0); + data << uint32(0); + player->SendDirectMessage(&data); + } + } +}; + +void AddSC_player_scripts() +{ + new QuestApprenticeAnglerPlayerScript(); +} diff --git a/src/server/scripts/World/world_script_loader.cpp b/src/server/scripts/World/world_script_loader.cpp index 2d3b27147..8aa08ffd1 100644 --- a/src/server/scripts/World/world_script_loader.cpp +++ b/src/server/scripts/World/world_script_loader.cpp @@ -18,6 +18,7 @@ void AddSC_achievement_scripts(); void AddSC_chat_log(); // location: scripts\World\chat_log.cpp void AddSC_character_creation(); void AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp +void AddSC_player_scripts(); // The name of this function should match: // void Add${NameOfDirectory}Scripts() @@ -37,4 +38,5 @@ void AddWorldScripts() AddSC_chat_log(); // location: scripts\World\chat_log.cpp AddSC_character_creation(); AddSC_action_ip_logger(); // location: scripts\World\action_ip_logger.cpp + AddSC_player_scripts(); }