diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-06-22 21:56:58 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-06-22 21:56:58 +0200 |
| commit | e59059e1bd2f67691e2da0105771b0cb55b123a4 (patch) | |
| tree | 4f4864f8aae63eeafac29f440e0ce64a027c4108 /src/server/game/Server | |
| parent | 7ca6b226a7420ff38e3a4f17a3758393d68629e3 (diff) | |
Core/Players: PlayerChoice improvements
* Add missing choice properties to database (InfiniteRange, ShowChoicesAsList)
* Allow limiiting the number of responses sent at the same time
* Fixed duration sent in SMSG_DISPLAY_PLAYER_CHOICE
* Remove dynamically generated response identifiers from database
* Remove auto rewarding choice responses
* Change response scripts to be bound to scriptname
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/QuestPackets.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/QuestPackets.h | 8 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 2 |
3 files changed, 9 insertions, 9 deletions
diff --git a/src/server/game/Server/Packets/QuestPackets.cpp b/src/server/game/Server/Packets/QuestPackets.cpp index 016efd60f97..bef3ef35892 100644 --- a/src/server/game/Server/Packets/QuestPackets.cpp +++ b/src/server/game/Server/Packets/QuestPackets.cpp @@ -765,7 +765,7 @@ ByteBuffer& operator<<(ByteBuffer& data, PlayerChoiceResponseMawPower const& pla { data << int32(playerChoiceResponseMawPower.Unused901_1); data << int32(playerChoiceResponseMawPower.TypeArtFileID); - data << int32(playerChoiceResponseMawPower.Unused901_2); + data << int32(playerChoiceResponseMawPower.BorderUiTextureAtlasMemberID); data << int32(playerChoiceResponseMawPower.SpellID); data << int32(playerChoiceResponseMawPower.MaxStacks); data << OptionalInit(playerChoiceResponseMawPower.Rarity); @@ -828,14 +828,14 @@ WorldPacket const* DisplayPlayerChoice::Write() _worldPacket << uint32(SoundKitID); _worldPacket << uint32(CloseUISoundKitID); _worldPacket << uint8(NumRerolls); - _worldPacket << Duration; + _worldPacket << ExpireTime; _worldPacket << SizedString::BitsSize<8>(Question); _worldPacket << SizedString::BitsSize<8>(PendingChoiceText); _worldPacket << Bits<1>(InfiniteRange); _worldPacket << Bits<1>(HideWarboardHeader); _worldPacket << Bits<1>(KeepOpenAfterChoice); - _worldPacket << Bits<1>(Unknown_1115_1); - _worldPacket << Bits<1>(Unknown_1115_2); + _worldPacket << Bits<1>(ShowChoicesAsList); + _worldPacket << Bits<1>(ForceDontShowChoicesAsList); _worldPacket.FlushBits(); for (PlayerChoiceResponse const& response : Responses) diff --git a/src/server/game/Server/Packets/QuestPackets.h b/src/server/game/Server/Packets/QuestPackets.h index 8f3b1b76438..7c14b336127 100644 --- a/src/server/game/Server/Packets/QuestPackets.h +++ b/src/server/game/Server/Packets/QuestPackets.h @@ -730,7 +730,7 @@ namespace WorldPackets int32 Unused901_1 = 0; int32 TypeArtFileID = 0; Optional<int32> Rarity; - int32 Unused901_2 = 0; + int32 BorderUiTextureAtlasMemberID = 0; int32 SpellID = 0; int32 MaxStacks = 0; }; @@ -770,15 +770,15 @@ namespace WorldPackets uint32 SoundKitID = 0; uint32 CloseUISoundKitID = 0; uint8 NumRerolls = 0; - WorldPackets::Duration<Seconds> Duration; + WorldPackets::Timestamp<> ExpireTime; std::string_view Question; std::string_view PendingChoiceText; std::vector<PlayerChoiceResponse> Responses; bool InfiniteRange = false; bool HideWarboardHeader = false; bool KeepOpenAfterChoice = false; - bool Unknown_1115_1 = false; - bool Unknown_1115_2 = false; + bool ShowChoicesAsList = false; + bool ForceDontShowChoicesAsList = false; }; class ChoiceResponse final : public ClientPacket diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 29ccc49f3f1..a6c96948101 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -1578,7 +1578,7 @@ class TC_GAME_API WorldSession void HandlePushQuestToParty(WorldPackets::Quest::PushQuestToParty& packet); void HandleQuestPushResult(WorldPackets::Quest::QuestPushResult& packet); void HandleRequestWorldQuestUpdate(WorldPackets::Quest::RequestWorldQuestUpdate& packet); - void HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceResponse& choiceResponse); + void HandlePlayerChoiceResponse(WorldPackets::Quest::ChoiceResponse const& choiceResponse); void HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestLinesRequest& uiMapQuestLinesRequest); void HandleQueryTreasurePicker(WorldPackets::Query::QueryTreasurePicker const& queryTreasurePicker); void HandleSpawnTrackingUpdate(WorldPackets::Quest::SpawnTrackingUpdate& spawnTrackingUpdate); |
