mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-27 06:22:26 +00:00
Merge pull request #301 from KayenEQ/Development
Fix for numhits counter being decreased 2x for Outgoing Hit Success from...
This commit is contained in:
commit
ee7f88d247
@ -1362,11 +1362,8 @@ bool Client::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, b
|
|||||||
|
|
||||||
MeleeLifeTap(damage);
|
MeleeLifeTap(damage);
|
||||||
|
|
||||||
if (damage > 0){
|
if (damage > 0 && HasSkillProcSuccess() && other && other->GetHP() > 0)
|
||||||
CheckNumHitsRemaining(NUMHIT_OutgoingHitSuccess);
|
TrySkillProc(other, skillinuse, 0, true, Hand);
|
||||||
if (HasSkillProcSuccess() && other && other->GetHP() > 0)
|
|
||||||
TrySkillProc(other, skillinuse, 0, true, Hand);
|
|
||||||
}
|
|
||||||
|
|
||||||
CommonBreakInvisible();
|
CommonBreakInvisible();
|
||||||
|
|
||||||
|
|||||||
@ -3652,7 +3652,8 @@ void EntityList::AddTempPetsToHateList(Mob *owner, Mob* other, bool bFrenzy)
|
|||||||
NPC* n = it->second;
|
NPC* n = it->second;
|
||||||
if (n->GetSwarmInfo()) {
|
if (n->GetSwarmInfo()) {
|
||||||
if (n->GetSwarmInfo()->owner_id == owner->GetID()) {
|
if (n->GetSwarmInfo()->owner_id == owner->GetID()) {
|
||||||
n->CastToNPC()->hate_list.Add(other, 0, 0, bFrenzy);
|
if (!n->GetSpecialAbility(IMMUNE_AGGRO))
|
||||||
|
n->hate_list.Add(other, 0, 0, bFrenzy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++it;
|
++it;
|
||||||
|
|||||||
@ -3059,7 +3059,7 @@ void Mob::TriggerOnCast(uint32 focus_spell, uint32 spell_id, bool aa_trigger)
|
|||||||
|
|
||||||
if(IsValidSpell(trigger_spell_id) && GetTarget()){
|
if(IsValidSpell(trigger_spell_id) && GetTarget()){
|
||||||
SpellFinished(trigger_spell_id, GetTarget(),10, 0, -1, spells[trigger_spell_id].ResistDiff);
|
SpellFinished(trigger_spell_id, GetTarget(),10, 0, -1, spells[trigger_spell_id].ResistDiff);
|
||||||
CheckNumHitsRemaining(NUMHIT_MatchingSpells,0, focus_spell);
|
CheckNumHitsRemaining(NUMHIT_MatchingSpells,-1, focus_spell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3396,7 +3396,7 @@ void Mob::TrySympatheticProc(Mob *target, uint32 spell_id)
|
|||||||
SpellFinished(focus_trigger, target, 10, 0, -1, spells[focus_trigger].ResistDiff);
|
SpellFinished(focus_trigger, target, 10, 0, -1, spells[focus_trigger].ResistDiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckNumHitsRemaining(NUMHIT_MatchingSpells, 0, focus_spell);
|
CheckNumHitsRemaining(NUMHIT_MatchingSpells, -1, focus_spell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -275,7 +275,7 @@ public:
|
|||||||
int16 GetBuffSlotFromType(uint16 type);
|
int16 GetBuffSlotFromType(uint16 type);
|
||||||
uint16 GetSpellIDFromSlot(uint8 slot);
|
uint16 GetSpellIDFromSlot(uint8 slot);
|
||||||
int CountDispellableBuffs();
|
int CountDispellableBuffs();
|
||||||
void CheckNumHitsRemaining(uint8 type, uint32 buff_slot=0, uint16 spell_id=SPELL_UNKNOWN);
|
void CheckNumHitsRemaining(uint8 type, uint32 buff_slot=-1, uint16 spell_id=SPELL_UNKNOWN);
|
||||||
bool HasNumhits() const { return has_numhits; }
|
bool HasNumhits() const { return has_numhits; }
|
||||||
inline void Numhits(bool val) { has_numhits = val; }
|
inline void Numhits(bool val) { has_numhits = val; }
|
||||||
bool HasMGB() const { return has_MGB; }
|
bool HasMGB() const { return has_MGB; }
|
||||||
|
|||||||
@ -2128,8 +2128,6 @@ void Mob::DoMeleeSkillAttackDmg(Mob* other, uint16 weapon_damage, SkillUseTypes
|
|||||||
if (HasDied())
|
if (HasDied())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CheckNumHitsRemaining(NUMHIT_OutgoingHitSuccess);
|
|
||||||
|
|
||||||
if(aabonuses.SpecialAttackKBProc[0] && aabonuses.SpecialAttackKBProc[1] == skillinuse){
|
if(aabonuses.SpecialAttackKBProc[0] && aabonuses.SpecialAttackKBProc[1] == skillinuse){
|
||||||
int kb_chance = 25;
|
int kb_chance = 25;
|
||||||
kb_chance += kb_chance*(100-aabonuses.SpecialAttackKBProc[0])/100;
|
kb_chance += kb_chance*(100-aabonuses.SpecialAttackKBProc[0])/100;
|
||||||
|
|||||||
@ -5595,8 +5595,8 @@ void Mob::CheckNumHitsRemaining(uint8 type, uint32 buff_slot, uint16 spell_id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (type == 7) {
|
} else if (type == NUMHIT_MatchingSpells) {
|
||||||
if (buff_slot > 0) {
|
if (buff_slot >= 0) {
|
||||||
if (--buffs[buff_slot].numhits == 0) {
|
if (--buffs[buff_slot].numhits == 0) {
|
||||||
CastOnNumHitFade(buffs[buff_slot].spellid);
|
CastOnNumHitFade(buffs[buff_slot].spellid);
|
||||||
if (!TryFadeEffect(buff_slot))
|
if (!TryFadeEffect(buff_slot))
|
||||||
|
|||||||
@ -1670,6 +1670,12 @@ bool Mob::DetermineSpellTargets(uint16 spell_id, Mob *&spell_target, Mob *&ae_ce
|
|||||||
} else {
|
} else {
|
||||||
spell_target = this;
|
spell_target = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (spell_target && spell_target->IsPet() && spells[spell_id].targettype == ST_GroupNoPets){
|
||||||
|
Message_StringID(13,NO_CAST_ON_PET);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
CastAction = GroupSpell;
|
CastAction = GroupSpell;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -264,6 +264,7 @@
|
|||||||
#define TRADESKILL_MISSING_COMPONENTS 3456 //Sorry, but you don't have everything you need for this recipe in your general inventory.
|
#define TRADESKILL_MISSING_COMPONENTS 3456 //Sorry, but you don't have everything you need for this recipe in your general inventory.
|
||||||
#define TRADESKILL_LEARN_RECIPE 3457 //You have learned the recipe %1!
|
#define TRADESKILL_LEARN_RECIPE 3457 //You have learned the recipe %1!
|
||||||
#define EXPEDITION_MIN_REMAIN 3551 //You only have %1 minutes remaining before this expedition comes to an end.
|
#define EXPEDITION_MIN_REMAIN 3551 //You only have %1 minutes remaining before this expedition comes to an end.
|
||||||
|
#define NO_CAST_ON_PET 4045 //You cannot cast this spell on your pet.
|
||||||
#define REWIND_WAIT 4059 //You must wait a bit longer before using the rewind command again.
|
#define REWIND_WAIT 4059 //You must wait a bit longer before using the rewind command again.
|
||||||
#define CORPSEDRAG_LIMIT 4061 //You are already dragging as much as you can!
|
#define CORPSEDRAG_LIMIT 4061 //You are already dragging as much as you can!
|
||||||
#define CORPSEDRAG_ALREADY 4062 //You are already dragging %1.
|
#define CORPSEDRAG_ALREADY 4062 //You are already dragging %1.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user