mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-11 19:32:24 +00:00
Merge pull request #362 from KayenEQ/Development
Improvements to the pet type (5) code.
This commit is contained in:
commit
bfa6bd3458
@ -1508,9 +1508,6 @@ bool Client::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes att
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (killerMob && killerMob->IsPet() && killerMob->GetPetType() == petTargetLock && killerMob->GetID() != GetID())
|
|
||||||
killerMob->Kill();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
entity_list.RemoveFromTargets(this);
|
entity_list.RemoveFromTargets(this);
|
||||||
@ -2383,9 +2380,6 @@ bool NPC::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes attack
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (killerMob && killerMob->IsPet() && killerMob->GetPetType() == petTargetLock && killerMob->GetID() != GetID())
|
|
||||||
killerMob->Kill();
|
|
||||||
|
|
||||||
WipeHateList();
|
WipeHateList();
|
||||||
p_depop = true;
|
p_depop = true;
|
||||||
if(killerMob && killerMob->GetTarget() == this) //we can kill things without having them targeted
|
if(killerMob && killerMob->GetTarget() == this) //we can kill things without having them targeted
|
||||||
|
|||||||
@ -300,6 +300,7 @@ Mob::Mob(const char* in_name,
|
|||||||
focused = false;
|
focused = false;
|
||||||
_IsTempPet = false;
|
_IsTempPet = false;
|
||||||
pet_owner_client = false;
|
pet_owner_client = false;
|
||||||
|
pet_targetlock_id = 0;
|
||||||
|
|
||||||
attacked_count = 0;
|
attacked_count = 0;
|
||||||
mezzed = false;
|
mezzed = false;
|
||||||
|
|||||||
@ -676,6 +676,8 @@ public:
|
|||||||
bool IsAnimation() const { return(typeofpet == petAnimation); }
|
bool IsAnimation() const { return(typeofpet == petAnimation); }
|
||||||
bool IsCharmed() const { return(typeofpet == petCharmed); }
|
bool IsCharmed() const { return(typeofpet == petCharmed); }
|
||||||
bool IsTargetLockPet() const { return(typeofpet == petTargetLock); }
|
bool IsTargetLockPet() const { return(typeofpet == petTargetLock); }
|
||||||
|
inline uint32 GetPetTargetLockID() { return pet_targetlock_id; };
|
||||||
|
inline void SetPetTargetLockID(uint32 value) { pet_targetlock_id = value; };
|
||||||
void SetOwnerID(uint16 NewOwnerID);
|
void SetOwnerID(uint16 NewOwnerID);
|
||||||
inline uint16 GetOwnerID() const { return ownerid; }
|
inline uint16 GetOwnerID() const { return ownerid; }
|
||||||
inline virtual bool HasOwner() { if(GetOwnerID()==0){return false;} return( entity_list.GetMob(GetOwnerID()) != 0); }
|
inline virtual bool HasOwner() { if(GetOwnerID()==0){return false;} return( entity_list.GetMob(GetOwnerID()) != 0); }
|
||||||
@ -1245,6 +1247,7 @@ protected:
|
|||||||
bool _IsTempPet;
|
bool _IsTempPet;
|
||||||
int16 count_TempPet;
|
int16 count_TempPet;
|
||||||
bool pet_owner_client; //Flags regular and pets as belonging to a client
|
bool pet_owner_client; //Flags regular and pets as belonging to a client
|
||||||
|
uint32 pet_targetlock_id;
|
||||||
|
|
||||||
EGNode *_egnode; //the EG node we are in
|
EGNode *_egnode; //the EG node we are in
|
||||||
glm::vec3 m_TargetLocation;
|
glm::vec3 m_TargetLocation;
|
||||||
|
|||||||
10
zone/npc.cpp
10
zone/npc.cpp
@ -2419,4 +2419,14 @@ void NPC::DepopSwarmPets()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsPet() && GetPetType() == petTargetLock && GetPetTargetLockID()){
|
||||||
|
|
||||||
|
Mob *targMob = entity_list.GetMob(GetPetTargetLockID());
|
||||||
|
|
||||||
|
if(!targMob || (targMob && targMob->IsCorpse())){
|
||||||
|
Kill();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -434,6 +434,7 @@ void Mob::MakePoweredPet(uint16 spell_id, const char* pettype, int16 petpower,
|
|||||||
|
|
||||||
if (target){
|
if (target){
|
||||||
npc->AddToHateList(target, 1);
|
npc->AddToHateList(target, 1);
|
||||||
|
npc->SetPetTargetLockID(target->GetID());
|
||||||
npc->SetSpecialAbility(IMMUNE_AGGRO, 1);
|
npc->SetSpecialAbility(IMMUNE_AGGRO, 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user