diff options
author | megamage <none@none> | 2009-04-06 12:09:22 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-06 12:09:22 -0500 |
commit | 69657cad7c385341de7da6b1d3ec1e738b6e2555 (patch) | |
tree | 144e324399ddf199436161f2535fe73dace8dc2c /src/game/Object.cpp | |
parent | 3ef20629df9288468e3d3a97fd53641d65e3483c (diff) |
*Try to fix the bug that pet is not attackable during duel/arena.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Object.cpp')
-rw-r--r-- | src/game/Object.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 6ba8a112ea7..0fd7046a97f 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -663,32 +663,30 @@ void Object::_BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask // FG: pretend that OTHER players in own group are friendly ("blue") else if(index == UNIT_FIELD_BYTES_2 || index == UNIT_FIELD_FACTIONTEMPLATE) { - bool ch = false; - if(target->GetTypeId() == TYPEID_PLAYER && GetTypeId() == TYPEID_PLAYER && target != this) + bool ch = false; + if(GetTypeId() == TYPEID_PLAYER && target != this + && ((Player*)this)->IsInSameRaidWith(target)) { - if(target->IsInSameGroupWith((Player*)this) || target->IsInSameRaidWith((Player*)this)) - { - if(index == UNIT_FIELD_BYTES_2) + /*if(index == UNIT_FIELD_BYTES_2) { DEBUG_LOG("-- VALUES_UPDATE: Sending '%s' the blue-group-fix from '%s' (flag)", target->GetName(), ((Player*)this)->GetName()); *data << ( m_uint32Values[ index ] & (UNIT_BYTE2_FLAG_SANCTUARY << 8) ); // this flag is at uint8 offset 1 !! ch = true; } - else if(index == UNIT_FIELD_FACTIONTEMPLATE) + else*/ { FactionTemplateEntry const *ft1, *ft2; ft1 = ((Player*)this)->getFactionTemplateEntry(); - ft2 = ((Player*)target)->getFactionTemplateEntry(); + ft2 = target->getFactionTemplateEntry(); if(ft1 && ft2 && !ft1->IsFriendlyTo(*ft2)) { - uint32 faction = ((Player*)target)->getFaction(); // pretend that all other HOSTILE players have own faction, to allow follow, heal, rezz (trade wont work) + uint32 faction = target->getFaction(); // pretend that all other HOSTILE players have own faction, to allow follow, heal, rezz (trade wont work) DEBUG_LOG("-- VALUES_UPDATE: Sending '%s' the blue-group-fix from '%s' (faction %u)", target->GetName(), ((Player*)this)->GetName(), faction); *data << uint32(faction); ch = true; } } } - } if(!ch) *data << m_uint32Values[ index ]; } |