mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[10743] Add AP/RAP bonus data to spell_bonus_data.
Also remove related hardcoded cases. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
f27741460f
commit
355f172fc6
8 changed files with 116 additions and 78 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
|||
`version` varchar(120) default NULL,
|
||||
`creature_ai_version` varchar(120) default NULL,
|
||||
`cache_id` int(10) default '0',
|
||||
`required_10742_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||
`required_10743_02_mangos_spell_bonus_data` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
@ -14368,10 +14368,13 @@ LOCK TABLES `spell_bonus_data` WRITE;
|
|||
INSERT INTO `spell_bonus_data` VALUES
|
||||
/* Death Knight */
|
||||
(48721, 0, 0, 0.04, 0, 'Death Knight - Blood Boil'),
|
||||
(55078, 0, 0, 0, 0.06325,'Death Knight - Blood Plague'),
|
||||
(50444, 0, 0, 0.105, 0, 'Death Knight - Corpse Explosion Triggered'),
|
||||
(52212, 0, 0, 0.0475,0, 'Death Knight - Death and Decay Triggered'),
|
||||
(47632, 0, 0, 0.15, 0, 'Death Knight - Death Coil Damage'),
|
||||
(47633, 0, 0, 0.15, 0, 'Death Knight - Death Coil Heal'),
|
||||
(48743, 0, 0, 0, 0, 'Death Knight - Death Pact'),
|
||||
(55095, 0, 0, 0, 0.06325,'Death Knight - Frost Fever'),
|
||||
(49184, 0, 0, 0.1, 0, 'Death Knight - Howling Blast'),
|
||||
(45477, 0, 0, 0.1, 0, 'Death Knight - Icy Touch'),
|
||||
(56903, 0, 0, 0, 0, 'Death Knight - Lichflame'),
|
||||
|
|
@ -14379,16 +14382,19 @@ INSERT INTO `spell_bonus_data` VALUES
|
|||
(50401, 0, 0, 0, 0, 'Death Knight - Razor Frost'),
|
||||
(47476, 0, 0, 0.06, 0, 'Death Knight - Strangulate'),
|
||||
(50536, 0, 0, 0, 0.013, 'Death Knight - Unholy Blight Triggered'),
|
||||
(48743, 0, 0, 0, 0, 'Death Knight - Death Pact'),
|
||||
/* Druid */
|
||||
(5185, 1.6104, 0, 0, 0, 'Druid - Healing Touch'),
|
||||
(339, 0, 0.1, 0, 0, 'Druid - Entangling Roots'),
|
||||
(60089, 0, 0, 0.15, 0, 'Druid - Faerie Fire (Feral) Triggered'),
|
||||
(42231, 0.12898,0, 0, 0, 'Druid - Hurricane Triggered'),
|
||||
(5570, 0, 0.2, 0, 0, 'Druid - Insect Swarm'),
|
||||
(33745, 0, 0, 0.01, 0.01, 'Druid - Lacerate'),
|
||||
(33763, 0, 0.09518, 0, 0, 'Druid - Lifebloom'),
|
||||
(48628, 0, 0, 0, 0.15, 'Druid - Lock Jaw'),
|
||||
(8921, 0.1515, 0.13, 0, 0, 'Druid - Moonfire'),
|
||||
(50464, 0.6611, 0, 0, 0, 'Druid - Nourish'),
|
||||
(9007, 0, 0, 0, 0.03, 'Druid - Pounce Bleed'),
|
||||
(1822, 0, 0, 0, 0.06, 'Druid - Rake'),
|
||||
(8936, 0.539, 0.188, 0, 0, 'Druid - Regrowth'),
|
||||
(50288, 0.05, 0, 0, 0, 'Druid - Starfall'),
|
||||
(50294, 0.012, 0, 0, 0, 'Druid - Starfall AOE'),
|
||||
|
|
@ -14398,6 +14404,15 @@ INSERT INTO `spell_bonus_data` VALUES
|
|||
(5176, 0.5714, 0, 0, 0, 'Druid - Wrath'),
|
||||
/* Generic */
|
||||
(54757, 0, 0, 0, 0, 'Generic - Pyro Rocket'),
|
||||
/* Hunter */
|
||||
(3044, 0, 0, 0.15, 0, 'Hunter - Arcane Shot'),
|
||||
(3674, 0, 0, 0, 0.02, 'Hunter - Black Arrow'),
|
||||
(19306, 0, 0, 0.2, 0, 'Hunter - Counterattack'),
|
||||
(13812, 0, 0, 0.1, 0.1, 'Hunter - Explosive Trap'),
|
||||
(13797, 0, 0, 0, 0.02, 'Hunter - Immolation Trap'),
|
||||
(1495, 0, 0, 0.2, 0, 'Hunter - Mongoose Bite'),
|
||||
(1978, 0, 0, 0, 0.04, 'Hunter - Serpent Sting'),
|
||||
(42243, 0, 0, 0.0837,0, 'Hunter - Volley'),
|
||||
/* Mage */
|
||||
(44425, 0.714286,0, 0, 0, 'Mage - Arcane Barrage'),
|
||||
(7268, 0.2857, 0, 0, 0, 'Mage - Arcane Missiles Triggered Spell'),
|
||||
|
|
@ -14447,6 +14462,9 @@ INSERT INTO `spell_bonus_data` VALUES
|
|||
(585, 0.714, 0, 0, 0, 'Priest - Smite'),
|
||||
(34914, 0, 0.4, 0, 0, 'Priest - Vampiric Touch'),
|
||||
(64085, 1.2, 0, 0, 0, 'Priest - Vampiric Touch Dispel'),
|
||||
/* Rogue */
|
||||
(2818, 0, 0, 0, 0.03, 'Rogue - Deadly Poison'),
|
||||
(703, 0, 0, 0, 0.07, 'Rogue - Garrote'),
|
||||
/* Shaman */
|
||||
(974, 0.4762, 0, 0, 0, 'Shaman - Earth Shield'),
|
||||
(379, 0, 0, 0, 0, 'Shaman - Earth Shield Triggered'),
|
||||
|
|
@ -14525,6 +14543,16 @@ INSERT INTO spell_chain VALUES
|
|||
-- ------------------
|
||||
-- (0) Not associated with skills
|
||||
-- ------------------
|
||||
/* Deadly Poison Triggered */
|
||||
(2818,0,2818,1,0),
|
||||
(2819,2818,2818,2,0),
|
||||
(11353,2819,2818,3,0),
|
||||
(11354,11353,2818,4,0),
|
||||
(25349,11354,2818,5,0),
|
||||
(26968,25349,2818,6,0),
|
||||
(27187,26968,2818,7,0),
|
||||
(57969,27187,2818,8,0),
|
||||
(57970,57969,2818,9,0),
|
||||
/* Flametongue Weapon Proc */
|
||||
(8026,0,8026,1,0),
|
||||
(8028,8026,8026,2,0),
|
||||
|
|
@ -14845,6 +14873,13 @@ INSERT INTO spell_chain VALUES
|
|||
(27025,14317,13813,4,0),
|
||||
(49066,27025,13813,5,0),
|
||||
(49067,49066,13813,6,0),
|
||||
/* Explosive Trap Effect */
|
||||
(13812,0,13812,1,0),
|
||||
(14314,13812,13812,2,0),
|
||||
(14315,14314,13812,3,0),
|
||||
(27026,14315,13812,4,0),
|
||||
(49064,27026,13812,5,0),
|
||||
(49065,49064,13812,6,0),
|
||||
/* Freezing Trap */
|
||||
(1499,0,1499,1,0),
|
||||
(14310,1499,1499,2,0),
|
||||
|
|
@ -14858,6 +14893,15 @@ INSERT INTO spell_chain VALUES
|
|||
(27023,14305,13795,6,0),
|
||||
(49055,27023,13795,7,0),
|
||||
(49056,49055,13795,8,0),
|
||||
/* Immolation Trap Triggered */
|
||||
(13797,0,13797,1,0),
|
||||
(14298,13797,13797,2,0),
|
||||
(14299,14298,13797,3,0),
|
||||
(14300,14299,13797,4,0),
|
||||
(14301,14300,13797,5,0),
|
||||
(27024,14301,13797,6,0),
|
||||
(49053,27024,13797,7,0),
|
||||
(49054,49053,13797,8,0),
|
||||
/* Mongoose Bite */
|
||||
(1495,0,1495,1,0),
|
||||
(14269,1495,1495,2,0),
|
||||
|
|
@ -15183,6 +15227,13 @@ INSERT INTO spell_chain VALUES
|
|||
(27022,14295,1510,4,0),
|
||||
(58431,27022,1510,5,0),
|
||||
(58434,58431,1510,6,0),
|
||||
/* Volley Triggered */
|
||||
(42243,0,42243,1,0),
|
||||
(42244,42243,42243,2,0),
|
||||
(42245,42244,42243,3,0),
|
||||
(42234,42245,42243,4,0),
|
||||
(58432,42234,42243,5,0),
|
||||
(58433,58432,42243,6,0),
|
||||
-- ------------------
|
||||
-- (164) Blacksmithing
|
||||
-- ------------------
|
||||
|
|
|
|||
37
sql/updates/10743_01_mangos_spell_chain.sql
Normal file
37
sql/updates/10743_01_mangos_spell_chain.sql
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_10742_01_mangos_spell_bonus_data required_10743_01_mangos_spell_chain bit;
|
||||
|
||||
DELETE FROM `spell_chain` WHERE `first_spell` IN (2818,13797,13812,42243);
|
||||
INSERT INTO `spell_chain` VALUES
|
||||
/* Explosive Trap Effect */
|
||||
(13812,0,13812,1,0),
|
||||
(14314,13812,13812,2,0),
|
||||
(14315,14314,13812,3,0),
|
||||
(27026,14315,13812,4,0),
|
||||
(49064,27026,13812,5,0),
|
||||
(49065,49064,13812,6,0),
|
||||
/* Immolation Trap Triggered */
|
||||
(13797,0,13797,1,0),
|
||||
(14298,13797,13797,2,0),
|
||||
(14299,14298,13797,3,0),
|
||||
(14300,14299,13797,4,0),
|
||||
(14301,14300,13797,5,0),
|
||||
(27024,14301,13797,6,0),
|
||||
(49053,27024,13797,7,0),
|
||||
(49054,49053,13797,8,0),
|
||||
/* Volley Triggered */
|
||||
(42243,0,42243,1,0),
|
||||
(42244,42243,42243,2,0),
|
||||
(42245,42244,42243,3,0),
|
||||
(42234,42245,42243,4,0),
|
||||
(58432,42234,42243,5,0),
|
||||
(58433,58432,42243,6,0),
|
||||
/* Deadly Poison Triggered */
|
||||
(2818,0,2818,1,0),
|
||||
(2819,2818,2818,2,0),
|
||||
(11353,2819,2818,3,0),
|
||||
(11354,11353,2818,4,0),
|
||||
(25349,11354,2818,5,0),
|
||||
(26968,25349,2818,6,0),
|
||||
(27187,26968,2818,7,0),
|
||||
(57969,27187,2818,8,0),
|
||||
(57970,57969,2818,9,0);
|
||||
20
sql/updates/10743_02_mangos_spell_bonus_data.sql
Normal file
20
sql/updates/10743_02_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_10743_01_mangos_spell_chain required_10743_02_mangos_spell_bonus_data bit;
|
||||
|
||||
DELETE FROM `spell_bonus_data` WHERE `entry` IN (2818,42243,13797,13812,1495,19306,3044,42245,3674,9007,1822,33745,48628,703,1978,55095,55078);
|
||||
INSERT INTO `spell_bonus_data` VALUES
|
||||
(2818,0,0,0,0.03,'Rogue - Deadly Poison'),
|
||||
(3674,0,0,0,0.02,'Hunter - Black Arrow'),
|
||||
(9007,0,0,0,0.03,'Druid - Pounce Bleed'),
|
||||
(1822,0,0,0,0.06,'Druid - Rake'),
|
||||
(33745,0,0,0.01,0.01,'Druid - Lacerate'),
|
||||
(48628,0,0,0,0.15,'Druid - Lock Jaw'),
|
||||
(703,0,0,0,0.07,'Rogue - Garrote'),
|
||||
(1495,0,0,0.2,0,'Hunter - Mongoose Bite'),
|
||||
(42243,0,0,0.0837,0,'Hunter - Volley'),
|
||||
(1978,0,0,0,0.04,'Hunter - Serpent Sting'),
|
||||
(3044,0,0,0.15,0,'Hunter - Arcane Shot'),
|
||||
(13797,0,0,0,0.02,'Hunter - Immolation Trap'),
|
||||
(13812,0,0,0.1,0.1,'Hunter - Explosive Trap'),
|
||||
(19306,0,0,0.2,0,'Hunter - Counterattack'),
|
||||
(55095,0,0,0,0.06325,'Death Knight - Frost Fever'),
|
||||
(55078,0,0,0,0.06325,'Death Knight - Blood Plague');
|
||||
|
|
@ -119,6 +119,8 @@ pkgdata_DATA = \
|
|||
10682_01_mangos_item_convert.sql \
|
||||
10704_01_mangos_gossip_menu_option.sql \
|
||||
10742_01_mangos_spell_bonus_data.sql \
|
||||
10743_01_mangos_spell_chain.sql \
|
||||
10743_02_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -218,4 +220,6 @@ EXTRA_DIST = \
|
|||
10682_01_mangos_item_convert.sql \
|
||||
10704_01_mangos_gossip_menu_option.sql \
|
||||
10742_01_mangos_spell_bonus_data.sql \
|
||||
10743_01_mangos_spell_chain.sql \
|
||||
10743_02_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -4788,14 +4788,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
|
||||
switch (spellProto->SpellFamilyName)
|
||||
{
|
||||
case SPELLFAMILY_GENERIC:
|
||||
{
|
||||
// Pounce Bleed
|
||||
if (spellProto->SpellIconID == 147 && spellProto->SpellVisual[0] == 0)
|
||||
// $AP*0.18/6 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 / 100);
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_WARRIOR:
|
||||
{
|
||||
// Rend
|
||||
|
|
@ -4816,14 +4808,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
}
|
||||
case SPELLFAMILY_DRUID:
|
||||
{
|
||||
// Rake
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000001000) && spellProto->Effect[EFFECT_INDEX_2] == SPELL_EFFECT_ADD_COMBO_POINTS)
|
||||
// $AP*0.18/3 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 6 / 100);
|
||||
// Lacerate
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000010000000000))
|
||||
// $AP*0.05/5 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100);
|
||||
// Rip
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000800000))
|
||||
{
|
||||
|
|
@ -4845,10 +4829,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
}
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * cp / 100);
|
||||
}
|
||||
// Lock Jaw
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x1000000000000000))
|
||||
// 0.15*$AP
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 15 / 100);
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_ROGUE:
|
||||
|
|
@ -4868,26 +4848,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
if (cp > 5) cp = 5;
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * AP_per_combo[cp]);
|
||||
}
|
||||
// Garrote
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000000100))
|
||||
// $AP*0.07 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 7 / 100);
|
||||
// Deadly Poison
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000010000))
|
||||
// 0.12*$AP / 4 * amount of stack
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 * GetStackAmount() / 100);
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_HUNTER:
|
||||
{
|
||||
// Serpent Sting
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000004000))
|
||||
// $RAP*0.2/5 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.2 / 5);
|
||||
// Immolation Trap
|
||||
if ((spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004)) && spellProto->SpellIconID == 678)
|
||||
// $RAP*0.1/5 bonus per tick
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500);
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
|
|
@ -4904,15 +4864,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_DEATHKNIGHT:
|
||||
{
|
||||
//Frost Fever and Blood Plague AP scale
|
||||
if (spellProto->SpellFamilyFlags & UI64LIT(0x400080000000000))
|
||||
{
|
||||
m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.055f * 1.15f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -654,37 +654,12 @@ void Spell::EffectSchoolDMG(SpellEffectIndex effect_idx)
|
|||
if (m_caster->HasAura(57627)) // Charge 6 sec post-affect
|
||||
damage *= 2;
|
||||
}
|
||||
// Mongoose Bite
|
||||
else if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x000000002)) && m_spellInfo->SpellVisual[0]==342)
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
|
||||
}
|
||||
// Counterattack
|
||||
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0008000000000000))
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f);
|
||||
}
|
||||
// Arcane Shot
|
||||
else if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000800)) && m_spellInfo->maxLevel > 0)
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.15f);
|
||||
}
|
||||
// Steady Shot
|
||||
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x100000000))
|
||||
{
|
||||
int32 base = irand((int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE),(int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE));
|
||||
damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f);
|
||||
}
|
||||
// Explosive Trap Effect
|
||||
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000004))
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f);
|
||||
}
|
||||
// Volley
|
||||
else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x00002000))
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.0837f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10742"
|
||||
#define REVISION_NR "10743"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef __REVISION_SQL_H__
|
||||
#define __REVISION_SQL_H__
|
||||
#define REVISION_DB_CHARACTERS "required_10664_01_characters_arena_team_stats"
|
||||
#define REVISION_DB_MANGOS "required_10742_01_mangos_spell_bonus_data"
|
||||
#define REVISION_DB_MANGOS "required_10743_02_mangos_spell_bonus_data"
|
||||
#define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version"
|
||||
#endif // __REVISION_SQL_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue