Fix mail, professions, group loot, console spam, and some fixes. Big thx to TOM_RUS.

--HG--
branch : trunk
This commit is contained in:
n0n4m3
2010-04-11 11:16:42 +04:00
parent 457df07bd4
commit be95faff23
34 changed files with 302 additions and 299 deletions

View File

@@ -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);
}
}