From ca7424cbeb6ed23a44991ad5e8ca9c229cebdc11 Mon Sep 17 00:00:00 2001 From: David Markowitz <39972741+EmosewaMC@users.noreply.github.com> Date: Sun, 16 Nov 2025 14:17:49 -0800 Subject: [PATCH] fix: chest loot not working (#1933) * fix bons and dragon loot * fix chest server loot --- .../General/TreasureChestDragonServer.cpp | 20 +++------------- .../General/MinigameTreasureChestServer.cpp | 23 ++++--------------- 2 files changed, 7 insertions(+), 36 deletions(-) diff --git a/dScripts/02_server/Enemy/General/TreasureChestDragonServer.cpp b/dScripts/02_server/Enemy/General/TreasureChestDragonServer.cpp index ec6327e0..b0a98afc 100644 --- a/dScripts/02_server/Enemy/General/TreasureChestDragonServer.cpp +++ b/dScripts/02_server/Enemy/General/TreasureChestDragonServer.cpp @@ -20,24 +20,10 @@ void TreasureChestDragonServer::OnUse(Entity* self, Entity* user) { if (scriptedActivityComponent == nullptr) { return; } - - auto rating = 1; - + auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID()); - - if (team != nullptr) { - rating = team->members.size(); - - for (const auto member : team->members) { - auto* memberObject = Game::entityManager->GetEntity(member); - - if (memberObject == nullptr) continue; - - Loot::DropActivityLoot(memberObject, self->GetObjectID(), scriptedActivityComponent->GetActivityID(), rating); - } - } else { - Loot::DropActivityLoot(user, self->GetObjectID(), scriptedActivityComponent->GetActivityID(), rating); - } + + Loot::DropActivityLoot(user, self->GetObjectID(), scriptedActivityComponent->GetActivityID(), team ? team->members.size() : 1); self->Smash(self->GetObjectID()); } diff --git a/dScripts/02_server/Minigame/General/MinigameTreasureChestServer.cpp b/dScripts/02_server/Minigame/General/MinigameTreasureChestServer.cpp index 7b0abaa1..00cc68d6 100644 --- a/dScripts/02_server/Minigame/General/MinigameTreasureChestServer.cpp +++ b/dScripts/02_server/Minigame/General/MinigameTreasureChestServer.cpp @@ -4,6 +4,7 @@ #include "EntityManager.h" #include "dZoneManager.h" #include "Loot.h" +#include "dServer.h" void MinigameTreasureChestServer::OnUse(Entity* self, Entity* user) { auto* sac = self->GetComponent(); @@ -18,25 +19,9 @@ void MinigameTreasureChestServer::OnUse(Entity* self, Entity* user) { UpdatePlayer(self, user->GetObjectID()); auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID()); - uint32_t activityRating = 0; - if (team != nullptr) { - for (const auto& teamMemberID : team->members) { - auto* teamMember = Game::entityManager->GetEntity(teamMemberID); - if (teamMember != nullptr) { - activityRating = CalculateActivityRating(self, teamMemberID); - - if (self->GetLOT() == frakjawChestId) activityRating = team->members.size(); - - Loot::DropActivityLoot(teamMember, self->GetObjectID(), sac->GetActivityID(), activityRating); - } - } - } else { - activityRating = CalculateActivityRating(self, user->GetObjectID()); - - if (self->GetLOT() == frakjawChestId) activityRating = 1; - - Loot::DropActivityLoot(user, self->GetObjectID(), sac->GetActivityID(), activityRating); - } + uint32_t activityRating = CalculateActivityRating(self, user->GetObjectID()); + if (self->GetLOT() == frakjawChestId || Game::server->GetZoneID() == 1204) activityRating = team != nullptr ? team->members.size() : 1; + Loot::DropActivityLoot(user, self->GetObjectID(), sac->GetActivityID(), activityRating); sac->PlayerRemove(user->GetObjectID());