diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 13 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 5 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 42eb2cbe3f7..c3d5c15e0e6 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -332,7 +332,8 @@ bool GameObject::Create(uint32 name_id, Map* map, uint32 /*phaseMask*/, Position break; } case GAMEOBJECT_TYPE_FISHINGNODE: - SetGoAnimProgress(0); + SetUInt32Value(GAMEOBJECT_LEVEL, 1); + SetGoAnimProgress(255); break; case GAMEOBJECT_TYPE_TRAP: if (GetGOInfo()->trap.stealthed) diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 715036b139e..5c0bba68298 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -667,11 +667,11 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const } } - //if (GameObject) + //if (HasGameObject) //{ // *data << uint32(WorldEffectID); - // data->WriteBit(bit8); + // data->FlushBits(); // if (bit8) // *data << uint32(Int1); //} @@ -679,7 +679,8 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const //if (SmoothPhasing) //{ // data->WriteBit(ReplaceActive); - // data->WriteBit(HasReplaceObjectt); + // data->WriteBit(HasReplaceObject); + // data->FlushBits(); // if (HasReplaceObject) // *data << ObjectGuid(ReplaceObject); //} @@ -688,10 +689,12 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const //{ // data->WriteBit(HasLocalScriptData); // data->WriteBit(HasPetBattleFullUpdate); + // data->FlushBits(); // if (HasLocalScriptData) // { // data->WriteBits(Data.length(), 7); + // data->FlushBits(); // data->WriteString(Data); // } @@ -707,6 +710,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const // *data << uint8(Players[i].InputFlags); // data->WriteBits(Players[i].Pets.size(), 2); + // data->FlushBits(); // for (std::size_t j = 0; j < Players[i].Pets.size(); ++j) // { // *data << ObjectGuid(Players[i].Pets[j].BattlePetGUID); @@ -752,6 +756,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const // } // data->WriteBits(Players[i].Pets[j].CustomName.length(), 7); + // data->FlushBits(); // data->WriteString(Players[i].Pets[j].CustomName); // } // } @@ -786,6 +791,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const // *data << ObjectGuid(InitialWildPetGUID); // data->WriteBit(IsPVP); // data->WriteBit(CanAwardXP); + // data->FlushBits(); // } //} @@ -793,6 +799,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, uint32 flags) const //{ // data->WriteBit(HasSceneInstanceIDs); // data->WriteBit(HasRuneState); + // data->FlushBits(); // if (HasSceneInstanceIDs) // { // *data << uint32(SceneInstanceIDs.size()); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1a0ea5fb3b0..be716fb61ef 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4772,7 +4772,10 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex) { case GAMEOBJECT_TYPE_FISHINGNODE: { - m_caster->AddChannelObject(pGameObj->GetGUID()); + pGameObj->SetFaction(m_caster->getFaction()); + ObjectGuid bobberGuid = pGameObj->GetGUID(); + // client requires fishing bobber guid in channel object slot 0 to be usable + m_caster->SetDynamicStructuredValue(UNIT_DYNAMIC_FIELD_CHANNEL_OBJECTS, 0, &bobberGuid); m_caster->AddGameObject(pGameObj); // will removed at spell cancel // end time of range when possible catch fish (FISHING_BOBBER_READY_TIME..GetDuration(m_spellInfo)) |