aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-09-21 21:55:16 +0200
committerShauren <none@none>2010-09-21 21:55:16 +0200
commitd8ddf38453cb988645244d0f10da10f1d1665c93 (patch)
treef15bd1a980aec13570fa0f49b1a148fb3702c36b /src/server/game/Groups/Group.cpp
parent5eb0fd80acfb0fe93b6e0e1af09d8129534120c2 (diff)
Core/Items: Implemented trading soulbound loot items
Core/DBLayer: Converted more more player-related queries into prepared statements Core/Items: Fixed loading of enchantments Closes issue #4130. --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r--src/server/game/Groups/Group.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 8877839e2af..415a406635d 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -665,6 +665,7 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
{
if (member->IsWithinDistInMap(pLootedObject,sWorld.getFloatConfig(CONFIG_GROUP_XP_DISTANCE),false))
{
+
r->totalPlayersRolling++;
if (member->GetPassOnGroupLoot())
@@ -674,9 +675,7 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
// can't broadcast the pass now. need to wait until all rolling players are known.
}
else
- {
r->playerVote[member->GetGUID()] = NOT_EMITED_YET;
- }
}
}
}
@@ -723,7 +722,7 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject)
delete r;
}
else
- i->is_underthreshold=1;
+ i->is_underthreshold = true;
}
}
@@ -750,7 +749,8 @@ void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject)
if (!playerToRoll || !playerToRoll->GetSession())
continue;
- if (playerToRoll->CanUseItem(item) == EQUIP_ERR_OK && i->AllowedForPlayer(playerToRoll))
+ bool allowedForPlayer = i->AllowedForPlayer(playerToRoll);
+ if (playerToRoll->CanUseItem(item) == EQUIP_ERR_OK && allowedForPlayer)
{
if (playerToRoll->IsWithinDistInMap(pLootedObject,sWorld.getFloatConfig(CONFIG_GROUP_XP_DISTANCE),false))
{
@@ -808,7 +808,7 @@ void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject)
delete r;
}
else
- i->is_underthreshold=1;
+ i->is_underthreshold = true;
}
}
@@ -949,7 +949,8 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
item->is_looted = true;
roll->getLoot()->NotifyItemRemoved(roll->itemSlot);
roll->getLoot()->unlootedCount--;
- player->StoreNewItem(dest, roll->itemid, true, item->randomPropertyId);
+ AllowedLooterSet* looters = item->GetAllowedLooters();
+ player->StoreNewItem(dest, roll->itemid, true, item->randomPropertyId, (looters->size() > 1) ? looters : NULL);
}
else
{
@@ -1001,7 +1002,8 @@ void Group::CountTheRoll(Rolls::iterator rollI, uint32 NumberOfPlayers)
item->is_looted = true;
roll->getLoot()->NotifyItemRemoved(roll->itemSlot);
roll->getLoot()->unlootedCount--;
- player->StoreNewItem(dest, roll->itemid, true, item->randomPropertyId);
+ AllowedLooterSet* looters = item->GetAllowedLooters();
+ player->StoreNewItem(dest, roll->itemid, true, item->randomPropertyId, (looters->size() > 1) ? looters : NULL);
}
else
{