fix(Scripts/Quest): reward money amount of Apprentice Angler (#6431)

Fixed #5184.
This commit is contained in:
UltraNix
2021-06-27 01:43:55 +02:00
committed by GitHub
parent c167b17b2a
commit 0c22cae717
3 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1624095622339138000');
UPDATE `quest_template` SET `RewardMoney`=0 WHERE `id`=8194;

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, 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();
}

View File

@@ -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();
}