*fix visibility for trigger creatures

NOTE: if you see any trigger (in player mode) with a visible model (DB bug), please report creature entry + modelid in bugtracker

--HG--
branch : trunk
This commit is contained in:
Rat
2010-04-21 13:55:43 +02:00
parent b0daeeb4ab
commit b7a44ae2ba
2 changed files with 7 additions and 6 deletions

View File

@@ -414,7 +414,7 @@ bool Creature::UpdateEntry(uint32 Entry, uint32 team, const CreatureData *data)
SetPvP(false);
}
// HACK: trigger creature is always not selectable
// trigger creature is always not selectable and can not be attacked
if (isTrigger())
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -1751,8 +1751,9 @@ bool Creature::IsVisibleInGridForPlayer(Player const* pl) const
return true;
// Trigger shouldn't be visible for players
if (isTrigger())
return false;
//if (isTrigger())
// return false;
// Rat: this makes no sense, triggers are always sent to players, but with invisible model and can not be attacked or targeted!
// Live player (or with not release body see live creatures or death creatures with corpse disappearing time > 0
if (pl->isAlive() || pl->GetDeathTimer() > 0)

View File

@@ -585,14 +585,14 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask
if (target->isGameMaster())
{
if (cinfo->Modelid1)
*data << cinfo->Modelid1;
*data << cinfo->Modelid1;//Modelid1 is a visible model for gms
else
*data << 17519; // world invisible trigger's model
}
else
{
if (cinfo->Modelid3)
*data << cinfo->Modelid3;
if (cinfo->Modelid2)
*data << cinfo->Modelid2;//Modelid2 is an invisible model for players
else
*data << 11686; // world invisible trigger's model
}