* Some changes to scarlet ghouls script, still needs proper core support to work 100% correctly.

* Add item script for the harvester's gift, to prevent creating more than 5 scarlet ghouls, I know this can be done in a better way, but, I couldn't figure out how.
* Add new function Unit::GetAllMinionsByEntry(std::list<Creature*>& Minions, uint32 entry) used to correctly count how many scarlet ghouls a player has, can probably be handy in other situations.

--HG--
branch : trunk
This commit is contained in:
Chaz Brown
2009-10-09 13:49:41 -04:00
parent a6329701e2
commit ad9eb5e89d
4 changed files with 119 additions and 14 deletions
+12
View File
@@ -8703,6 +8703,18 @@ void Unit::SetMinion(Minion *minion, bool apply)
}
}
void Unit::GetAllMinionsByEntry(std::list<Creature*>& Minions, uint32 entry)
{
for(Unit::ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end();)
{
Unit *unit = *itr;
++itr;
if(unit->GetEntry() == entry && unit->GetTypeId() == TYPEID_UNIT
&& ((Creature*)unit)->isSummon()) // minion, actually
Minions.push_back((Creature*)unit);
}
}
void Unit::RemoveAllMinionsByEntry(uint32 entry)
{
for(Unit::ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end();)
+1
View File
@@ -1464,6 +1464,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
Player* GetCharmerOrOwnerPlayerOrPlayerItself() const;
void SetMinion(Minion *minion, bool apply);
void GetAllMinionsByEntry(std::list<Creature*>& Minions, uint32 entry);
void RemoveAllMinionsByEntry(uint32 entry);
void SetCharm(Unit* target, bool apply);
Unit* GetNextRandomRaidMemberOrPet(float radius);