mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 04:37:00 +00:00
[10237] Implement additional damage proc on hit for Spell 8024 and ranks.
This commit is contained in:
parent
d7b6840634
commit
a4a6a7a609
7 changed files with 77 additions and 26 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_10223_01_mangos_spell_proc_event` bit(1) default NULL
|
`required_10237_01_mangos_spell_bonus_data` 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';
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
|
||||||
4
sql/updates/10237_01_mangos_spell_bonus_data.sql
Normal file
4
sql/updates/10237_01_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
ALTER TABLE db_version CHANGE COLUMN required_10223_01_mangos_spell_proc_event required_10237_01_mangos_spell_bonus_data bit;
|
||||||
|
|
||||||
|
DELETE FROM spell_bonus_data WHERE entry = 10444;
|
||||||
|
INSERT INTO spell_bonus_data VALUES (10444, 0, 0, 0, "Shaman - Flametongue Attack");
|
||||||
|
|
@ -118,6 +118,7 @@ pkgdata_DATA = \
|
||||||
10217_05_mangos_spell_proc_event.sql \
|
10217_05_mangos_spell_proc_event.sql \
|
||||||
10219_01_mangos_spell_proc_event.sql \
|
10219_01_mangos_spell_proc_event.sql \
|
||||||
10223_01_mangos_spell_proc_event.sql \
|
10223_01_mangos_spell_proc_event.sql \
|
||||||
|
10237_01_mangos_spell_bonus_data.sql \
|
||||||
README
|
README
|
||||||
|
|
||||||
## Additional files to include when running 'make dist'
|
## Additional files to include when running 'make dist'
|
||||||
|
|
@ -216,4 +217,5 @@ EXTRA_DIST = \
|
||||||
10217_05_mangos_spell_proc_event.sql \
|
10217_05_mangos_spell_proc_event.sql \
|
||||||
10219_01_mangos_spell_proc_event.sql \
|
10219_01_mangos_spell_proc_event.sql \
|
||||||
10223_01_mangos_spell_proc_event.sql \
|
10223_01_mangos_spell_proc_event.sql \
|
||||||
|
10237_01_mangos_spell_bonus_data.sql \
|
||||||
README
|
README
|
||||||
|
|
|
||||||
|
|
@ -2362,6 +2362,23 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx)
|
||||||
m_caster->CastCustomSpell(unitTarget, 52032, &damage, 0, 0, true, 0, 0, m_originalCasterGUID);
|
m_caster->CastCustomSpell(unitTarget, 52032, &damage, 0, 0, true, 0, 0, m_originalCasterGUID);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Flametongue Weapon Proc, Ranks
|
||||||
|
if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000000200000))
|
||||||
|
{
|
||||||
|
if (!m_CastItem)
|
||||||
|
{
|
||||||
|
sLog.outError("Spell::EffectDummy: spell %i requires cast Item", m_spellInfo->Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// found spelldamage coefficients of 0.381% per 0.1 speed and 15.244 per 4.0 speed
|
||||||
|
// but own calculation say 0.385 gives at most one point difference to published values
|
||||||
|
int32 spellDamage = m_caster->SpellBaseDamageBonusDone(GetSpellSchoolMask(m_spellInfo));
|
||||||
|
float weaponSpeed = (1.0f/IN_MILLISECONDS) * m_CastItem->GetProto()->Delay;
|
||||||
|
int32 totalDamage = int32((damage + 3.85f * spellDamage) * 0.01 * weaponSpeed);
|
||||||
|
|
||||||
|
m_caster->CastCustomSpell(unitTarget, 10444, &totalDamage, NULL, NULL, true, m_CastItem);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (m_spellInfo->Id == 39610) // Mana Tide Totem effect
|
if (m_spellInfo->Id == 39610) // Mana Tide Totem effect
|
||||||
{
|
{
|
||||||
if (!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
if (!unitTarget || unitTarget->getPowerType() != POWER_MANA)
|
||||||
|
|
|
||||||
|
|
@ -2227,6 +2227,34 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
|
||||||
target = this;
|
target = this;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// Flametongue Weapon (Passive), Ranks
|
||||||
|
if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000000000200000))
|
||||||
|
{
|
||||||
|
if (GetTypeId()!=TYPEID_PLAYER || !castItem)
|
||||||
|
return SPELL_AURA_PROC_FAILED;
|
||||||
|
|
||||||
|
// Only proc for enchanted weapon
|
||||||
|
Item *usedWeapon = ((Player *)this)->GetWeaponForAttack(procFlag & PROC_FLAG_SUCCESSFUL_OFFHAND_HIT ? OFF_ATTACK : BASE_ATTACK, true, true);
|
||||||
|
if (usedWeapon != castItem)
|
||||||
|
return SPELL_AURA_PROC_FAILED;
|
||||||
|
|
||||||
|
switch (dummySpell->Id)
|
||||||
|
{
|
||||||
|
case 10400: triggered_spell_id = 8026; break; // Rank 1
|
||||||
|
case 15567: triggered_spell_id = 8028; break; // Rank 2
|
||||||
|
case 15568: triggered_spell_id = 8029; break; // Rank 3
|
||||||
|
case 15569: triggered_spell_id = 10445; break; // Rank 4
|
||||||
|
case 16311: triggered_spell_id = 16343; break; // Rank 5
|
||||||
|
case 16312: triggered_spell_id = 16344; break; // Rank 6
|
||||||
|
case 16313: triggered_spell_id = 25488; break; // Rank 7
|
||||||
|
case 58784: triggered_spell_id = 58786; break; // Rank 8
|
||||||
|
case 58791: triggered_spell_id = 58787; break; // Rank 9
|
||||||
|
case 58792: triggered_spell_id = 58788; break; // Rank 10
|
||||||
|
default:
|
||||||
|
return SPELL_AURA_PROC_FAILED;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
// Earth Shield
|
// Earth Shield
|
||||||
if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000040000000000))
|
if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000040000000000))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "10236"
|
#define REVISION_NR "10237"
|
||||||
#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_10160_02_characters_pet_aura"
|
#define REVISION_DB_CHARACTERS "required_10160_02_characters_pet_aura"
|
||||||
#define REVISION_DB_MANGOS "required_10223_01_mangos_spell_proc_event"
|
#define REVISION_DB_MANGOS "required_10237_01_mangos_spell_bonus_data"
|
||||||
#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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue