[11888] Implement FLAG_DESPAWN_ON_EVADE for creature_linking.

Thanks to Xfurry for testing

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
This commit is contained in:
Schmoozerd 2012-01-25 23:25:40 +01:00
parent df9e0ebf6a
commit f25e14fd9f
3 changed files with 6 additions and 3 deletions

View file

@ -172,7 +172,7 @@ bool CreatureLinkingMgr::IsLinkingEntryValid(uint32 slaveEntry, CreatureLinkingI
enum EventMask
{
EVENT_MASK_ON_AGGRO = FLAG_AGGRO_ON_AGGRO,
EVENT_MASK_ON_EVADE = FLAG_RESPAWN_ON_EVADE,
EVENT_MASK_ON_EVADE = FLAG_RESPAWN_ON_EVADE | FLAG_DESPAWN_ON_EVADE,
EVENT_MASK_ON_DIE = FLAG_DESPAWN_ON_DEATH | FLAG_SELFKILL_ON_DEATH | FLAG_RESPAWN_ON_DEATH | FLAG_FOLLOW,
EVENT_MASK_ON_RESPAWN = FLAG_RESPAWN_ON_RESPAWN | FLAG_DESPAWN_ON_RESPAWN | FLAG_FOLLOW,
EVENT_MASK_TRIGGER_TO = FLAG_TO_AGGRO_ON_AGGRO | FLAG_TO_RESPAWN_ON_EVADE | FLAG_FOLLOW,
@ -374,6 +374,8 @@ void CreatureLinkingHolder::ProcessSlave(CreatureLinkingEvent eventType, Creatur
}
break;
case LINKING_EVENT_EVADE:
if (flag & FLAG_DESPAWN_ON_EVADE && pSlave->isAlive())
pSlave->ForcedDespawn();
if (flag & FLAG_RESPAWN_ON_EVADE && !pSlave->isAlive())
pSlave->Respawn();
break;

View file

@ -62,6 +62,7 @@ enum CreatureLinkingFlags
FLAG_TO_AGGRO_ON_AGGRO = 0x0002,
FLAG_RESPAWN_ON_EVADE = 0x0004,
FLAG_TO_RESPAWN_ON_EVADE = 0x0008,
FLAG_DESPAWN_ON_EVADE = 0x1000,
FLAG_DESPAWN_ON_DEATH = 0x0010,
FLAG_SELFKILL_ON_DEATH = 0x0020,
FLAG_RESPAWN_ON_DEATH = 0x0040,
@ -75,7 +76,7 @@ enum CreatureLinkingFlags
FLAG_CANT_SPAWN_IF_BOSS_DEAD = 0x0400,
FLAG_CANT_SPAWN_IF_BOSS_ALIVE = 0x0800,
LINKING_FLAG_INVALID = 0x1000, // TODO adjust when other flags are implemented
LINKING_FLAG_INVALID = 0x2000, // TODO adjust when other flags are implemented
};
// Structure holding the information for an entry

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "11887"
#define REVISION_NR "11888"
#endif // __REVISION_NR_H__