diff options
author | Shocker <shocker@freakz.ro> | 2012-09-21 01:02:18 +0300 |
---|---|---|
committer | Shocker <shocker@freakz.ro> | 2012-09-21 01:02:18 +0300 |
commit | 993fb5b4a66e963344e07ef300055cf548a21796 (patch) | |
tree | ad2ed78c159c3aeef419c57213ec329089c97a98 /src | |
parent | 6446a73cc11278aaf3cfd5c0f8d9456f8bb3352e (diff) |
Core/Spells: Fix SPELL_AURA_MOD_CURRENCY_GAIN
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.h | 3 | ||||
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_modify.cpp | 4 |
5 files changed, 12 insertions, 8 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 96c6b30cba5..0d6e5a37b90 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7356,7 +7356,7 @@ bool Player::HasCurrency(uint32 id, uint32 count) const return itr != _currencyStorage.end() && itr->second.totalCount >= count; } -void Player::ModifyCurrency(uint32 id, int32 count, bool printLog/* = true*/) +void Player::ModifyCurrency(uint32 id, int32 count, bool printLog/* = true*/, bool ignoreMultipliers/* = false*/) { if (!count) return; @@ -7364,6 +7364,9 @@ void Player::ModifyCurrency(uint32 id, int32 count, bool printLog/* = true*/) CurrencyTypesEntry const* currency = sCurrencyTypesStore.LookupEntry(id); ASSERT(currency); + if (!ignoreMultipliers) + count *= GetTotalAuraMultiplierByMiscValue(SPELL_AURA_MOD_CURRENCY_GAIN, id); + int32 precision = currency->Flags & CURRENCY_FLAG_HIGH_PRECISION ? 100 : 1; uint32 oldTotalCount = 0; uint32 oldWeekCount = 0; @@ -21118,7 +21121,7 @@ inline bool Player::_StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 c for (int i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i) { if (iece->RequiredCurrency[i]) - ModifyCurrency(iece->RequiredCurrency[i], -int32(iece->RequiredCurrencyCount[i])); + ModifyCurrency(iece->RequiredCurrency[i], -int32(iece->RequiredCurrencyCount[i]), true, true); } } @@ -21252,7 +21255,7 @@ bool Player::BuyCurrencyFromVendorSlot(uint64 vendorGuid, uint32 vendorSlot, uin return false; } - ModifyCurrency(currency, crItem->maxcount); + ModifyCurrency(currency, crItem->maxcount, true, true); return true; } diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 758e44aeefe..22091f80ce2 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1454,8 +1454,9 @@ class Player : public Unit, public GridObject<Player> * @param id currency entry from CurrencyTypes.dbc * @param count integer value for adding/removing curent currency * @param printLog used on SMSG_UPDATE_CURRENCY + * @param ignore gain multipliers */ - void ModifyCurrency(uint32 id, int32 count, bool printLog = true); + void ModifyCurrency(uint32 id, int32 count, bool printLog = true, bool ignoreMultipliers = false); void ApplyEquipCooldown(Item* pItem); void QuickEquipItem(uint16 pos, Item* pItem); diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index 1561f6289ed..102986c01ea 100755 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -408,7 +408,7 @@ enum AuraType SPELL_AURA_PROGRESS_BAR = 346, // NYI SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE = 347, // NYI SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT = 348, // NYI - SPELL_AURA_MOD_CURRENCY_GAIN = 349, // NYI + SPELL_AURA_MOD_CURRENCY_GAIN = 349, SPELL_AURA_MOD_GATHERING_ITEMS_GAINED_PERCENT = 350, // NYI SPELL_AURA_351 = 351, SPELL_AURA_352 = 352, diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index e93d9f25b67..0aa599baae3 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -404,7 +404,7 @@ pAuraEffectHandler AuraEffectHandler[TOTAL_AURAS]= &AuraEffect::HandleNULL, //346 SPELL_AURA_PROGRESS_BAR &AuraEffect::HandleNULL, //347 SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE &AuraEffect::HandleNoImmediateEffect, //348 SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT - &AuraEffect::HandleNULL, //349 SPELL_AURA_MOD_CURRENCY_GAIN + &AuraEffect::HandleNoImmediateEffect, //349 SPELL_AURA_MOD_CURRENCY_GAIN &AuraEffect::HandleNULL, //350 SPELL_AURA_MOD_GATHERING_ITEMS_GAINED_PERCENT &AuraEffect::HandleNULL, //351 SPELL_AURA_351 &AuraEffect::HandleNULL, //352 SPELL_AURA_352 diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index beb5db62dfa..f527d7fb275 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -1121,7 +1121,7 @@ public: int32 amount = (uint32)atoi(args); - target->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, amount); + target->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, amount, true, true); handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target).c_str(), target->GetCurrency(CURRENCY_TYPE_HONOR_POINTS)); @@ -1311,7 +1311,7 @@ public: int32 amount = (uint32)atoi(args); - target->ModifyCurrency(CURRENCY_TYPE_CONQUEST_POINTS, amount); + target->ModifyCurrency(CURRENCY_TYPE_CONQUEST_POINTS, amount, true, true); handler->PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, handler->GetNameLink(target).c_str(), target->GetCurrency(CURRENCY_TYPE_CONQUEST_POINTS)); |