mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-26 05:22:25 +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 CritPetChance = owner:GetAABonuses():PetCriticalHit() + owner:GetItemBonuses():PetCriticalHit() + owner:GetSpellBonuses():PetCriticalHit();
|
||||||
local CritChanceBonus = GetCriticalChanceBonus(self, hit.skill);
|
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
|
if (CritPetChance or critChance) then
|
||||||
critChance = critChance + CritPetChance;
|
critChance = critChance + CritPetChance;
|
||||||
critChance = critChance + (critChance * CritChanceBonus / 100.0);
|
critChance = critChance + (critChance * CritChanceBonus / 100.0);
|
||||||
|
|
||||||
|
eq.debug(
|
||||||
|
string.format("[%s] [Mob::TryPetCriticalHit] critChance [%i] PostCalcs",
|
||||||
|
e.self:GetCleanName(),
|
||||||
|
critChance
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if (critChance > 0) then
|
if (critChance > 0) then
|
||||||
@ -449,9 +468,24 @@ function TryPetCriticalHit(self, defender, hit)
|
|||||||
local entity_list = eq.get_entity_list();
|
local entity_list = eq.get_entity_list();
|
||||||
critMod = critMod + GetCritDmgMod(self, hit.skill) * 2;
|
critMod = critMod + GetCritDmgMod(self, hit.skill) * 2;
|
||||||
hit.damage_done = (hit.damage_done * critMod) / 100;
|
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)',
|
eq.debug(
|
||||||
self:GetCleanName(), e.hit.damage_done));
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -497,7 +531,6 @@ function GetCritDmgMod(self, skill)
|
|||||||
local aabonuses = self:GetAABonuses();
|
local aabonuses = self:GetAABonuses();
|
||||||
local itembonuses = self:GetItemBonuses();
|
local itembonuses = self:GetItemBonuses();
|
||||||
local spellbonuses = self:GetSpellBonuses();
|
local spellbonuses = self:GetSpellBonuses();
|
||||||
|
|
||||||
critDmg_mod = critDmg_mod + itembonuses:CritDmgMod(Skill.HIGHEST_SKILL + 1);
|
critDmg_mod = critDmg_mod + itembonuses:CritDmgMod(Skill.HIGHEST_SKILL + 1);
|
||||||
critDmg_mod = critDmg_mod + spellbonuses: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);
|
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 + spellbonuses:CritDmgMod(skill);
|
||||||
critDmg_mod = critDmg_mod + aabonuses:CritDmgMod(skill);
|
critDmg_mod = critDmg_mod + aabonuses:CritDmgMod(skill);
|
||||||
|
|
||||||
|
if (critDmg_mod < -100) then
|
||||||
|
critDmg_mod = -100;
|
||||||
|
end
|
||||||
|
|
||||||
return critDmg_mod;
|
return critDmg_mod;
|
||||||
end
|
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 CritPetChance = owner->aabonuses.PetCriticalHit + owner->itembonuses.PetCriticalHit + owner->spellbonuses.PetCriticalHit;
|
||||||
int32 CritChanceBonus = GetCriticalChanceBonus(skill);
|
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) {
|
if (CritPetChance || critChance) {
|
||||||
|
|
||||||
//For pets use PetCriticalHit for base chance, pets do not innately critical with without it
|
//For pets use PetCriticalHit for base chance, pets do not innately critical with without it
|
||||||
//even if buffed with a CritChanceBonus effects.
|
//even if buffed with a CritChanceBonus effects.
|
||||||
critChance += CritPetChance;
|
critChance += CritPetChance;
|
||||||
critChance += critChance*CritChanceBonus/100.0f;
|
critChance += critChance*CritChanceBonus/100.0f;
|
||||||
|
|
||||||
|
Log.Out(
|
||||||
|
Logs::General,
|
||||||
|
Logs::Combat,
|
||||||
|
"[%s] [Mob::TryPetCriticalHit] critChance [%.2f] PostCalcs",
|
||||||
|
GetCleanName(),
|
||||||
|
critChance
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(critChance > 0){
|
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
|
critMod += GetCritDmgMob(skill) * 2; // To account for base crit mod being 200 not 100
|
||||||
damage = (damage * critMod) / 100;
|
damage = (damage * critMod) / 100;
|
||||||
entity_list.FilteredMessageClose_StringID(this, false, 200,
|
|
||||||
MT_CritMelee, FilterMeleeCrits, CRITICAL_HIT,
|
Log.Out(
|
||||||
GetCleanName(), itoa(damage));
|
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