From ee978e8bc9b7ef6517e33bc6823122e06cf1e284 Mon Sep 17 00:00:00 2001 From: dongresource Date: Sun, 27 Dec 2020 20:52:37 +0100 Subject: [PATCH] Limit group member drops based on proximity --- src/MobManager.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/MobManager.cpp b/src/MobManager.cpp index 534a3b3..abaaea2 100644 --- a/src/MobManager.cpp +++ b/src/MobManager.cpp @@ -395,6 +395,16 @@ void MobManager::killMob(CNSocket *sock, Mob *mob) { for (int i = 0; i < otherPlayer->groupCnt; i++) { CNSocket* sockTo = PlayerManager::getSockFromID(otherPlayer->groupIDs[i]); + if (sockTo == nullptr) + continue; + + Player *otherPlr = PlayerManager::getPlayer(sockTo); + + // only contribute to group members' kills if they're close enough + int dist = std::hypot(plr->x - otherPlr->x + 1, plr->y - otherPlr->y + 1); + if (dist > 5000) + continue; + giveReward(sockTo, mob); MissionManager::mobKilled(sockTo, mob->appearanceData.iNPCType); }