[10430] Improve detection removed ranks for spell in spell_chain

This commit is contained in:
VladimirMangos 2010-08-31 19:01:38 +04:00
parent 055c6b4184
commit 7df3f06d87
6 changed files with 37 additions and 53 deletions

View file

@ -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_10427_01_mangos_spell_proc_event` bit(1) default NULL `required_10430_01_mangos_spell_chain` 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';
-- --
@ -14757,14 +14757,6 @@ INSERT INTO spell_chain VALUES
(42858,27074,2948,10,0), (42858,27074,2948,10,0),
(42859,42858,2948,11,0), (42859,42858,2948,11,0),
/*------------------ /*------------------
--(39)Subtlety
------------------*/
/*Stealth*/
(1784,0,1784,1,0),
(1785,1784,1784,2,0),
(1786,1785,1784,3,0),
(1787,1786,1784,4,0),
/*------------------
-- (50) Beast Mastery -- (50) Beast Mastery
------------------*/ ------------------*/
/*Aspect of the Dragonhawk*/ /*Aspect of the Dragonhawk*/
@ -15098,13 +15090,6 @@ INSERT INTO spell_chain VALUES
(48159,34917,34914,4,0), (48159,34917,34914,4,0),
(48160,48159,34914,5,0), (48160,48159,34914,5,0),
/*------------------ /*------------------
-- (134) Feral Combat (Druid)
------------------*/
/*Prowl*/
(5215,0,5215,1,0),
(6783,5215,5215,2,0),
(9913,6783,5215,3,0),
/*------------------
--(163)Marksmanship --(163)Marksmanship
------------------*/ ------------------*/
/*Aimed Shot*/ /*Aimed Shot*/
@ -15374,17 +15359,6 @@ INSERT INTO spell_chain VALUES
(43987,0,43987,1,0), (43987,0,43987,1,0),
(58659,43987,43987,2,0), (58659,43987,43987,2,0),
/*------------------ /*------------------
--(253)Assassination
------------------*/
/*ExposeArmor*/
(8647,0,8647,1,0),
(8649,8647,8647,2,0),
(8650,8649,8647,3,0),
(11197,8650,8647,4,0),
(11198,11197,8647,5,0),
(26866,11198,8647,6,0),
(48669,26866,8647,7,0),
/*------------------
-- (267) Protection (Paladin) -- (267) Protection (Paladin)
------------------*/ ------------------*/
/*Avenger'sShield*/ /*Avenger'sShield*/
@ -15419,17 +15393,6 @@ INSERT INTO spell_chain VALUES
(53600,0,53600,1,0), (53600,0,53600,1,0),
(61411,53600,53600,2,0), (61411,53600,53600,2,0),
/*------------------ /*------------------
--(270)Pet-GenericHunter
------------------*/
/*Cower*/
(1742,0,1742,1,0),
(1753,1742,1742,2,0),
(1754,1753,1742,3,0),
(1755,1754,1742,4,0),
(1756,1755,1742,5,0),
(16697,1756,1742,6,0),
(27048,16697,1742,7,0),
/*------------------
--(354)Demonology --(354)Demonology
------------------*/ ------------------*/
/*Banish*/ /*Banish*/
@ -16450,18 +16413,6 @@ INSERT INTO spell_chain VALUES
(62902,62901,62900,3,0), (62902,62901,62900,3,0),
(62903,62902,62900,4,0), (62903,62902,62900,4,0),
(62904,62903,62900,5,0), (62904,62903,62900,5,0),
/*Pestilence*/
(50842,0,50842,1,0),
(51426,50842,50842,2,0),
(51427,51426,50842,3,0),
(51428,51427,50842,4,0),
(51429,51428,50842,5,0),
/*Strangulate*/
(47476,0,47476,1,0),
(49913,47476,47476,2,0),
(49914,49913,47476,3,0),
(49915,49914,47476,4,0),
(49916,49915,47476,5,0),
/*------------------ /*------------------
--(771)Frost --(771)Frost
------------------*/ ------------------*/

View file

@ -0,0 +1,3 @@
ALTER TABLE db_version CHANGE COLUMN required_10427_01_mangos_spell_proc_event required_10430_01_mangos_spell_chain bit;
DELETE FROM spell_chain WHERE first_spell IN (1742, 1784, 5215, 8647, 47476, 50842);

View file

@ -93,6 +93,7 @@ pkgdata_DATA = \
10422_01_mangos_spell_proc_event.sql \ 10422_01_mangos_spell_proc_event.sql \
10423_01_mangos_spell_chain.sql \ 10423_01_mangos_spell_chain.sql \
10427_01_mangos_spell_proc_event.sql \ 10427_01_mangos_spell_proc_event.sql \
10430_01_mangos_spell_chain.sql \
README README
## Additional files to include when running 'make dist' ## Additional files to include when running 'make dist'
@ -166,4 +167,5 @@ EXTRA_DIST = \
10422_01_mangos_spell_proc_event.sql \ 10422_01_mangos_spell_proc_event.sql \
10423_01_mangos_spell_chain.sql \ 10423_01_mangos_spell_chain.sql \
10427_01_mangos_spell_proc_event.sql \ 10427_01_mangos_spell_proc_event.sql \
10430_01_mangos_spell_chain.sql \
README README

View file

@ -2627,6 +2627,34 @@ void SpellMgr::LoadSpellChains()
continue; continue;
}*/ }*/
} }
}
// removed ranks often still listed as forward in skill abilities but not listed as spell in it
if (node.prev)
{
bool skip = false;
// some forward spells still exist but excluded from real use as ranks and not listed in skill abilities now
SkillLineAbilityMap::const_iterator forward_ab_low = mSkillLineAbilityMap.lower_bound(spell_id);
SkillLineAbilityMap::const_iterator forward_ab_up = mSkillLineAbilityMap.upper_bound(spell_id);
if (forward_ab_low == forward_ab_up)
{
for(SkillLineAbilityMap::const_iterator ab_itr = mSkillLineAbilityMap.lower_bound(node.prev); ab_itr != mSkillLineAbilityMap.upper_bound(node.prev); ++ab_itr)
{
// spell listed as forward and not listed as ability
// this is marker for removed ranks
if (ab_itr->second->forward_spellid == spell_id)
{
sLog.outErrorDb("Spell %u (prev: %u, first: %u, rank: %d, req: %u) listed in `spell_chain` is removed rank by DBC data.",
spell_id, node.prev, node.first, node.rank, node.req);
skip = true;
break;
}
}
}
if (skip)
continue;
} }
mSpellChains[spell_id] = node; mSpellChains[spell_id] = node;
@ -2697,7 +2725,7 @@ void SpellMgr::LoadSpellChains()
mSpellChainsNext.insert(SpellChainMapNext::value_type(node.req,spell_id)); mSpellChainsNext.insert(SpellChainMapNext::value_type(node.req,spell_id));
} }
// check single rank redundant cases (single rank talents not added by default so this can be only custom cases) // check single rank redundant cases (single rank talents/spell abilities not added by default so this can be only custom cases)
for(SpellChainMap::const_iterator i = mSpellChains.begin(); i != mSpellChains.end(); ++i) for(SpellChainMap::const_iterator i = mSpellChains.begin(); i != mSpellChains.end(); ++i)
{ {
// skip non-first ranks, and spells with additional reqs // skip non-first ranks, and spells with additional reqs

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10429" #define REVISION_NR "10430"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__

View file

@ -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_10332_02_characters_pet_aura" #define REVISION_DB_CHARACTERS "required_10332_02_characters_pet_aura"
#define REVISION_DB_MANGOS "required_10427_01_mangos_spell_proc_event" #define REVISION_DB_MANGOS "required_10430_01_mangos_spell_chain"
#define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version"
#endif // __REVISION_SQL_H__ #endif // __REVISION_SQL_H__