mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
[BugFix] Remove detection of client pets from Sense[Summoned|Undead|Animal] spells (#1601)
* Remove detection of client pets from Sense[Summoned|Undead|Animal] * Use IsPetOwnerClient() function instead of individual checks * Add option to exclude client pets from GetClosestMobByBodyType * Add parameter Co-authored-by: Noudess <noudess@gmail.com>
This commit is contained in:
parent
6a962f2591
commit
cef873f793
@ -5146,7 +5146,7 @@ void EntityList::ExpeditionWarning(uint32 minutes_left)
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
Mob *EntityList::GetClosestMobByBodyType(Mob *sender, bodyType BodyType)
|
Mob *EntityList::GetClosestMobByBodyType(Mob *sender, bodyType BodyType, bool skip_client_pets)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!sender)
|
if (!sender)
|
||||||
@ -5163,6 +5163,10 @@ Mob *EntityList::GetClosestMobByBodyType(Mob *sender, bodyType BodyType)
|
|||||||
if (CurrentMob->GetBodyType() != BodyType)
|
if (CurrentMob->GetBodyType() != BodyType)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// Do not detect client pets
|
||||||
|
if (skip_client_pets && CurrentMob->IsPet() && CurrentMob->IsPetOwnerClient())
|
||||||
|
continue;
|
||||||
|
|
||||||
CurrentDistance = ((CurrentMob->GetY() - sender->GetY()) * (CurrentMob->GetY() - sender->GetY())) +
|
CurrentDistance = ((CurrentMob->GetY() - sender->GetY()) * (CurrentMob->GetY() - sender->GetY())) +
|
||||||
((CurrentMob->GetX() - sender->GetX()) * (CurrentMob->GetX() - sender->GetX()));
|
((CurrentMob->GetX() - sender->GetX()) * (CurrentMob->GetX() - sender->GetX()));
|
||||||
|
|
||||||
|
|||||||
@ -479,7 +479,7 @@ public:
|
|||||||
Corpse* GetClosestCorpse(Mob* sender, const char *Name);
|
Corpse* GetClosestCorpse(Mob* sender, const char *Name);
|
||||||
NPC* GetClosestBanker(Mob* sender, uint32 &distance);
|
NPC* GetClosestBanker(Mob* sender, uint32 &distance);
|
||||||
void CameraEffect(uint32 duration, uint32 intensity);
|
void CameraEffect(uint32 duration, uint32 intensity);
|
||||||
Mob* GetClosestMobByBodyType(Mob* sender, bodyType BodyType);
|
Mob* GetClosestMobByBodyType(Mob* sender, bodyType BodyType, bool skip_client_pets=false);
|
||||||
void ForceGroupUpdate(uint32 gid);
|
void ForceGroupUpdate(uint32 gid);
|
||||||
void SendGroupLeave(uint32 gid, const char *name);
|
void SendGroupLeave(uint32 gid, const char *name);
|
||||||
void SendGroupJoin(uint32 gid, const char *name);
|
void SendGroupJoin(uint32 gid, const char *name);
|
||||||
|
|||||||
@ -854,7 +854,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial, int level_ove
|
|||||||
MessageID = SENSE_ANIMAL;
|
MessageID = SENSE_ANIMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mob *ClosestMob = entity_list.GetClosestMobByBodyType(this, bt);
|
Mob *ClosestMob = entity_list.GetClosestMobByBodyType(this, bt, true);
|
||||||
|
|
||||||
if(ClosestMob)
|
if(ClosestMob)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user