Core/Dungeon Finder: Added support for rewards for random dungeons
Core/Quests: Simplified rewarding money from quests, now ModifyMoney and UpdateAchievementCriteria are called only once per quest Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS --HG-- branch : trunk
This commit is contained in:
@@ -14373,22 +14373,22 @@ void Player::RewardQuest(Quest const *pQuest, uint32 reward, Object* questGiver,
|
||||
for (Unit::AuraEffectList::const_iterator i = ModXPPctAuras.begin(); i != ModXPPctAuras.end(); ++i)
|
||||
XP = uint32(XP*(1.0f + (*i)->GetAmount() / 100.0f));
|
||||
|
||||
int32 moneyRew = 0;
|
||||
if (getLevel() < sWorld.getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
|
||||
GiveXP(XP, NULL);
|
||||
else
|
||||
{
|
||||
uint32 money = uint32(pQuest->GetRewMoneyMaxLevel() * sWorld.getRate(RATE_DROP_MONEY));
|
||||
ModifyMoney(money);
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, money);
|
||||
}
|
||||
moneyRew = int32(pQuest->GetRewMoneyMaxLevel() * sWorld.getRate(RATE_DROP_MONEY));
|
||||
|
||||
// Give player extra money if GetRewOrReqMoney > 0 and get ReqMoney if negative
|
||||
if (pQuest->GetRewOrReqMoney())
|
||||
{
|
||||
ModifyMoney(pQuest->GetRewOrReqMoney());
|
||||
moneyRew += pQuest->GetRewOrReqMoney();
|
||||
|
||||
if (pQuest->GetRewOrReqMoney() > 0)
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, pQuest->GetRewOrReqMoney());
|
||||
if (moneyRew)
|
||||
{
|
||||
ModifyMoney(moneyRew);
|
||||
|
||||
if (moneyRew > 0)
|
||||
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, uint32(moneyRew));
|
||||
}
|
||||
|
||||
// honor reward
|
||||
|
||||
@@ -2251,6 +2251,7 @@ class Player : public Unit, public GridObject<Player>
|
||||
bool isLfgDungeonDone(const uint32 entry) { return m_LookingForGroup.donerandomDungeons.find(entry) != m_LookingForGroup.donerandomDungeons.end(); }
|
||||
LfgDungeonSet *GetLfgDungeons() { return &m_LookingForGroup.applyDungeons; }
|
||||
LfgDungeonSet *GetLfgDungeonsDone() { return &m_LookingForGroup.donerandomDungeons; }
|
||||
void SetLfgDungeonDone(const uint32 entry) { m_LookingForGroup.donerandomDungeons.insert(entry); }
|
||||
std::string GetLfgComment() { return m_LookingForGroup.comment; }
|
||||
void SetLfgComment(std::string _comment) { m_LookingForGroup.comment = _comment; }
|
||||
uint8 GetLfgRoles() { return m_LookingForGroup.roles; }
|
||||
|
||||
Reference in New Issue
Block a user