mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-18 04:43:52 +00:00
Pet critical logging [skip ci]
This commit is contained in:
parent
6ec577f241
commit
bf798c0561
@ -437,9 +437,28 @@ function TryPetCriticalHit(self, defender, hit)
|
||||
local CritPetChance = owner:GetAABonuses():PetCriticalHit() + owner:GetItemBonuses():PetCriticalHit() + owner:GetSpellBonuses():PetCriticalHit();
|
||||
local CritChanceBonus = GetCriticalChanceBonus(self, hit.skill);
|
||||
|
||||
eq.debug(
|
||||
string.format("[%s] [Mob::TryPetCriticalHit] CritPetChance [%i] CritChanceBonus [%i] | Bonuses AA [%i] Item [%i] Spell [%i]",
|
||||
e.self:GetCleanName(),
|
||||
CritPetChance,
|
||||
CritChanceBonus,
|
||||
owner:GetAABonuses():PetCriticalHit(),
|
||||
owner:GetItemBonuses():PetCriticalHit(),
|
||||
owner:GetSpellBonuses():PetCriticalHit()
|
||||
)
|
||||
);
|
||||
|
||||
if (CritPetChance or critChance) then
|
||||
critChance = critChance + CritPetChance;
|
||||
critChance = critChance + (critChance * CritChanceBonus / 100.0);
|
||||
|
||||
eq.debug(
|
||||
string.format("[%s] [Mob::TryPetCriticalHit] critChance [%i] PostCalcs",
|
||||
e.self:GetCleanName(),
|
||||
critChance
|
||||
)
|
||||
);
|
||||
|
||||
end
|
||||
|
||||
if (critChance > 0) then
|
||||
@ -449,9 +468,24 @@ function TryPetCriticalHit(self, defender, hit)
|
||||
local entity_list = eq.get_entity_list();
|
||||
critMod = critMod + GetCritDmgMod(self, hit.skill) * 2;
|
||||
hit.damage_done = (hit.damage_done * critMod) / 100;
|
||||
entity_list:FilteredMessageClose(this, false, CriticalMessageRange,
|
||||
MT.CritMelee, Filter.MeleeCrits, string.format('%s scores a critical hit! (%d)',
|
||||
self:GetCleanName(), e.hit.damage_done));
|
||||
|
||||
eq.debug(
|
||||
string.format("[%s] [Mob::TryPetCriticalHit] critMod [%i] DmgMod [%i] DamageDone [%i]",
|
||||
e.self:GetCleanName(),
|
||||
critMod,
|
||||
GetCritDmgMod(self, hit.skill),
|
||||
hit.damage_done
|
||||
)
|
||||
);
|
||||
|
||||
entity_list:FilteredMessageClose(
|
||||
this,
|
||||
false,
|
||||
CriticalMessageRange,
|
||||
MT.CritMelee,
|
||||
Filter.MeleeCrits,
|
||||
string.format('%s scores a critical hit! (%d)', self:GetCleanName(), e.hit.damage_done)
|
||||
);
|
||||
end
|
||||
end
|
||||
|
||||
@ -497,7 +531,6 @@ function GetCritDmgMod(self, skill)
|
||||
local aabonuses = self:GetAABonuses();
|
||||
local itembonuses = self:GetItemBonuses();
|
||||
local spellbonuses = self:GetSpellBonuses();
|
||||
|
||||
critDmg_mod = critDmg_mod + itembonuses:CritDmgMod(Skill.HIGHEST_SKILL + 1);
|
||||
critDmg_mod = critDmg_mod + spellbonuses:CritDmgMod(Skill.HIGHEST_SKILL + 1);
|
||||
critDmg_mod = critDmg_mod + aabonuses:CritDmgMod(Skill.HIGHEST_SKILL + 1);
|
||||
@ -505,6 +538,10 @@ function GetCritDmgMod(self, skill)
|
||||
critDmg_mod = critDmg_mod + spellbonuses:CritDmgMod(skill);
|
||||
critDmg_mod = critDmg_mod + aabonuses:CritDmgMod(skill);
|
||||
|
||||
if (critDmg_mod < -100) then
|
||||
critDmg_mod = -100;
|
||||
end
|
||||
|
||||
return critDmg_mod;
|
||||
end
|
||||
|
||||
|
||||
@ -3889,12 +3889,32 @@ void Mob::TryPetCriticalHit(Mob *defender, uint16 skill, int32 &damage)
|
||||
int32 CritPetChance = owner->aabonuses.PetCriticalHit + owner->itembonuses.PetCriticalHit + owner->spellbonuses.PetCriticalHit;
|
||||
int32 CritChanceBonus = GetCriticalChanceBonus(skill);
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] CritPetChance [%i] CritChanceBonus [%i] | Bonuses AA [%i] Item [%i] Spell [%i]",
|
||||
GetCleanName(),
|
||||
CritPetChance,
|
||||
CritChanceBonus,
|
||||
owner->aabonuses.PetCriticalHit,
|
||||
owner->itembonuses.PetCriticalHit,
|
||||
owner->spellbonuses.PetCriticalHit
|
||||
);
|
||||
|
||||
if (CritPetChance || critChance) {
|
||||
|
||||
//For pets use PetCriticalHit for base chance, pets do not innately critical with without it
|
||||
//even if buffed with a CritChanceBonus effects.
|
||||
critChance += CritPetChance;
|
||||
critChance += critChance*CritChanceBonus/100.0f;
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] critChance [%.2f] PostCalcs",
|
||||
GetCleanName(),
|
||||
critChance
|
||||
);
|
||||
}
|
||||
|
||||
if(critChance > 0){
|
||||
@ -3905,9 +3925,27 @@ void Mob::TryPetCriticalHit(Mob *defender, uint16 skill, int32 &damage)
|
||||
{
|
||||
critMod += GetCritDmgMob(skill) * 2; // To account for base crit mod being 200 not 100
|
||||
damage = (damage * critMod) / 100;
|
||||
entity_list.FilteredMessageClose_StringID(this, false, 200,
|
||||
MT_CritMelee, FilterMeleeCrits, CRITICAL_HIT,
|
||||
GetCleanName(), itoa(damage));
|
||||
|
||||
Log.Out(
|
||||
Logs::General,
|
||||
Logs::Combat,
|
||||
"[%s] [Mob::TryPetCriticalHit] critMod [%.2f] DmgMod [%i] DamageDone [%i]",
|
||||
GetCleanName(),
|
||||
critMod,
|
||||
GetCritDmgMob(skill),
|
||||
damage
|
||||
);
|
||||
|
||||
entity_list.FilteredMessageClose_StringID(
|
||||
this,
|
||||
false,
|
||||
200,
|
||||
MT_CritMelee,
|
||||
FilterMeleeCrits,
|
||||
CRITICAL_HIT,
|
||||
GetCleanName(),
|
||||
itoa(damage)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user