aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2014-06-25 19:51:27 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2014-06-25 19:51:27 +0200
commit50cf908d787b8a0d84c95fcc681fc07189a3025e (patch)
treec7577a341f27b4208b1b3c151e3869606767a72d /src/server/game/Spells/SpellEffects.cpp
parentf0c366141b4e8fa9c36f4aa4b1050efa06659347 (diff)
parenta7a9f44cf535cedabd5df369c3cb063626ed0b64 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/World/World.h
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 708ff579182..fbd10a17dab 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -4427,15 +4427,28 @@ void Spell::EffectSkinning(SpellEffIndex /*effIndex*/)
uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();
+ bool awardPoints = true;
+
+ // Check if a skinning loot table was already generated for this creature
+ if (creature->loot.loot_type == LOOT_SKINNING)
+ {
+ if (creature->GetSkinner() != m_caster->GetGUID())
+ return;
+
+ awardPoints = false; // Do not grant skill points for this loot, they were already granted the first time.
+ }
+ else
+ creature->SetSkinner(m_caster->GetGUID());
+
m_caster->ToPlayer()->SendLoot(creature->GetGUID(), LOOT_SKINNING);
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE);
int32 reqValue = targetLevel < 10 ? 0 : targetLevel < 20 ? (targetLevel-10)*10 : targetLevel*5;
int32 skillValue = m_caster->ToPlayer()->GetPureSkillValue(skill);
// Double chances for elites
- m_caster->ToPlayer()->UpdateGatherSkill(skill, skillValue, reqValue, creature->isElite() ? 2 : 1);
+ if (awardPoints)
+ m_caster->ToPlayer()->UpdateGatherSkill(skill, skillValue, reqValue, creature->isElite() ? 2 : 1);
}
void Spell::EffectCharge(SpellEffIndex /*effIndex*/)