[svn] Implement CREATURE_FLAG_EXTRA_TRIGGER. In GM mode, creatures flagged with this will be displayed with displayid_a, in non-gm mode with displayid_h.

--HG--
branch : trunk
This commit is contained in:
w12x
2008-10-20 13:41:05 -05:00
parent 192dada7bd
commit 4f06be912b
4 changed files with 20 additions and 0 deletions

View File

@@ -594,6 +594,20 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
{
*data << (m_uint32Values[ index ] & ~UNIT_FLAG_NOT_SELECTABLE);
}
// use modelid_a if not gm, _h if gm for CREATURE_FLAG_EXTRA_TRIGGER creatures
else if(index == UNIT_FIELD_DISPLAYID && GetTypeId() == TYPEID_UNIT)
{
const CreatureInfo* cinfo = ((Creature*)this)->GetCreatureInfo();
if(cinfo->flags_extra & CREATURE_FLAG_EXTRA_TRIGGER)
{
if(target->isGameMaster())
*data << cinfo->DisplayID_A;
else
*data << cinfo->DisplayID_H;
}
else
*data << m_uint32Values[ index ];
}
// hide lootable animation for unallowed players
else if(index == UNIT_DYNAMIC_FLAGS && GetTypeId() == TYPEID_UNIT)
{