diff --git a/src/game/CreatureLinkingMgr.cpp b/src/game/CreatureLinkingMgr.cpp index 00de4dbd9..eb22b0712 100644 --- a/src/game/CreatureLinkingMgr.cpp +++ b/src/game/CreatureLinkingMgr.cpp @@ -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; diff --git a/src/game/CreatureLinkingMgr.h b/src/game/CreatureLinkingMgr.h index d88706414..3ce41a5f1 100644 --- a/src/game/CreatureLinkingMgr.h +++ b/src/game/CreatureLinkingMgr.h @@ -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 diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 594b89cd6..c3e303b91 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11887" + #define REVISION_NR "11888" #endif // __REVISION_NR_H__