Don't use this part because if you use a scroll, the scroll is delete 2 times instead of once and so if you have only one scroll in your bag this causes error or crash.
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 648552d..12448bf 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -3587,6 +3587,18 @@ void Spell::TakeReagents()
if (p_caster->CanNoReagentCast(m_spellInfo))
return;
+ if(m_CastItem)
+ {
+ for(int i=0; i<3; ++i)
+ {
+ if(m_spellInfo->EffectItemType[i] == m_CastItem->GetEntry())
+ {
+ p_caster->DestroyItemCount(m_CastItem->GetEntry(), 1, true);
+ return;
+ }
+ }
+ }
+
for(uint32 x=0;x<8;x++)
{
if(m_spellInfo->Reagent[x] <= 0)
with this part
Before-------------------->After
---use scroll-->
without this part
Before-------------------->After
---use scroll-->