Merge pull request #106 from KayenEQ/master

Minor fix to numhits update / + new spell effect
This commit is contained in:
Michael Cook 2014-01-23 18:51:09 -08:00
commit a76889959f
4 changed files with 26 additions and 9 deletions

View File

@ -1,5 +1,8 @@
EQEMu Changelog (Started on Sept 24, 2003 15:50) EQEMu Changelog (Started on Sept 24, 2003 15:50)
------------------------------------------------------- -------------------------------------------------------
== 01/23/2014 ==
Kayen: Implemented SE_FfLimitUseType (focus limit to numhits type)
== 01/20/2014 == == 01/20/2014 ==
cavedude: Live-Like weather system (Thanks to robregen for figuring it out!) cavedude: Live-Like weather system (Thanks to robregen for figuring it out!)
demonstar55: Implemented not_extendable spell flag demonstar55: Implemented not_extendable spell flag

View File

@ -435,7 +435,7 @@ typedef enum {
#define SE_SpellDamage 286 // implemented - adds direct spell damage #define SE_SpellDamage 286 // implemented - adds direct spell damage
#define SE_SpellDurationIncByTic 287 // implemented #define SE_SpellDurationIncByTic 287 // implemented
#define SE_SpecialAttackKBProc 288 // implemented[AA] - Chance to to do a knockback from special attacks [AA Dragon Punch]. #define SE_SpecialAttackKBProc 288 // implemented[AA] - Chance to to do a knockback from special attacks [AA Dragon Punch].
#define SE_ImprovedSpellEffect 289 // implemented #define SE_ImprovedSpellEffect 289 // implemented - Triggers only if fades after natural duration.
#define SE_IncreaseRunSpeedCap 290 // implemented[AA] - increases run speed over the hard cap #define SE_IncreaseRunSpeedCap 290 // implemented[AA] - increases run speed over the hard cap
#define SE_Purify 291 // implemented - Removes determental effects #define SE_Purify 291 // implemented - Removes determental effects
#define SE_StrikeThrough2 292 // implemented[AA] - increasing chance of bypassing an opponent's special defenses, such as dodge, block, parry, and riposte. #define SE_StrikeThrough2 292 // implemented[AA] - increasing chance of bypassing an opponent's special defenses, such as dodge, block, parry, and riposte.
@ -519,11 +519,11 @@ typedef enum {
#define SE_ResistCorruption 370 // implemented #define SE_ResistCorruption 370 // implemented
#define SE_AttackSpeed4 371 // implemented - stackable slow effect 'Inhibit Melee' #define SE_AttackSpeed4 371 // implemented - stackable slow effect 'Inhibit Melee'
#define SE_ForageSkill 372 // *not implemented[AA] Will increase the skill cap for those that have the Forage skill and grant the skill and raise the cap to those that do not. #define SE_ForageSkill 372 // *not implemented[AA] Will increase the skill cap for those that have the Forage skill and grant the skill and raise the cap to those that do not.
#define SE_CastOnWearoff 373 // implemented #define SE_CastOnWearoff 373 // implemented - Triggers only if fades after natural duration.
#define SE_ApplyEffect 374 // implemented #define SE_ApplyEffect 374 // implemented
#define SE_DotCritDmgIncrease 375 // implemented - Increase damage of DoT critical amount #define SE_DotCritDmgIncrease 375 // implemented - Increase damage of DoT critical amount
//#define SE_Fling 376 // *not implemented - used in 2 test spells (12945 | Movement Test Spell 1) //#define SE_Fling 376 // *not implemented - used in 2 test spells (12945 | Movement Test Spell 1)
#define SE_BossSpellTrigger 377 // implemented - spell is cast on fade #define SE_BossSpellTrigger 377 // implemented - Triggers only if fades after natural duration.
#define SE_SpellEffectResistChance 378 // implemented - Increase chance to resist specific spell effect (base1=value, base2=spell effect id) #define SE_SpellEffectResistChance 378 // implemented - Increase chance to resist specific spell effect (base1=value, base2=spell effect id)
#define SE_ShadowStepDirectional 379 // implemented - handled by client #define SE_ShadowStepDirectional 379 // implemented - handled by client
#define SE_Knockdown 380 // implemented - small knock back(handled by client) #define SE_Knockdown 380 // implemented - small knock back(handled by client)
@ -569,7 +569,7 @@ typedef enum {
#define SE_FcLimitUse 420 // implemented - increases numhits count by percent (Note: not used in any known live spells) #define SE_FcLimitUse 420 // implemented - increases numhits count by percent (Note: not used in any known live spells)
#define SE_IncreaseNumHits 421 // implemented[AA] - increases number of hits a buff has till fade. (focus) #define SE_IncreaseNumHits 421 // implemented[AA] - increases number of hits a buff has till fade. (focus)
#define SE_FfLimitUseMin 422 // implemented - limit a focus to require a min amount of numhits value (used with above) #define SE_FfLimitUseMin 422 // implemented - limit a focus to require a min amount of numhits value (used with above)
//#define SE_FfLimitUseType 423 // not used - limit a focus to require a certain numhits type (Field in spells table 175) #define SE_FfLimitUseType 423 // implemented - limit a focus to require a certain numhits type
#define SE_GravityEffect 424 // implemented - Pulls/pushes you toward/away the mob at a set pace #define SE_GravityEffect 424 // implemented - Pulls/pushes you toward/away the mob at a set pace
#define SE_Display 425 // *not implemented - Illusion: Flying Dragon(21626) #define SE_Display 425 // *not implemented - Illusion: Flying Dragon(21626)
#define SE_IncreaseExtTargetWindow 426 // *not implmented[AA] - increases the capacity of your extended target window #define SE_IncreaseExtTargetWindow 426 // *not implmented[AA] - increases the capacity of your extended target window

View File

@ -199,6 +199,14 @@ bool Mob::CheckHitChance(Mob* other, SkillUseTypes skillinuse, int Hand, int16 c
if(IsClient() && other->IsClient()) if(IsClient() && other->IsClient())
pvpmode = true; pvpmode = true;
CheckNumHitsRemaining(1);
if (attacker)
attacker->CheckNumHitsRemaining(2);
if (chance_mod >= 10000)
return true;
float bonus; float bonus;
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
@ -325,11 +333,6 @@ bool Mob::CheckHitChance(Mob* other, SkillUseTypes skillinuse, int Hand, int16 c
chancetohit = 5; chancetohit = 5;
} }
CheckNumHitsRemaining(1);
if (attacker)
attacker->CheckNumHitsRemaining(2);
//I dont know the best way to handle a garunteed hit discipline being used //I dont know the best way to handle a garunteed hit discipline being used
//agains a garunteed riposte (for example) discipline... for now, garunteed hit wins //agains a garunteed riposte (for example) discipline... for now, garunteed hit wins

View File

@ -2933,6 +2933,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
case SE_LimitRace: case SE_LimitRace:
case SE_FcLimitUse: case SE_FcLimitUse:
case SE_FcMute: case SE_FcMute:
case SE_FfLimitUseType:
{ {
break; break;
} }
@ -4167,6 +4168,11 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
LimitFound = true; LimitFound = true;
break; break;
case SE_FfLimitUseType:
if (base1 != spell.numhitstype)
LimitFound = true;
break;
//Handle Focus Effects //Handle Focus Effects
case SE_ImprovedDamage: case SE_ImprovedDamage:
if (type == focusImprovedDamage && base1 > value) if (type == focusImprovedDamage && base1 > value)
@ -4633,6 +4639,11 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
return 0; return 0;
break; break;
case SE_FfLimitUseType:
if (focus_spell.base[i] != spell.numhitstype)
return 0;
break;
case SE_CastonFocusEffect: case SE_CastonFocusEffect:
if (focus_spell.base[i] > 0) if (focus_spell.base[i] > 0)
Caston_spell_id = focus_spell.base[i]; Caston_spell_id = focus_spell.base[i];