mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
Fixed spell.dbc structure
This commit is contained in:
parent
79cb959991
commit
8d54103456
13 changed files with 73 additions and 73 deletions
Binary file not shown.
|
|
@ -206,7 +206,7 @@ void GameObject::Update(uint32 /*p_time*/)
|
|||
if(caster && caster->GetTypeId()==TYPEID_PLAYER)
|
||||
{
|
||||
SetGoState(0);
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, 32);
|
||||
SetUInt32Value(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
|
||||
|
||||
UpdateData udata;
|
||||
WorldPacket packet;
|
||||
|
|
|
|||
|
|
@ -6514,7 +6514,7 @@ bool PlayerCondition::Meets(Player const * player) const
|
|||
{
|
||||
Unit::AuraMap const& auras = player->GetAuras();
|
||||
for(Unit::AuraMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
|
||||
if((itr->second->GetSpellProto()->Attributes & 0x1000010) && itr->second->GetSpellProto()->SpellVisual==3580)
|
||||
if((itr->second->GetSpellProto()->Attributes & 0x1000010) && itr->second->GetSpellProto()->SpellVisual[0]==3580)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18141,7 +18141,7 @@ uint32 Player::GetResurrectionSpellId()
|
|||
for(AuraList::const_iterator itr = dummyAuras.begin(); itr != dummyAuras.end(); ++itr)
|
||||
{
|
||||
// Soulstone Resurrection // prio: 3 (max, non death persistent)
|
||||
if( prio < 2 && (*itr)->GetSpellProto()->SpellVisual == 99 && (*itr)->GetSpellProto()->SpellIconID == 92 )
|
||||
if( prio < 2 && (*itr)->GetSpellProto()->SpellVisual[0] == 99 && (*itr)->GetSpellProto()->SpellIconID == 92 )
|
||||
{
|
||||
switch((*itr)->GetId())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -913,13 +913,13 @@ enum GameobjectTypes
|
|||
|
||||
enum GameObjectFlags
|
||||
{
|
||||
GO_FLAG_IN_USE = 0x01, //disables interaction while animated
|
||||
GO_FLAG_LOCKED = 0x02, //require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip
|
||||
GO_FLAG_INTERACT_COND = 0x04, //cannot interact (condition to interact)
|
||||
GO_FLAG_TRANSPORT = 0x08, //any kind of transport? Object can transport (elevator, boat, car)
|
||||
GO_FLAG_UNK1 = 0x10, //
|
||||
GO_FLAG_NODESPAWN = 0x20, //never despawn, typically for doors, they just change state
|
||||
GO_FLAG_TRIGGERED = 0x40, //typically, summoned objects. Triggered by spell or other events
|
||||
GO_FLAG_IN_USE = 0x00000001, //disables interaction while animated
|
||||
GO_FLAG_LOCKED = 0x00000002, //require key, spell, event, etc to be opened. Makes "Locked" appear in tooltip
|
||||
GO_FLAG_INTERACT_COND = 0x00000004, //cannot interact (condition to interact)
|
||||
GO_FLAG_TRANSPORT = 0x00000008, //any kind of transport? Object can transport (elevator, boat, car)
|
||||
GO_FLAG_UNK1 = 0x00000010, //
|
||||
GO_FLAG_NODESPAWN = 0x00000020, //never despawn, typically for doors, they just change state
|
||||
GO_FLAG_TRIGGERED = 0x00000040 //typically, summoned objects. Triggered by spell or other events
|
||||
};
|
||||
|
||||
enum TextEmotes
|
||||
|
|
|
|||
|
|
@ -1550,7 +1550,7 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap)
|
|||
cell.data.Part.reserved = ALL_DISTRICT;
|
||||
cell.SetNoCreate();
|
||||
|
||||
bool inFront = m_spellInfo->SpellVisual != 3879;
|
||||
bool inFront = m_spellInfo->SpellVisual[0] != 3879;
|
||||
MaNGOS::SpellNotifierCreatureAndPlayer notifier(*this, TagUnitMap, radius, inFront ? PUSH_IN_FRONT : PUSH_IN_BACK,SPELL_TARGETS_AOE_DAMAGE);
|
||||
|
||||
TypeContainerVisitor<MaNGOS::SpellNotifierCreatureAndPlayer, WorldTypeMapContainer > world_object_notifier(notifier);
|
||||
|
|
@ -3551,7 +3551,7 @@ uint8 Spell::CanCast(bool strict)
|
|||
case SPELL_EFFECT_SCHOOL_DAMAGE:
|
||||
{
|
||||
// Hammer of Wrath
|
||||
if(m_spellInfo->SpellVisual == 7250)
|
||||
if(m_spellInfo->SpellVisual[0] == 7250)
|
||||
{
|
||||
if (!m_targets.getUnitTarget())
|
||||
return SPELL_FAILED_BAD_IMPLICIT_TARGETS;
|
||||
|
|
|
|||
|
|
@ -4066,7 +4066,7 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
case SPELLFAMILY_ROGUE:
|
||||
{
|
||||
// Deadly poison aura state
|
||||
if((m_spellProto->SpellFamilyFlags & 0x10000) && m_spellProto->SpellVisual==5100)
|
||||
if((m_spellProto->SpellFamilyFlags & 0x10000) && m_spellProto->SpellVisual[0]==5100)
|
||||
{
|
||||
if(apply)
|
||||
m_target->ModifyAuraState(AURA_STATE_DEADLY_POISON,true);
|
||||
|
|
@ -4078,7 +4078,7 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
for(Unit::AuraList::const_iterator itr = auras.begin(); itr != auras.end(); ++itr)
|
||||
{
|
||||
SpellEntry const* itr_spell = (*itr)->GetSpellProto();
|
||||
if(itr_spell && itr_spell->SpellFamilyName==SPELLFAMILY_ROGUE && (itr_spell->SpellFamilyFlags & 0x10000) && itr_spell->SpellVisual==5100)
|
||||
if(itr_spell && itr_spell->SpellFamilyName==SPELLFAMILY_ROGUE && (itr_spell->SpellFamilyFlags & 0x10000) && itr_spell->SpellVisual[0]==5100)
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
|
|
@ -5765,7 +5765,7 @@ void Aura::PeriodicTick()
|
|||
return;
|
||||
|
||||
// heal for caster damage (must be alive)
|
||||
if(m_target != pCaster && GetSpellProto()->SpellVisual==163 && !pCaster->isAlive())
|
||||
if(m_target != pCaster && GetSpellProto()->SpellVisual[0]==163 && !pCaster->isAlive())
|
||||
return;
|
||||
|
||||
// ignore non positive values (can be result apply spellmods to aura damage
|
||||
|
|
@ -5810,7 +5810,7 @@ void Aura::PeriodicTick()
|
|||
bool haveCastItem = GetCastItemGUID()!=0;
|
||||
|
||||
// heal for caster damage
|
||||
if(m_target!=pCaster && spellProto->SpellVisual==163)
|
||||
if(m_target!=pCaster && spellProto->SpellVisual[0]==163)
|
||||
{
|
||||
uint32 dmg = spellProto->manaPerSecond;
|
||||
if(pCaster->GetHealth() <= dmg && pCaster->GetTypeId()==TYPEID_PLAYER)
|
||||
|
|
|
|||
|
|
@ -386,7 +386,7 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
|||
case SPELLFAMILY_DRUID:
|
||||
{
|
||||
// Ferocious Bite
|
||||
if((m_spellInfo->SpellFamilyFlags & 0x000800000) && m_spellInfo->SpellVisual==6587)
|
||||
if((m_spellInfo->SpellFamilyFlags & 0x000800000) && m_spellInfo->SpellVisual[0]==6587)
|
||||
{
|
||||
// converts each extra point of energy into ($f1+$AP/630) additional damage
|
||||
float multiple = m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 630 + m_spellInfo->DmgMultiplier[effect_idx];
|
||||
|
|
@ -466,7 +466,7 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
|||
{
|
||||
// Deadly poison (only attacker applied)
|
||||
if( (*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_ROGUE && ((*itr)->GetSpellProto()->SpellFamilyFlags & 0x10000) &&
|
||||
(*itr)->GetSpellProto()->SpellVisual==5100 && (*itr)->GetCasterGUID()==m_caster->GetGUID() )
|
||||
(*itr)->GetSpellProto()->SpellVisual[0]==5100 && (*itr)->GetCasterGUID()==m_caster->GetGUID() )
|
||||
{
|
||||
--combo;
|
||||
++doses;
|
||||
|
|
@ -504,7 +504,7 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
|||
case SPELLFAMILY_HUNTER:
|
||||
{
|
||||
// Mongoose Bite
|
||||
if((m_spellInfo->SpellFamilyFlags & 0x000000002) && m_spellInfo->SpellVisual==342)
|
||||
if((m_spellInfo->SpellFamilyFlags & 0x000000002) && m_spellInfo->SpellVisual[0]==342)
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2);
|
||||
}
|
||||
|
|
@ -1191,7 +1191,7 @@ void Spell::EffectDummy(uint32 i)
|
|||
break;
|
||||
case SPELLFAMILY_WARRIOR:
|
||||
// Charge
|
||||
if(m_spellInfo->SpellFamilyFlags & 0x1 && m_spellInfo->SpellVisual == 867)
|
||||
if(m_spellInfo->SpellFamilyFlags & 0x1 && m_spellInfo->SpellVisual[0] == 867)
|
||||
{
|
||||
int32 chargeBasePoints0 = damage;
|
||||
m_caster->CastCustomSpell(m_caster,34846,&chargeBasePoints0,NULL,NULL,true);
|
||||
|
|
@ -3838,13 +3838,13 @@ void Spell::EffectEnchantItemTmp(uint32 i)
|
|||
else if(m_spellInfo->SpellFamilyName==SPELLFAMILY_SHAMAN)
|
||||
duration = 1800; // 30 mins
|
||||
// other cases with this SpellVisual already selected
|
||||
else if(m_spellInfo->SpellVisual==215)
|
||||
else if(m_spellInfo->SpellVisual[0]==215)
|
||||
duration = 1800; // 30 mins
|
||||
// some fishing pole bonuses
|
||||
else if(m_spellInfo->SpellVisual==563)
|
||||
else if(m_spellInfo->SpellVisual[0]==563)
|
||||
duration = 600; // 10 mins
|
||||
// shaman rockbiter enchantments
|
||||
else if(m_spellInfo->SpellVisual==0)
|
||||
else if(m_spellInfo->SpellVisual[0]==0)
|
||||
duration = 1800; // 30 mins
|
||||
else if(m_spellInfo->Id==29702)
|
||||
duration = 300; // 5 mins
|
||||
|
|
@ -4177,7 +4177,7 @@ void Spell::EffectWeaponDmg(uint32 i)
|
|||
spell_bonus += m_caster->CalculateDamage (OFF_ATTACK, normalized);
|
||||
}
|
||||
// Devastate bonus and sunder armor refresh
|
||||
else if(m_spellInfo->SpellVisual == 671 && m_spellInfo->SpellIconID == 1508)
|
||||
else if(m_spellInfo->SpellVisual[0] == 671 && m_spellInfo->SpellIconID == 1508)
|
||||
{
|
||||
customBonusDamagePercentMod = true;
|
||||
bonusDamagePercentMod = 0.0f; // only applied if auras found
|
||||
|
|
@ -4186,7 +4186,7 @@ void Spell::EffectWeaponDmg(uint32 i)
|
|||
for(Unit::AuraList::const_iterator itr=list.begin();itr!=list.end();++itr)
|
||||
{
|
||||
SpellEntry const *proto = (*itr)->GetSpellProto();
|
||||
if(proto->SpellVisual == 406 && proto->SpellIconID == 565)
|
||||
if(proto->SpellVisual[0] == 406 && proto->SpellIconID == 565)
|
||||
{
|
||||
int32 duration = GetSpellDuration(proto);
|
||||
(*itr)->SetAuraDuration(duration);
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|
|||
}
|
||||
|
||||
// only warlock armor/skin have this (in additional to family cases)
|
||||
if( spellInfo->SpellVisual == 130 && spellInfo->SpellIconID == 89)
|
||||
if( spellInfo->SpellVisual[0] == 130 && spellInfo->SpellIconID == 89)
|
||||
{
|
||||
return SPELL_WARLOCK_ARMOR;
|
||||
}
|
||||
|
|
@ -1062,14 +1062,14 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
|
||||
// Soulstone Resurrection and Twisting Nether (resurrector)
|
||||
if( spellInfo_1->SpellIconID == 92 && spellInfo_2->SpellIconID == 92 && (
|
||||
spellInfo_1->SpellVisual == 99 && spellInfo_2->SpellVisual == 0 ||
|
||||
spellInfo_2->SpellVisual == 99 && spellInfo_1->SpellVisual == 0 ) )
|
||||
spellInfo_1->SpellVisual[0] == 99 && spellInfo_2->SpellVisual[0] == 0 ||
|
||||
spellInfo_2->SpellVisual[0] == 99 && spellInfo_1->SpellVisual[0] == 0 ) )
|
||||
return false;
|
||||
|
||||
// Heart of the Wild and (Primal Instinct (Idol of Terror) triggering spell or Agility)
|
||||
if( spellInfo_1->SpellIconID == 240 && spellInfo_2->SpellIconID == 240 && (
|
||||
spellInfo_1->SpellVisual == 0 && spellInfo_2->SpellVisual == 78 ||
|
||||
spellInfo_2->SpellVisual == 0 && spellInfo_1->SpellVisual == 78 ) )
|
||||
spellInfo_1->SpellVisual[0] == 0 && spellInfo_2->SpellVisual[0] == 78 ||
|
||||
spellInfo_2->SpellVisual[0] == 0 && spellInfo_1->SpellVisual[0] == 78 ) )
|
||||
return false;
|
||||
|
||||
// Personalized Weather (thunder effect should overwrite rainy aura)
|
||||
|
|
@ -1086,7 +1086,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
case SPELLFAMILY_WARRIOR:
|
||||
{
|
||||
// Scroll of Protection and Defensive Stance (multi-family check)
|
||||
if( spellInfo_1->SpellIconID == 276 && spellInfo_1->SpellVisual == 196 && spellInfo_2->Id == 71)
|
||||
if( spellInfo_1->SpellIconID == 276 && spellInfo_1->SpellVisual[0] == 196 && spellInfo_2->Id == 71)
|
||||
return false;
|
||||
|
||||
// Improved Hamstring -> Hamstring (multi-family check)
|
||||
|
|
@ -1098,7 +1098,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
case SPELLFAMILY_DRUID:
|
||||
{
|
||||
// Scroll of Stamina and Leader of the Pack (multi-family check)
|
||||
if( spellInfo_1->SpellIconID == 312 && spellInfo_1->SpellVisual == 216 && spellInfo_2->Id == 24932 )
|
||||
if( spellInfo_1->SpellIconID == 312 && spellInfo_1->SpellVisual[0] == 216 && spellInfo_2->Id == 24932 )
|
||||
return false;
|
||||
|
||||
// Dragonmaw Illusion (multi-family check)
|
||||
|
|
@ -1129,11 +1129,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Unstable Currents and other -> *Sanctity Aura (multi-family check)
|
||||
if( spellInfo_2->SpellIconID==502 && spellInfo_1->SpellIconID==502 && spellInfo_1->SpellVisual==969 )
|
||||
if( spellInfo_2->SpellIconID==502 && spellInfo_1->SpellIconID==502 && spellInfo_1->SpellVisual[0]==969 )
|
||||
return false;
|
||||
|
||||
// *Band of Eternal Champion and Seal of Command(multi-family check)
|
||||
if( spellId_1 == 35081 && spellInfo_2->SpellIconID==561 && spellInfo_2->SpellVisual==7992)
|
||||
if( spellId_1 == 35081 && spellInfo_2->SpellIconID==561 && spellInfo_2->SpellVisual[0]==7992)
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
|
@ -1149,16 +1149,16 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
return false;
|
||||
|
||||
// Blink & Improved Blink
|
||||
if( (spellInfo_1->SpellFamilyFlags & 0x0000000000010000LL) && (spellInfo_2->SpellVisual == 72 && spellInfo_2->SpellIconID == 1499) ||
|
||||
(spellInfo_2->SpellFamilyFlags & 0x0000000000010000LL) && (spellInfo_1->SpellVisual == 72 && spellInfo_1->SpellIconID == 1499) )
|
||||
if( (spellInfo_1->SpellFamilyFlags & 0x0000000000010000LL) && (spellInfo_2->SpellVisual[0] == 72 && spellInfo_2->SpellIconID == 1499) ||
|
||||
(spellInfo_2->SpellFamilyFlags & 0x0000000000010000LL) && (spellInfo_1->SpellVisual[0] == 72 && spellInfo_1->SpellIconID == 1499) )
|
||||
return false;
|
||||
}
|
||||
// Detect Invisibility and Mana Shield (multi-family check)
|
||||
if( spellInfo_2->Id == 132 && spellInfo_1->SpellIconID == 209 && spellInfo_1->SpellVisual == 968 )
|
||||
if( spellInfo_2->Id == 132 && spellInfo_1->SpellIconID == 209 && spellInfo_1->SpellVisual[0] == 968 )
|
||||
return false;
|
||||
|
||||
// Combustion and Fire Protection Aura (multi-family check)
|
||||
if( spellInfo_1->Id == 11129 && spellInfo_2->SpellIconID == 33 && spellInfo_2->SpellVisual == 321 )
|
||||
if( spellInfo_1->Id == 11129 && spellInfo_2->SpellIconID == 33 && spellInfo_2->SpellVisual[0] == 321 )
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
|
@ -1187,7 +1187,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
return false;
|
||||
}
|
||||
// Detect Invisibility and Mana Shield (multi-family check)
|
||||
if( spellInfo_1->Id == 132 && spellInfo_2->SpellIconID == 209 && spellInfo_2->SpellVisual == 968 )
|
||||
if( spellInfo_1->Id == 132 && spellInfo_2->SpellIconID == 209 && spellInfo_2->SpellVisual[0] == 968 )
|
||||
return false;
|
||||
break;
|
||||
case SPELLFAMILY_WARRIOR:
|
||||
|
|
@ -1209,11 +1209,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
return false;
|
||||
|
||||
// Defensive Stance and Scroll of Protection (multi-family check)
|
||||
if( spellInfo_1->Id == 71 && spellInfo_2->SpellIconID == 276 && spellInfo_2->SpellVisual == 196 )
|
||||
if( spellInfo_1->Id == 71 && spellInfo_2->SpellIconID == 276 && spellInfo_2->SpellVisual[0] == 196 )
|
||||
return false;
|
||||
|
||||
// Bloodlust and Bloodthirst (multi-family check)
|
||||
if( spellInfo_2->Id == 2825 && spellInfo_1->SpellIconID == 38 && spellInfo_1->SpellVisual == 0 )
|
||||
if( spellInfo_2->Id == 2825 && spellInfo_1->SpellIconID == 38 && spellInfo_1->SpellVisual[0] == 0 )
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
|
@ -1258,7 +1258,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
}
|
||||
|
||||
// Leader of the Pack and Scroll of Stamina (multi-family check)
|
||||
if( spellInfo_1->Id == 24932 && spellInfo_2->SpellIconID == 312 && spellInfo_2->SpellVisual == 216 )
|
||||
if( spellInfo_1->Id == 24932 && spellInfo_2->SpellIconID == 312 && spellInfo_2->SpellVisual[0] == 216 )
|
||||
return false;
|
||||
|
||||
// Dragonmaw Illusion (multi-family check)
|
||||
|
|
@ -1275,7 +1275,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
}
|
||||
|
||||
// Garrote -> Garrote-Silence (multi-family check)
|
||||
if( spellInfo_1->SpellIconID == 498 && spellInfo_2->SpellIconID == 498 && spellInfo_2->SpellVisual == 0 )
|
||||
if( spellInfo_1->SpellIconID == 498 && spellInfo_2->SpellIconID == 498 && spellInfo_2->SpellVisual[0] == 0 )
|
||||
return false;
|
||||
break;
|
||||
case SPELLFAMILY_HUNTER:
|
||||
|
|
@ -1312,15 +1312,15 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
return true;
|
||||
}
|
||||
// Combustion and Fire Protection Aura (multi-family check)
|
||||
if( spellInfo_2->Id == 11129 && spellInfo_1->SpellIconID == 33 && spellInfo_1->SpellVisual == 321 )
|
||||
if( spellInfo_2->Id == 11129 && spellInfo_1->SpellIconID == 33 && spellInfo_1->SpellVisual[0] == 321 )
|
||||
return false;
|
||||
|
||||
// *Sanctity Aura -> Unstable Currents and other (multi-family check)
|
||||
if( spellInfo_1->SpellIconID==502 && spellInfo_2->SpellFamilyName == SPELLFAMILY_GENERIC && spellInfo_2->SpellIconID==502 && spellInfo_2->SpellVisual==969 )
|
||||
if( spellInfo_1->SpellIconID==502 && spellInfo_2->SpellFamilyName == SPELLFAMILY_GENERIC && spellInfo_2->SpellIconID==502 && spellInfo_2->SpellVisual[0]==969 )
|
||||
return false;
|
||||
|
||||
// *Seal of Command and Band of Eternal Champion (multi-family check)
|
||||
if( spellInfo_1->SpellIconID==561 && spellInfo_1->SpellVisual==7992 && spellId_2 == 35081)
|
||||
if( spellInfo_1->SpellIconID==561 && spellInfo_1->SpellVisual[0]==7992 && spellId_2 == 35081)
|
||||
return false;
|
||||
break;
|
||||
case SPELLFAMILY_SHAMAN:
|
||||
|
|
@ -1336,7 +1336,7 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
|||
return false;
|
||||
}
|
||||
// Bloodlust and Bloodthirst (multi-family check)
|
||||
if( spellInfo_1->Id == 2825 && spellInfo_2->SpellIconID == 38 && spellInfo_2->SpellVisual == 0 )
|
||||
if( spellInfo_1->Id == 2825 && spellInfo_2->SpellIconID == 38 && spellInfo_2->SpellVisual[0] == 0 )
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -234,12 +234,12 @@ enum SpellFamilyNames
|
|||
SPELLFAMILY_HUNTER = 9,
|
||||
SPELLFAMILY_PALADIN = 10,
|
||||
SPELLFAMILY_SHAMAN = 11,
|
||||
SPELLFAMILY_UNK2 = 12,
|
||||
SPELLFAMILY_UNK2 = 12, // 2 spells (silence resistance)
|
||||
SPELLFAMILY_POTION = 13,
|
||||
// 14 - unused
|
||||
SPELLFAMILY_DEATHKNIGHT = 15,
|
||||
// 16 - unused
|
||||
SPELLFAMILY_UNK3 = 17
|
||||
SPELLFAMILY_PET = 17
|
||||
};
|
||||
|
||||
//Some SpellFamilyFlags
|
||||
|
|
|
|||
|
|
@ -6023,7 +6023,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
|||
break;
|
||||
}
|
||||
// Shadowguard
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x80000000LL) && auraSpellInfo->SpellVisual==7958)
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x80000000LL) && auraSpellInfo->SpellVisual[0]==7958)
|
||||
{
|
||||
switch(triggeredByAura->GetSpellProto()->Id)
|
||||
{
|
||||
|
|
@ -6382,14 +6382,14 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
|||
}
|
||||
|
||||
// Water Shield (we can't set cooldown for main spell - it's player casted spell
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x0000002000000000LL) && auraSpellInfo->SpellVisual==7358)
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x0000002000000000LL) && auraSpellInfo->SpellVisual[0]==7358)
|
||||
{
|
||||
target = this;
|
||||
break;
|
||||
}
|
||||
|
||||
// Lightning Shield
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x00000400) && auraSpellInfo->SpellVisual==37)
|
||||
if((auraSpellInfo->SpellFamilyFlags & 0x00000400) && auraSpellInfo->SpellVisual[0]==37)
|
||||
{
|
||||
// overwrite non existing triggered spell call in spell.dbc
|
||||
switch(triggeredByAura->GetSpellProto()->Id)
|
||||
|
|
@ -6475,21 +6475,21 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, int32 scriptId, uint
|
|||
{
|
||||
case 836: // Improved Blizzard (Rank 1)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual!=9487)
|
||||
if (!procSpell || procSpell->SpellVisual[0]!=9487)
|
||||
return false;
|
||||
triggered_spell_id = 12484;
|
||||
break;
|
||||
}
|
||||
case 988: // Improved Blizzard (Rank 2)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual!=9487)
|
||||
if (!procSpell || procSpell->SpellVisual[0]!=9487)
|
||||
return false;
|
||||
triggered_spell_id = 12485;
|
||||
break;
|
||||
}
|
||||
case 989: // Improved Blizzard (Rank 3)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual!=9487)
|
||||
if (!procSpell || procSpell->SpellVisual[0]!=9487)
|
||||
return false;
|
||||
triggered_spell_id = 12486;
|
||||
break;
|
||||
|
|
@ -7772,7 +7772,7 @@ uint32 Unit::SpellHealingBonus(SpellEntry const *spellProto, uint32 healamount,
|
|||
AuraList const& mDummyAuras = pVictim->GetAurasByType(SPELL_AURA_DUMMY);
|
||||
for(AuraList::const_iterator i = mDummyAuras.begin();i != mDummyAuras.end(); ++i)
|
||||
{
|
||||
if((*i)->GetSpellProto()->SpellVisual == 9180)
|
||||
if((*i)->GetSpellProto()->SpellVisual[0] == 9180)
|
||||
{
|
||||
// Flash of Light
|
||||
if ((spellProto->SpellFamilyFlags & 0x0000000040000000LL) && (*i)->GetEffIndex() == 1)
|
||||
|
|
|
|||
|
|
@ -1088,8 +1088,7 @@ struct SpellEntry
|
|||
//uint32 EffectSpellClassMaskA[3]; // 125-127 m_effectSpellClassMaskA not used
|
||||
//uint32 EffectSpellClassMaskB[3]; // 128-130 m_effectSpellClassMaskB not used
|
||||
//uint32 EffectSpellClassMaskC[3]; // 131-133 m_effectSpellClassMaskC not used
|
||||
uint32 SpellVisual; // 134 m_spellVisualID
|
||||
// 135 not used - no data and name in client?
|
||||
uint32 SpellVisual[2]; // 134-135 m_spellVisualID
|
||||
uint32 SpellIconID; // 136 m_spellIconID
|
||||
uint32 activeIconID; // 137 m_activeIconID
|
||||
//uint32 spellPriority; // 138 m_spellPriority not used
|
||||
|
|
@ -1107,19 +1106,20 @@ struct SpellEntry
|
|||
uint32 MaxTargetLevel; // 210 m_maxTargetLevel
|
||||
uint32 SpellFamilyName; // 211 m_spellClassSet
|
||||
uint64 SpellFamilyFlags; // 212-213 m_spellClassMask
|
||||
uint32 MaxAffectedTargets; // 214 m_maxTargets
|
||||
uint32 DmgClass; // 215 m_defenseType
|
||||
uint32 PreventionType; // 216 m_preventionType
|
||||
//uint32 StanceBarOrder; // 217 m_stanceBarOrder not used
|
||||
float DmgMultiplier[3]; // 218-220 m_effectChainAmplitude
|
||||
//uint32 MinFactionId; // 221 m_minFactionID not used
|
||||
//uint32 MinReputation; // 222 m_minReputation not used
|
||||
//uint32 RequiredAuraVision; // 223 m_requiredAuraVision not used
|
||||
uint32 TotemCategory[2]; // 224-225 m_requiredTotemCategoryID
|
||||
int32 AreaId; // 226 m_requiredAreasID
|
||||
uint32 SchoolMask; // 227 m_schoolMask
|
||||
uint32 runeCostID; // 228 m_runeCostID
|
||||
//uint32 spellMissileID; // 229 m_spellMissileID not used
|
||||
uint32 SpellFamilyFlags2; // 214 addition to m_spellClassMask
|
||||
uint32 MaxAffectedTargets; // 215 m_maxTargets
|
||||
uint32 DmgClass; // 216 m_defenseType
|
||||
uint32 PreventionType; // 217 m_preventionType
|
||||
//uint32 StanceBarOrder; // 218 m_stanceBarOrder not used
|
||||
float DmgMultiplier[3]; // 219-221 m_effectChainAmplitude
|
||||
//uint32 MinFactionId; // 222 m_minFactionID not used
|
||||
//uint32 MinReputation; // 223 m_minReputation not used
|
||||
//uint32 RequiredAuraVision; // 224 m_requiredAuraVision not used
|
||||
uint32 TotemCategory[2]; // 225-226 m_requiredTotemCategoryID
|
||||
int32 AreaId; // 227 m_requiredAreasID
|
||||
uint32 SchoolMask; // 228 m_schoolMask
|
||||
uint32 runeCostID; // 229 m_runeCostID
|
||||
//uint32 spellMissileID; // 230 m_spellMissileID not used
|
||||
|
||||
private:
|
||||
// prevent creating custom entries (copy data from original in fact)
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ const char SkillLineAbilityfmt[]="niiiixxiiiiixx";
|
|||
const char SoundEntriesfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
const char SpellCastTimefmt[]="nixx";
|
||||
const char SpellDurationfmt[]="niii";
|
||||
const char SpellEntryfmt[]="niiiiiiiiixiiiiiiiiiixxxxiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffxxxxxxxxxixiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiixiiixfffxxxiiiiix";
|
||||
const char SpellEntryfmt[]="niiiiiiiiixiiiiiiiiiixxxxiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffxxxxxxxxxiiiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiixfffxxxiiiiix";
|
||||
const char SpellFocusObjectfmt[]="nxxxxxxxxxxxxxxxxx";
|
||||
const char SpellItemEnchantmentfmt[]="nxiiiiiixxxiiissssssssssssssssxiiiixx";
|
||||
const char SpellItemEnchantmentConditionfmt[]="nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue