mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[8899] Implement glyph 43374
Original patch provided by Splinter. Also sort Unit::HandleDummyAuraProc generic family spells in case.
This commit is contained in:
parent
cd2ec48742
commit
840fad2d07
7 changed files with 51 additions and 33 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
`creature_ai_version` varchar(120) default NULL,
|
`creature_ai_version` varchar(120) default NULL,
|
||||||
`cache_id` int(10) default '0',
|
`cache_id` int(10) default '0',
|
||||||
`required_8893_01_mangos_mangos_string` bit(1) default NULL
|
`required_8899_01_mangos_spell_proc_event` bit(1) default NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
@ -18325,6 +18325,7 @@ INSERT INTO `spell_proc_event` VALUES
|
||||||
(57878, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57878, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
(57880, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57880, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
(57881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
(57881, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0.000000, 0.000000, 0),
|
||||||
|
(57989, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(58357, 0x00000000, 4, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
(58357, 0x00000000, 4, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0),
|
||||||
(58364, 0x00000000, 4, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(58364, 0x00000000, 4, 0x00000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
(58372, 0x00000000, 4, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
(58372, 0x00000000, 4, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0),
|
||||||
|
|
|
||||||
5
sql/updates/8899_01_mangos_spell_proc_event.sql
Normal file
5
sql/updates/8899_01_mangos_spell_proc_event.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_8893_01_mangos_mangos_string required_8899_01_mangos_spell_proc_event bit;
|
||||||
|
|
||||||
|
DELETE FROM `spell_proc_event` WHERE `entry` IN (57989);
|
||||||
|
INSERT INTO `spell_proc_event` VALUES
|
||||||
|
(57989, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0.000000, 0.000000, 0);
|
||||||
|
|
@ -184,6 +184,7 @@ pkgdata_DATA = \
|
||||||
8889_01_mangos_spell_pet_auras.sql \
|
8889_01_mangos_spell_pet_auras.sql \
|
||||||
8891_01_mangos_spell_proc_event.sql \
|
8891_01_mangos_spell_proc_event.sql \
|
||||||
8893_01_mangos_mangos_string.sql \
|
8893_01_mangos_mangos_string.sql \
|
||||||
|
8899_01_mangos_spell_proc_event.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -348,4 +349,5 @@ EXTRA_DIST = \
|
||||||
8889_01_mangos_spell_pet_auras.sql \
|
8889_01_mangos_spell_pet_auras.sql \
|
||||||
8891_01_mangos_spell_proc_event.sql \
|
8891_01_mangos_spell_proc_event.sql \
|
||||||
8893_01_mangos_mangos_string.sql \
|
8893_01_mangos_mangos_string.sql \
|
||||||
|
8899_01_mangos_spell_proc_event.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -2362,7 +2362,6 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
||||||
caster->InterruptSpell(CURRENT_CHANNELED_SPELL);
|
caster->InterruptSpell(CURRENT_CHANNELED_SPELL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4762,6 +4762,10 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
triggered_spell_id = 26654;
|
triggered_spell_id = 26654;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// Twisted Reflection (boss spell)
|
||||||
|
case 21063:
|
||||||
|
triggered_spell_id = 21064;
|
||||||
|
break;
|
||||||
// Unstable Power
|
// Unstable Power
|
||||||
case 24658:
|
case 24658:
|
||||||
{
|
{
|
||||||
|
|
@ -4852,6 +4856,30 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
triggered_spell_id = 34650;
|
triggered_spell_id = 34650;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// Divine purpose
|
||||||
|
case 31871:
|
||||||
|
case 31872:
|
||||||
|
{
|
||||||
|
// Roll chane
|
||||||
|
if (!roll_chance_i(triggerAmount))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Remove any stun effect on target
|
||||||
|
AuraMap& Auras = pVictim->GetAuras();
|
||||||
|
for(AuraMap::const_iterator iter = Auras.begin(); iter != Auras.end();)
|
||||||
|
{
|
||||||
|
SpellEntry const *spell = iter->second->GetSpellProto();
|
||||||
|
if( spell->Mechanic == MECHANIC_STUN ||
|
||||||
|
spell->EffectMechanic[iter->second->GetEffIndex()] == MECHANIC_STUN)
|
||||||
|
{
|
||||||
|
pVictim->RemoveAurasDueToSpell(spell->Id);
|
||||||
|
iter = Auras.begin();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
++iter;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
// Mark of Malice
|
// Mark of Malice
|
||||||
case 33493:
|
case 33493:
|
||||||
{
|
{
|
||||||
|
|
@ -4863,10 +4891,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
triggered_spell_id = 33494;
|
triggered_spell_id = 33494;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Twisted Reflection (boss spell)
|
|
||||||
case 21063:
|
|
||||||
triggered_spell_id = 21064;
|
|
||||||
break;
|
|
||||||
// Vampiric Aura (boss spell)
|
// Vampiric Aura (boss spell)
|
||||||
case 38196:
|
case 38196:
|
||||||
{
|
{
|
||||||
|
|
@ -4936,12 +4960,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
((Player*)this)->Say("This is Madness!", LANG_UNIVERSAL);
|
((Player*)this)->Say("This is Madness!", LANG_UNIVERSAL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
// Sunwell Exalted Caster Neck (??? neck)
|
|
||||||
// cast ??? Light's Wrath if Exalted by Aldor
|
|
||||||
// cast ??? Arcane Bolt if Exalted by Scryers*/
|
|
||||||
case 46569:
|
|
||||||
return false; // old unused version
|
|
||||||
// Sunwell Exalted Caster Neck (Shattered Sun Pendant of Acumen neck)
|
// Sunwell Exalted Caster Neck (Shattered Sun Pendant of Acumen neck)
|
||||||
// cast 45479 Light's Wrath if Exalted by Aldor
|
// cast 45479 Light's Wrath if Exalted by Aldor
|
||||||
// cast 45429 Arcane Bolt if Exalted by Scryers
|
// cast 45429 Arcane Bolt if Exalted by Scryers
|
||||||
|
|
@ -5050,6 +5068,12 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
// Sunwell Exalted Caster Neck (??? neck)
|
||||||
|
// cast ??? Light's Wrath if Exalted by Aldor
|
||||||
|
// cast ??? Arcane Bolt if Exalted by Scryers*/
|
||||||
|
case 46569:
|
||||||
|
return false; // old unused version
|
||||||
// Living Seed
|
// Living Seed
|
||||||
case 48504:
|
case 48504:
|
||||||
{
|
{
|
||||||
|
|
@ -5067,28 +5091,15 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||||
target = this;
|
target = this;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Divine purpose
|
// Shadowfiend Death (Gain mana if pet dies with Glyph of Shadowfiend)
|
||||||
case 31871:
|
case 57989:
|
||||||
case 31872:
|
|
||||||
{
|
{
|
||||||
// Roll chane
|
Unit *owner = GetOwner();
|
||||||
if (!roll_chance_i(triggerAmount))
|
if (!owner || owner->GetTypeId() != TYPEID_PLAYER)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Remove any stun effect on target
|
// Glyph of Shadowfiend (need cast as self cast for owner, no hidden cooldown)
|
||||||
AuraMap& Auras = pVictim->GetAuras();
|
owner->CastSpell(owner,58227,true,castItem,triggeredByAura);
|
||||||
for(AuraMap::const_iterator iter = Auras.begin(); iter != Auras.end();)
|
|
||||||
{
|
|
||||||
SpellEntry const *spell = iter->second->GetSpellProto();
|
|
||||||
if( spell->Mechanic == MECHANIC_STUN ||
|
|
||||||
spell->EffectMechanic[iter->second->GetEffIndex()] == MECHANIC_STUN)
|
|
||||||
{
|
|
||||||
pVictim->RemoveAurasDueToSpell(spell->Id);
|
|
||||||
iter = Auras.begin();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
++iter;
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8898"
|
#define REVISION_NR "8899"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#ifndef __REVISION_SQL_H__
|
#ifndef __REVISION_SQL_H__
|
||||||
#define __REVISION_SQL_H__
|
#define __REVISION_SQL_H__
|
||||||
#define REVISION_DB_CHARACTERS "required_8874_01_characters_character_skills"
|
#define REVISION_DB_CHARACTERS "required_8874_01_characters_character_skills"
|
||||||
#define REVISION_DB_MANGOS "required_8893_01_mangos_mangos_string"
|
#define REVISION_DB_MANGOS "required_8899_01_mangos_spell_proc_event"
|
||||||
#define REVISION_DB_REALMD "required_8728_01_realmd_account"
|
#define REVISION_DB_REALMD "required_8728_01_realmd_account"
|
||||||
#endif // __REVISION_SQL_H__
|
#endif // __REVISION_SQL_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue