mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Merge pull request #106 from KayenEQ/master
Minor fix to numhits update / + new spell effect
This commit is contained in:
commit
a76889959f
@ -1,5 +1,8 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 01/23/2014 ==
|
||||
Kayen: Implemented SE_FfLimitUseType (focus limit to numhits type)
|
||||
|
||||
== 01/20/2014 ==
|
||||
cavedude: Live-Like weather system (Thanks to robregen for figuring it out!)
|
||||
demonstar55: Implemented not_extendable spell flag
|
||||
|
||||
@ -435,7 +435,7 @@ typedef enum {
|
||||
#define SE_SpellDamage 286 // implemented - adds direct spell damage
|
||||
#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_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_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.
|
||||
@ -519,11 +519,11 @@ typedef enum {
|
||||
#define SE_ResistCorruption 370 // implemented
|
||||
#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_CastOnWearoff 373 // implemented
|
||||
#define SE_CastOnWearoff 373 // implemented - Triggers only if fades after natural duration.
|
||||
#define SE_ApplyEffect 374 // implemented
|
||||
#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_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_ShadowStepDirectional 379 // implemented - 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_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_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_Display 425 // *not implemented - Illusion: Flying Dragon(21626)
|
||||
#define SE_IncreaseExtTargetWindow 426 // *not implmented[AA] - increases the capacity of your extended target window
|
||||
|
||||
@ -199,6 +199,14 @@ bool Mob::CheckHitChance(Mob* other, SkillUseTypes skillinuse, int Hand, int16 c
|
||||
if(IsClient() && other->IsClient())
|
||||
pvpmode = true;
|
||||
|
||||
CheckNumHitsRemaining(1);
|
||||
|
||||
if (attacker)
|
||||
attacker->CheckNumHitsRemaining(2);
|
||||
|
||||
if (chance_mod >= 10000)
|
||||
return true;
|
||||
|
||||
float bonus;
|
||||
|
||||
////////////////////////////////////////////////////////
|
||||
@ -324,12 +332,7 @@ bool Mob::CheckHitChance(Mob* other, SkillUseTypes skillinuse, int Hand, int16 c
|
||||
else if(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
|
||||
//agains a garunteed riposte (for example) discipline... for now, garunteed hit wins
|
||||
|
||||
|
||||
@ -2933,6 +2933,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
case SE_LimitRace:
|
||||
case SE_FcLimitUse:
|
||||
case SE_FcMute:
|
||||
case SE_FfLimitUseType:
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -4167,6 +4168,11 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
LimitFound = true;
|
||||
break;
|
||||
|
||||
case SE_FfLimitUseType:
|
||||
if (base1 != spell.numhitstype)
|
||||
LimitFound = true;
|
||||
break;
|
||||
|
||||
//Handle Focus Effects
|
||||
case SE_ImprovedDamage:
|
||||
if (type == focusImprovedDamage && base1 > value)
|
||||
@ -4633,6 +4639,11 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case SE_FfLimitUseType:
|
||||
if (focus_spell.base[i] != spell.numhitstype)
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case SE_CastonFocusEffect:
|
||||
if (focus_spell.base[i] > 0)
|
||||
Caston_spell_id = focus_spell.base[i];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user