diff options
Diffstat (limited to 'src/game/Group.cpp')
-rw-r--r-- | src/game/Group.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/game/Group.cpp b/src/game/Group.cpp index c06833354e6..de03527da31 100644 --- a/src/game/Group.cpp +++ b/src/game/Group.cpp @@ -470,10 +470,11 @@ void Group::Disband(bool hideDestroy) /*** LOOT SYSTEM ***/ /*********************************************************/ -void Group::SendLootStartRoll(uint32 CountDown, const Roll &r) +void Group::SendLootStartRoll(uint32 CountDown, uint32 mapid, const Roll &r) { WorldPacket data(SMSG_LOOT_START_ROLL, (8+4+4+4+4+4+4+1)); data << uint64(r.itemGUID); // guid of rolled item + data << uint32(mapid); // 3.3.3 mapid data << uint32(r.totalPlayersRolling); // maybe the number of players rolling for it??? data << uint32(r.itemid); // the itemEntryId for the item that shall be rolled for data << uint32(r.itemRandomSuffix); // randomSuffix @@ -504,7 +505,7 @@ void Group::SendLootRoll(const uint64& SourceGuid, const uint64& TargetGuid, uin data << uint32(r.itemRandomPropId); // Item random property ID data << uint8(RollNumber); // 0: "Need for: [item name]" > 127: "you passed on: [item name]" Roll number data << uint8(RollType); // 0: "Need for: [item name]" 0: "You have selected need for [item name] 1: need roll 2: greed roll - data << uint8(0); // 2.4.0 + data << uint8(0); // auto pass on loot for (Roll::PlayerVote::const_iterator itr=r.playerVote.begin(); itr != r.playerVote.end(); ++itr) { @@ -624,7 +625,8 @@ void Group::GroupLoot(Loot *loot, WorldObject* pLootedObject) loot->items[itemSlot].is_blocked = true; - SendLootStartRoll(60000, *r); + Creature *creature; + SendLootStartRoll(60000, creature->GetMapId(), *r); RollId.push_back(r); @@ -689,7 +691,8 @@ void Group::NeedBeforeGreed(Loot *loot, WorldObject* pLootedObject) loot->items[itemSlot].is_blocked = true; - SendLootStartRoll(60000, *r); + Creature *creature; + SendLootStartRoll(60000, creature->GetMapId(), *r); RollId.push_back(r); @@ -726,7 +729,7 @@ void Group::MasterLoot(Loot* /*loot*/, WorldObject* pLootedObject) if (looter->IsWithinDistInMap(pLootedObject,sWorld.getConfig(CONFIG_GROUP_XP_DISTANCE),false)) { - data << looter->GetGUID(); + data << uint64(looter->GetGUID()); ++real_count; } } @@ -1096,8 +1099,8 @@ void Group::OfflineReadyCheck() if (!pl || !pl->GetSession()) { WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9); - data << citr->guid; - data << (uint8)0; + data << uint64(citr->guid); + data << uint8(0); BroadcastReadyCheck(&data); } } |