исправляет дефект, когда руны все еще гашеные, даже если ультрасовременно, ибо никакая стоимость не присутствует, как воспроизвести: 1)take Рифма как талант 2)convert весь мороз & нечистые руны насмерть 3) приводите вой blast -death рун будет все еще браться даже думал, что никаких рун не нужно потреблять Code
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 2ed2111..2ebd7f8 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -3752,19 +3752,24 @@ SpellCastResult Spell::CheckOrTakeRunePower(bool take) for(uint32 i = 0; i < MAX_RUNES; ++i) { RuneType rune = plr->GetCurrentRune(i); + RuneType real = plr->GetBaseRune(i); + + if (runeCost[real] > 0) + { + int32 runeCostTemp = runeCost[real] * 1000; + if(Player* modOwner = plr->GetSpellModOwner()) + modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_COST, runeCostTemp, this); + + if (runeCostTemp <= 0) + { + --runeCost[real]; + continue; + } + } + if (runeCost[rune] <= 0) continue; - int32 runeCostTemp = runeCost[rune] * 10000; - if(Player* modOwner = plr->GetSpellModOwner()) - modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_COST, runeCostTemp, this); - - if (runeCostTemp <= 0) - { - --runeCost[rune]; - continue; - } - if(plr->GetRuneCooldown(i) == 0) { if (take)