Патч №1 Исправляет спеллы:
28622
39432
55173
Code
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index d9c9722..a0c17b6 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -4459,6 +4459,25 @@ SpellCastResult Spell::CheckCast(bool strict)
break;
}
+ //SPELL_AURA_FLY means player can fly without a mount. Here we check only for flying shapeshifting
+ //If spell is shapeshifting we will go to SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED check.
+ case SPELL_AURA_FLY:
+ {
+ if((m_spellInfo->AttributesEx4 & SPELL_ATTR_EX4_CAST_ONLY_IN_OUTLAND) == 0)
+ break;//Perhaps this is not a mount
+ }
+ //check for flying mounts. mount, that has SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED also has SPELL_AURA_MOUNTED
+ //exception is spell 49851, wich is Blizz internal and not used
+ case SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED:
+ {
+ // not allow cast mount spells at old maps by players (all spells are self target)
+ if(m_caster->GetTypeId() == TYPEID_PLAYER)
+ {
+ if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() )
+ return SPELL_FAILED_NOT_HERE;
+ }
+ break;
+ }
case SPELL_AURA_MOUNTED:
{
if (m_caster->IsInWater())
@@ -4491,18 +4510,6 @@ SpellCastResult Spell::CheckCast(bool strict)
break;
}
- case SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED:
- case SPELL_AURA_FLY:
- {
- // not allow cast fly spells at old maps by players (all spells is self target)
- if(m_caster->GetTypeId()==TYPEID_PLAYER)
- {
- if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() )
- return SPELL_FAILED_NOT_HERE;
- }
-
- break;
- }
case SPELL_AURA_PERIODIC_MANA_LEECH:
{
if (!m_targets.getUnitTarget())
Патч №2
Исправляет спелл 59317
Code
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 8fbc3af..05d4941 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -4890,6 +4890,12 @@ void Spell::EffectScriptEffect(uint32 effIndex)
return;
}
+ case 59317:
+ if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
+ return;
+
+ ((Player*)unitTarget)->TeleportTo(571, 5765, 862, 865.29, 1.2182);
+ break;
// random spell learn instead placeholder
case 60893: // Northrend Alchemy Research
case 61177: // Northrend Inscription Research
Патч №3
Исправляет ДКшного упыря (ну типа вурдалак)
Code
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index b3de2d7..5e2489c 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -1764,6 +1791,40 @@ void Spell::EffectDummy(uint32 i)
}
return;
}
+ switch(m_spellInfo->Id)
+ case 46584: // Raise Dead
+ {
+ if (!unitTarget || unitTarget->GetCreatureType() != CREATURE_TYPE_HUMANOID || unitTarget->getDeathState() != CORPSE)
+ if (!m_caster->HasAura(60200)) m_caster->CastSpell(NULL, 48289, true, NULL, NULL, NULL);
+ if (!m_caster->HasSpell(52143)) m_caster->CastSpell(NULL, 46585, true, NULL, NULL, NULL); //caster has no talent Master of Ghouls
+ else m_caster->CastSpell(NULL, 52150, true, NULL, NULL, NULL);
+ return;
+ }
+ }
break;
}
вот sql запрос в базу mangos для этого патча: SQL
Это то, что я уже проверил, удачи=))