diff options
author | Meji <alvaro.megias@outlook.com> | 2023-02-05 15:16:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-05 15:16:19 +0100 |
commit | 56d0f7a970d24bb71a3e6a27e72fe9bc41eb8246 (patch) | |
tree | c3ff44bdea7fd5e30e60e9bf7762a8aa6d6af7d7 /src | |
parent | bb8f713d5fafefb82ee08d93ad76c2124a262a2a (diff) |
Core/GameObjects: Fixed the behavior for GAMEOBJECT_TYPE_FISHINGNODE (#28781)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 22 | ||||
-rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 6 |
2 files changed, 14 insertions, 14 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 4082fffdc3f..e61735671f8 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -770,7 +770,7 @@ bool GameObject::Create(uint32 entry, Map* map, Position const& pos, QuaternionD break; } case GAMEOBJECT_TYPE_FISHINGNODE: - SetLevel(1); + SetLevel(0); SetGoAnimProgress(255); break; case GAMEOBJECT_TYPE_TRAP: @@ -971,18 +971,7 @@ void GameObject::Update(uint32 diff) // splash bobber (bobber ready now) Unit* caster = GetOwner(); if (caster && caster->GetTypeId() == TYPEID_PLAYER) - { - SetGoState(GO_STATE_ACTIVE); - ReplaceAllFlags(GO_FLAG_NODESPAWN); - - UpdateData udata(caster->GetMapId()); - WorldPacket packet; - BuildValuesUpdateBlockForPlayer(&udata, caster->ToPlayer()); - udata.BuildPacket(&packet); - caster->ToPlayer()->SendDirectMessage(&packet); - - SendCustomAnim(GetGoAnimProgress()); - } + SendCustomAnim(0); m_lootState = GO_READY; // can be successfully open with some chance } @@ -2521,6 +2510,13 @@ void GameObject::Use(Unit* user) { case GO_READY: // ready for loot { + SetLootState(GO_ACTIVATED, player); + + SetGoState(GO_STATE_ACTIVE); + ReplaceAllFlags(GO_FLAG_IN_MULTI_USE); + + SendUpdateToPlayer(player); + uint32 zone, subzone; GetZoneAndAreaId(zone, subzone); diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index c457fdff0ff..3f32460f93b 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -288,7 +288,11 @@ void WorldSession::DoLootRelease(Loot* loot) if (loot->isLooted() || go->GetGoType() == GAMEOBJECT_TYPE_FISHINGNODE || go->GetGoType() == GAMEOBJECT_TYPE_FISHINGHOLE) { - if (go->GetGoType() == GAMEOBJECT_TYPE_FISHINGHOLE) + if (go->GetGoType() == GAMEOBJECT_TYPE_FISHINGNODE) + { + go->SetLootState(GO_JUST_DEACTIVATED); + } + else if (go->GetGoType() == GAMEOBJECT_TYPE_FISHINGHOLE) { // The fishing hole used once more go->AddUse(); // if the max usage is reached, will be despawned in next tick if (go->GetUseCount() >= go->GetGOValue()->FishingHole.MaxOpens) |