diff options
| author | Ovahlord <dreadkiller@gmx.de> | 2024-01-29 09:21:42 +0100 |
|---|---|---|
| committer | Ovahlord <dreadkiller@gmx.de> | 2024-01-29 09:21:42 +0100 |
| commit | 693329aefc8b3b2a38a7fb1a18db47592f68daa5 (patch) | |
| tree | 85f206c84f7ec495cc588de26619beb7f0e17494 /src/server/game/Spells/SpellEffects.cpp | |
| parent | f33f8e018ac688534bda37fa0312d7b6b2d27fad (diff) | |
Core/Spells: fixed learning skills via spells and removed the unneeded implementation for automatically learning riding spells (they are being taught by quest reward spells or level up autolearn spell effects)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 450bcfd7757..a36a12dbfa4 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2286,7 +2286,7 @@ void Spell::EffectLearnSkill() if (!playerTarget) return; - if (damage < 1) + if (damage < 0) return; uint32 skillid = effectInfo->MiscValue; @@ -2299,12 +2299,12 @@ void Spell::EffectLearnSkill() return; uint16 skillval = std::max<uint16>(1, playerTarget->GetPureSkillValue(skillid)); - uint16 maxSkillVal = tier->GetValueForTierIndex(damage - 1); + uint16 maxSkillVal = tier->GetValueForTierIndex(damage); if (rcEntry->Flags & SKILL_FLAG_ALWAYS_MAX_VALUE) skillval = maxSkillVal; - playerTarget->SetSkill(skillid, damage, skillval, maxSkillVal); + playerTarget->SetSkill(skillid, (damage + 1), skillval, maxSkillVal); } void Spell::EffectPlayMovie() @@ -4550,11 +4550,11 @@ void Spell::EffectSkill() if (!playerTarget) return; - if (damage < 1) + if (damage < 0) return; uint32 skillid = effectInfo->MiscValue; - if (playerTarget->GetSkillStep(skillid) >= damage) + if (playerTarget->GetSkillStep(skillid) >= (damage + 1)) return; SkillRaceClassInfoEntry const* rcEntry = sDB2Manager.GetSkillRaceClassInfo(skillid, playerTarget->GetRace(), playerTarget->GetClass()); @@ -4566,12 +4566,12 @@ void Spell::EffectSkill() return; uint16 skillval = std::max<uint16>(1, playerTarget->GetPureSkillValue(skillid)); - uint16 maxSkillVal = tier->GetValueForTierIndex(damage - 1); + uint16 maxSkillVal = tier->GetValueForTierIndex(damage); if (rcEntry->Flags & SKILL_FLAG_ALWAYS_MAX_VALUE) skillval = maxSkillVal; - playerTarget->SetSkill(skillid, damage, skillval, maxSkillVal); + playerTarget->SetSkill(skillid, (damage + 1), skillval, maxSkillVal); } void Spell::EffectSpiritHeal() |
