QAston
47d5fc51c5
*Item enchancment/proc patch - original code by Thenecromancer
...
-void Player::CastItemCombatSpell(Item *item,Unit* Target, WeaponAttackType attType)
-{
- if(!item || item->IsBroken())
- return;
-
- ItemPrototype const *proto = item->GetProto();
- if(!proto)
- return;
+void Player::CastItemCombatSpell(Item *item, CalcDamageInfo *damageInfo, ItemPrototype const * proto)
+{
+ Unit * Target = damageInfo->target;
+ WeaponAttackType attType = damageInfo->attackType;
if (!Target || Target == this )
return;
- for (int i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
- {
- _Spell const& spellData = proto->Spells[i];
-
- // no spell
- if(!spellData.SpellId )
- continue;
-
- // wrong triggering type
- if(spellData.SpellTrigger != ITEM_SPELLTRIGGER_CHANCE_ON_HIT)
- continue;
-
- SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellData.SpellId);
- if(!spellInfo)
- {
- sLog.outError("WORLD: unknown Item spellid %i", spellData.SpellId);
- continue;
- }
-
- // not allow proc extra attack spell at extra attack
- if( m_extraAttacks && IsSpellHaveEffect(spellInfo,SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
- return;
-
- float chance = spellInfo->procChance;
-
- if(spellData.SpellPPMRate)
- {
- uint32 WeaponSpeed = GetAttackTime(attType);
- chance = GetPPMProcChance(WeaponSpeed, spellData.SpellPPMRate, spellInfo);
- }
- else if(chance > 100.0f)
- {
- chance = GetWeaponProcChance();
- }
-
- if (roll_chance_f(chance))
- CastSpell(Target, spellInfo->Id, true, item);
+ // Can do effect if any damage done to target
+ if (damageInfo->damage)
+ {
+ for (int i = 0; i < 5; i++)
+ {
+ _Spell const& spellData = proto->Spells[i];
+
+ // no spell
+ if(!spellData.SpellId )
+ continue;
+
+ // wrong triggering type
+ if(spellData.SpellTrigger != ITEM_SPELLTRIGGER_CHANCE_ON_HIT)
+ continue;
+
+ SpellEntry const *spellInfo = sSpellStore.LookupEntry(spellData.SpellId);
+ if(!spellInfo)
+ {
+ sLog.outError("WORLD: unknown Item spellid %i", spellData.SpellId);
+ continue;
+ }
+
+ // not allow proc extra attack spell at extra attack
+ if( m_extraAttacks && IsSpellHaveEffect(spellInfo,SPELL_EFFECT_ADD_EXTRA_ATTACKS) )
+ return;
+
+ float chance = spellInfo->procChance;
+
+ if(spellData.SpellPPMRate)
+ {
+ uint32 WeaponSpeed = GetAttackTime(attType);
+ chance = GetPPMProcChance(WeaponSpeed, spellData.SpellPPMRate, spellInfo);
+ }
+ else if(chance > 100.0f)
+ {
+ chance = GetWeaponProcChance();
+ }
+
+ if (roll_chance_f(chance))
+ CastSpell(Target, spellInfo->Id, true, item);
+ }
}
// item combat enchantments
@@ -6993,6 +6993,21 @@
if(pEnchant->type[s]!=ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
continue;
+ SpellEnchantProcEntry const* entry = spellmgr.GetSpellEnchantProcEvent(enchant_id);
+
+ if (entry && entry->procEx)
+ {
+ // Check hit/crit/dodge/parry requirement
+ if((entry->procEx & damageInfo->procEx) == 0)
+ continue;
+ }
+ else
+ {
+ // Can do effect if any damage done to target
+ if (!(damageInfo->damage))
+ continue;
+ }
+
SpellEntry const *spellInfo = sSpellStore.LookupEntry(pEnchant->spellid[s]);
if (!spellInfo)
{
@@ -7001,6 +7016,18 @@
}
float chance = pEnchant->amount[s] != 0 ? float(pEnchant->amount[s]) : GetWeaponProcChance();
+
+ if (entry && entry->PPMChance)
+ {
+ uint32 WeaponSpeed = GetAttackTime(attType);
+ chance = GetPPMProcChance(WeaponSpeed, entry->PPMChance, spellInfo);
+ }
+ else if (entry && entry->customChance)
+ chance = entry->customChance;
+
+ // Apply spell mods
+ ApplySpellMod(pEnchant->spellid[s],SPELLMOD_CHANCE_OF_SUCCESS,chance);
+
if (roll_chance_f(chance))
{
if(IsPositiveSpell(pEnchant->spellid[s]))
@@ -7012,6 +7039,7 @@
}
}
+
void Player::CastItemUseSpell(Item *item,SpellCastTargets const& targets,uint8 cast_count, uint32 glyphIndex)
{
ItemPrototype const* proto = item->GetProto();
--HG--
branch : trunk
2009-05-15 16:37:22 +02:00
QAston
a796012723
*Merge some fixes from tc1
...
--HG--
branch : trunk
2009-05-15 18:00:50 +02:00
Anubisss
ad92f5e210
*Fix Glyph of Ice Block.
...
*Thanks QAston for the help in the SpellFamilyMask.
--HG--
branch : trunk
2009-05-15 17:58:06 +02:00
Anubisss
e6cd40a619
*Implement GetSpellCooldowns() for get m_spellCooldowns(Player's map of spell CDs).
...
--HG--
branch : trunk
2009-05-15 17:54:10 +02:00
BroodWyrm
7549076a38
*Rewrite Moroes Script to fix reset bug
...
--HG--
branch : trunk
2009-05-15 16:52:59 +02:00
QAston
ae461a4158
*Fix Cheat Death.
...
--HG--
branch : trunk
2009-05-15 15:33:23 +02:00
Genars & Aokromes
854e791c2f
New server options to block adding GMs to friends by players and to block inviting GMs to parties
...
--HG--
branch : trunk
2009-05-14 23:07:17 +02:00
megamage
662dbb9744
*Fix a typo that cause crash. Thanks to Drahy.
...
--HG--
branch : trunk
2009-05-14 20:02:10 -05:00
megamage
c50e1fc4b6
*Merge.
...
--HG--
branch : trunk
2009-05-14 16:52:01 -05:00
megamage
047cc95388
*Add some distance check functions. By VladimirMangos.
...
--HG--
branch : trunk
2009-05-14 16:50:47 -05:00
Drahy
baa7545346
* Finally updated world_spell_full (contains spell_linked_spell, spell_script_target, spell_required and spell_proc_event)
...
* Please everyone to add patches also to full sqls in the future
--HG--
branch : trunk
2009-05-14 22:57:47 +02:00
megamage
811eee356d
[7825] Fixed typo in comment and var. name. Author: BombermaG
...
--HG--
branch : trunk
2009-05-14 15:38:20 -05:00
megamage
5823e2c471
[7824] Implement use ArmorDamageModifier bonus for armor Author: DiSlord
...
--HG--
branch : trunk
2009-05-14 15:37:56 -05:00
megamage
1390440f14
[7823] Fix ScalingStatValue field size in item_template table. Author: DiSlord
...
--HG--
branch : trunk
2009-05-14 15:37:28 -05:00
megamage
9831dab114
[7822] Avoid declined names form show in case disabled config option with russian client at non-russian realm. Author: Foks
...
--HG--
branch : trunk
2009-05-14 11:59:15 -05:00
megamage
d3839aaaf0
[7821] Fixed typo in comment and var. name. Author: KAPATEJIb
...
--HG--
branch : trunk
2009-05-14 11:58:35 -05:00
megamage
c6407a8b4c
[7820] Fixed typo in [7819] that not allow correct work non-scalling item stats. Author: VladimirMangos
...
--HG--
branch : trunk
2009-05-14 11:58:01 -05:00
megamage
43b84c7b07
Code style and cleanups in item equip checks. Author: VladimirMangos
...
--HG--
branch : trunk
2009-05-14 11:57:25 -05:00
megamage
8782d2d31a
[7819] Correct use item ScalingStatValues data (ScalingStatValues.dbc): Author: DiSlord
...
- ScalingStatDistribution stats multiplier
- Armor bonus from ssv
- Damage from ssv
- Feral AP from ssv
- Feral AP from ssv dps bonus
Use item->StatsCount in apply mods
Not allow equip item if level > ScalingStatDistribution->maxlevel field
TODO find more info about ScalingStatValuesEntry->spellBonus
--HG--
branch : trunk
2009-05-14 11:56:51 -05:00
megamage
bf82601817
[7818] Implement SPELL_AURA_MOD_FACTION_REPUTATION_GAIN. Author: DonTomika
...
--HG--
branch : trunk
2009-05-14 11:56:02 -05:00
megamage
657971629c
*Merge. Sorry for the mess. But a rev was wrongly backouted so we have to make these two backouts.
...
--HG--
branch : trunk
2009-05-14 11:47:12 -05:00
megamage
22b082519e
Backed out changeset: 7dcbf5239f55
...
--HG--
branch : trunk
2009-05-14 11:44:27 -05:00
megamage
64bee88f69
*Merge.
...
--HG--
branch : trunk
2009-05-14 11:41:34 -05:00
megamage
1b52fa4206
Backed out changeset: 5201ecc6b309
...
--HG--
branch : trunk
2009-05-14 11:40:02 -05:00
raczman
2ed9222ac9
Fixed build on linux.
...
Tested on Arch linux, still need someone to fixup .vcproj's for windows.
--HG--
branch : trunk
2009-05-14 13:25:35 +02:00
Drahy
f45242b798
* Fix compile error
...
--HG--
branch : trunk
2009-05-14 11:56:15 +02:00
QAston
dbceefb4a1
*Merge
...
--HG--
branch : trunk
2009-05-14 06:38:22 +02:00
QAston
42aa8efe47
Backed out changeset 1f92b07df94a
...
--HG--
branch : trunk
2009-05-14 06:32:35 +02:00
megamage
d1d8177c3f
*Merge.
...
--HG--
branch : trunk
2009-05-13 19:37:00 -05:00
megamage
cd25059f60
*Remove a TC1 file.
...
--HG--
branch : trunk
2009-05-13 19:35:00 -05:00
megamage
22f34d1b74
*Merge.
...
--HG--
branch : trunk
2009-05-13 19:34:10 -05:00
megamage
eaf0f7d44a
*Merge.
...
--HG--
branch : trunk
2009-05-13 19:28:55 -05:00
megamage
aed17ae5c3
*Add indices in waypoint converter to greatly improve its speed. By sparc.
...
--HG--
branch : trunk
2009-05-13 18:38:49 -05:00
megamage
7c373f24d8
[7817] Add missing sql-updates to mangos.sql (7776, 7777, 7782) Author: Brueggus
...
--HG--
branch : trunk
2009-05-13 18:30:32 -05:00
megamage
5457286416
[7815] Apply mangos code style: Replace tabs by spaces in recent added code. Author: VladimirMangos
...
--HG--
branch : trunk
2009-05-13 18:28:21 -05:00
megamage
15936b4197
Updated OpenSSL lib to OpenSSL 0.9.8k Author: tomrus88
...
--HG--
branch : trunk
2009-05-13 18:27:44 -05:00
megamage
cd2857fc3f
[7813] Fixed build x64 debug on win. Author: AlexDereka
...
--HG--
branch : trunk
2009-05-13 18:26:11 -05:00
megamage
1d6d0f59b5
[7812] Fixed compile ACE aio in linux. Author: Derex
...
--HG--
branch : trunk
2009-05-13 18:25:40 -05:00
megamage
88107fa1d6
[7811] do not reload already loaded map coordinats at runtime. Author: Ambal
...
--HG--
branch : trunk
2009-05-13 18:24:35 -05:00
megamage
25e5c99dec
[7810] Moved ZThread related code on ACE framework. Author: Ambal
...
Remove ZThread source code from mangos.
--HG--
branch : trunk
2009-05-13 18:22:21 -05:00
Anubisss
9dd5a1c6d7
*Better way in Glyph of Prayer of Healing.
...
--HG--
branch : trunk
2009-05-13 18:37:02 +02:00
QAston
131c29f132
*Merge.
...
--HG--
branch : trunk
2009-05-13 18:33:15 +02:00
QAston
9aab389937
*Better fix for judgements
...
--HG--
branch : trunk
2009-05-13 18:32:32 +02:00
QAston
9056165453
*Fix sudden death proc execute damage.
...
--HG--
branch : trunk
2009-05-13 18:00:07 +02:00
megamage
80c1901343
*Add script for Gothik. Please apply 3233_world_scripts_naxx.sql for new contents.
...
--HG--
branch : trunk
2009-05-13 10:59:00 -05:00
megamage
8994cbe081
*Update some script functions.
...
--HG--
branch : trunk
2009-05-13 10:54:11 -05:00
megamage
4cf3ca42f0
*Process events for dead creatures. This allows delayed spells to work after caster is dead.
...
--HG--
branch : trunk
2009-05-13 10:53:31 -05:00
megamage
f1fed2d947
*Allow passive unit to call entercombat function.
...
--HG--
branch : trunk
2009-05-13 10:52:55 -05:00
megamage
a635613285
*Fix a typo in world_spell_full.sql
...
--HG--
branch : trunk
2009-05-13 10:52:27 -05:00
QAston
cfe64e00e7
*Do not parry/dodge judgements.
...
--HG--
branch : trunk
2009-05-13 17:19:09 +02:00