aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Object.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp
index 1522f8db754..8727ab1d31f 100644
--- a/src/game/Object.cpp
+++ b/src/game/Object.cpp
@@ -527,8 +527,17 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
// remove custom flag before sending
uint32 appendValue = m_uint32Values[ index ] & ~(UNIT_NPC_FLAG_GUARD + UNIT_NPC_FLAG_OUTDOORPVP);
- if (GetTypeId() == TYPEID_UNIT && !target->canSeeSpellClickOn((Creature*)this))
- appendValue &= ~UNIT_NPC_FLAG_SPELLCLICK;
+ if (GetTypeId() == TYPEID_UNIT)
+ {
+ if (!target->canSeeSpellClickOn((Creature*)this))
+ appendValue &= ~UNIT_NPC_FLAG_SPELLCLICK;
+
+ if (appendValue & UNIT_NPC_FLAG_TRAINER)
+ {
+ if (!((Creature*)this)->isCanTrainingOf(target, false))
+ appendValue &= ~(UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_TRAINER_CLASS | UNIT_NPC_FLAG_TRAINER_PROFESSION);
+ }
+ }
*data << uint32(appendValue);
}