mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-12-13 03:28:28 +00:00
fix: chest loot not working (#1933)
* fix bons and dragon loot * fix chest server loot
This commit is contained in:
@@ -21,23 +21,9 @@ void TreasureChestDragonServer::OnUse(Entity* self, Entity* user) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto rating = 1;
|
|
||||||
|
|
||||||
auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID());
|
auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID());
|
||||||
|
|
||||||
if (team != nullptr) {
|
Loot::DropActivityLoot(user, self->GetObjectID(), scriptedActivityComponent->GetActivityID(), team ? team->members.size() : 1);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
self->Smash(self->GetObjectID());
|
self->Smash(self->GetObjectID());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#include "EntityManager.h"
|
#include "EntityManager.h"
|
||||||
#include "dZoneManager.h"
|
#include "dZoneManager.h"
|
||||||
#include "Loot.h"
|
#include "Loot.h"
|
||||||
|
#include "dServer.h"
|
||||||
|
|
||||||
void MinigameTreasureChestServer::OnUse(Entity* self, Entity* user) {
|
void MinigameTreasureChestServer::OnUse(Entity* self, Entity* user) {
|
||||||
auto* sac = self->GetComponent<ScriptedActivityComponent>();
|
auto* sac = self->GetComponent<ScriptedActivityComponent>();
|
||||||
@@ -18,25 +19,9 @@ void MinigameTreasureChestServer::OnUse(Entity* self, Entity* user) {
|
|||||||
UpdatePlayer(self, user->GetObjectID());
|
UpdatePlayer(self, user->GetObjectID());
|
||||||
|
|
||||||
auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID());
|
auto* team = TeamManager::Instance()->GetTeam(user->GetObjectID());
|
||||||
uint32_t activityRating = 0;
|
uint32_t activityRating = CalculateActivityRating(self, user->GetObjectID());
|
||||||
if (team != nullptr) {
|
if (self->GetLOT() == frakjawChestId || Game::server->GetZoneID() == 1204) activityRating = team != nullptr ? team->members.size() : 1;
|
||||||
for (const auto& teamMemberID : team->members) {
|
Loot::DropActivityLoot(user, self->GetObjectID(), sac->GetActivityID(), activityRating);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
sac->PlayerRemove(user->GetObjectID());
|
sac->PlayerRemove(user->GetObjectID());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user