aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-10-21 22:11:00 +0200
committerShauren <shauren.trinity@gmail.com>2022-10-21 22:11:00 +0200
commit879c0cccfcb9224f9e15cbed926c57a4e010a070 (patch)
treebb01bada60e1c943b6981919945b1a91b4da1c11 /src/server/game/Server
parent43ac108a527fc593b4d5fa1fb06ff98e843d0b84 (diff)
Core/GameObjects: Implemented per player gameobject state and visibility for looted non-consumable chests
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/GameObjectPackets.cpp8
-rw-r--r--src/server/game/Server/Packets/GameObjectPackets.h11
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 20 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/GameObjectPackets.cpp b/src/server/game/Server/Packets/GameObjectPackets.cpp
index 4e6cc5d7324..fd15e7264cf 100644
--- a/src/server/game/Server/Packets/GameObjectPackets.cpp
+++ b/src/server/game/Server/Packets/GameObjectPackets.cpp
@@ -87,3 +87,11 @@ WorldPacket const* WorldPackets::GameObject::GameObjectPlaySpellVisual::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::GameObject::GameObjectSetStateLocal::Write()
+{
+ _worldPacket << ObjectGUID;
+ _worldPacket << uint8(State);
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/GameObjectPackets.h b/src/server/game/Server/Packets/GameObjectPackets.h
index 91d795a15ae..3bd71aba0ab 100644
--- a/src/server/game/Server/Packets/GameObjectPackets.h
+++ b/src/server/game/Server/Packets/GameObjectPackets.h
@@ -142,6 +142,17 @@ namespace WorldPackets
ObjectGuid ActivatorGUID;
int32 SpellVisualID = 0;
};
+
+ class GameObjectSetStateLocal final : public ServerPacket
+ {
+ public:
+ GameObjectSetStateLocal() : ServerPacket(SMSG_GAME_OBJECT_SET_STATE_LOCAL, 16 + 1) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid ObjectGUID;
+ uint8 State = 0;
+ };
}
}
#endif // GOPackets_h__
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 3c3226e16e8..75c8222b069 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1281,7 +1281,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_RESET_STATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_SET_STATE_LOCAL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_SET_STATE_LOCAL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_OBJECT_UI_LINK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_SPEED_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);