@@ -808,6 +808,7 @@ void MobAI::onDeath(CombatNPC* npc, EntityRef src) {
808808 Items::DropRoll rolled;
809809 Items::DropRoll eventRolled;
810810 std::map<int , int > qitemRolls;
811+ std::vector<EntityRef> playersInRange;
811812 std::vector<Player*> playerRefs;
812813
813814 if (plr->group == nullptr ) {
@@ -818,8 +819,6 @@ void MobAI::onDeath(CombatNPC* npc, EntityRef src) {
818819 }
819820 else {
820821 auto players = plr->group ->filter (EntityKind::PLAYER);
821- for (EntityRef pRef : players) playerRefs.push_back (PlayerManager::getPlayer (pRef.sock ));
822- Combat::genQItemRolls (playerRefs, qitemRolls);
823822 for (int i = 0 ; i < players.size (); i++) {
824823 CNSocket* sockTo = players[i].sock ;
825824 Player* otherPlr = PlayerManager::getPlayer (sockTo);
@@ -829,7 +828,14 @@ void MobAI::onDeath(CombatNPC* npc, EntityRef src) {
829828 if (dist > 5000 )
830829 continue ;
831830
832- Items::giveMobDrop (sockTo, self, rolled, eventRolled, players.size ());
831+ playersInRange.push_back (players[i]);
832+ }
833+
834+ for (EntityRef pRef : playersInRange) playerRefs.push_back (PlayerManager::getPlayer (pRef.sock ));
835+ Combat::genQItemRolls (playerRefs, qitemRolls);
836+ for (int i = 0 ; i < playersInRange.size (); i++) {
837+ CNSocket* sockTo = playersInRange[i].sock ;
838+ Items::giveMobDrop (sockTo, self, rolled, eventRolled, playersInRange.size ());
833839 Missions::mobKilled (sockTo, self->type , qitemRolls);
834840 }
835841 }
0 commit comments