aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index f255b272120..74262ac15c4 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1397,7 +1397,8 @@ void Spell::DoCreateItem(uint32 itemId, ItemContext context /*= ItemContext::NON
}
// we succeeded in creating at least one item, so a levelup is possible
- player->UpdateCraftSkill(m_spellInfo);
+ if (!m_CastItem)
+ player->UpdateCraftSkill(m_spellInfo);
}
}
@@ -1426,7 +1427,8 @@ void Spell::EffectCreateItem2()
if (m_spellInfo->IsLootCrafting())
{
player->AutoStoreLoot(m_spellInfo->Id, LootTemplates_Spell, context, false, true);
- player->UpdateCraftSkill(m_spellInfo);
+ if (!m_CastItem)
+ player->UpdateCraftSkill(m_spellInfo);
}
else // If there's no random loot entries for this spell, pick the item associated with this spell
{
@@ -2357,7 +2359,7 @@ void Spell::EffectEnchantItemPerm()
else
{
// do not increase skill if vellum used
- if (!(m_CastItem && m_CastItem->GetTemplate()->HasFlag(ITEM_FLAG_NO_REAGENT_COST)))
+ if (!m_CastItem)
player->UpdateCraftSkill(m_spellInfo);
uint32 enchant_id = effectInfo->MiscValue;
@@ -3403,7 +3405,9 @@ void Spell::EffectDisEnchant()
if (Player* caster = m_caster->ToPlayer())
{
- caster->UpdateCraftSkill(m_spellInfo);
+ if (!m_CastItem)
+ caster->UpdateCraftSkill(m_spellInfo);
+
itemTarget->m_loot.reset(new Loot(caster->GetMap(), itemTarget->GetGUID(), LOOT_DISENCHANTING, nullptr));
itemTarget->m_loot->FillLoot(ASSERT_NOTNULL(itemTarget->GetDisenchantLoot(caster))->ID, LootTemplates_Disenchant, caster, true);
caster->SendLoot(*itemTarget->m_loot);