mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-17 03:08:26 +00:00
[Bug Fix] Charm Break Invisibility Fix. (#1855)
- Invisibility vs. Undead and Invisibility vs. Animals were not breaking charm. - Add Invisibility enumerator. - Add special identifier for Invisibility vs. Undead and Invisibility vs. Animals.
This commit is contained in:
+9
-6
@@ -575,13 +575,16 @@ uint32 Mob::GetAppearanceValue(EmuAppearance iAppearance) {
|
||||
|
||||
void Mob::SetInvisible(uint8 state)
|
||||
{
|
||||
invisible = state;
|
||||
SendAppearancePacket(AT_Invis, invisible);
|
||||
if (state != Invisibility::Special) {
|
||||
invisible = state;
|
||||
SendAppearancePacket(AT_Invis, invisible);
|
||||
}
|
||||
|
||||
// Invis and hide breaks charms
|
||||
auto formerpet = GetPet();
|
||||
if (formerpet && formerpet->GetPetType() == petCharmed && (invisible || hidden || improved_hidden || invisible_animals || invisible_undead)) {
|
||||
if (RuleB(Pets, LivelikeBreakCharmOnInvis) || IsInvisible(formerpet)) {
|
||||
formerpet->BuffFadeByEffect(SE_Charm);
|
||||
auto pet = GetPet();
|
||||
if (pet && pet->GetPetType() == petCharmed && (invisible || hidden || improved_hidden || invisible_animals || invisible_undead)) {
|
||||
if (RuleB(Pets, LivelikeBreakCharmOnInvis) || IsInvisible(pet)) {
|
||||
pet->BuffFadeByEffect(SE_Charm);
|
||||
}
|
||||
|
||||
LogRules("Pets:LivelikeBreakCharmOnInvis for [{}] | Invis [{}] - Hidden [{}] - Shroud of Stealth [{}] - IVA [{}] - IVU [{}]", GetCleanName(), invisible, hidden, improved_hidden, invisible_animals, invisible_undead);
|
||||
|
||||
Reference in New Issue
Block a user