- Fixed SMSG_GROUP_LIST opcode once again (I hope so).

- Fixed typos in SQL update.
- Added some nice comments.
This commit is contained in:
tomrus88 2009-11-16 02:01:09 +03:00
parent b09ee8e571
commit 93332fb1a0
4 changed files with 37 additions and 27 deletions

View file

@ -1,4 +1,4 @@
DROP TABLE IF EXIST `quest_poi`;
DROP TABLE IF EXISTS `quest_poi`;
CREATE TABLE `quest_poi` (
`questid` int(11) unsigned NOT NULL DEFAULT '0',
`objIndex` int(11) NOT NULL DEFAULT '0',
@ -7,7 +7,7 @@ CREATE TABLE `quest_poi` (
PRIMARY KEY (`questid`,`objIndex`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
DROP TABLE IF EXIST `quest_poi_points`;
DROP TABLE IF EXISTS `quest_poi_points`;
CREATE TABLE `quest_poi_points` (
`questId` int(11) unsigned NOT NULL DEFAULT '0',
`objIndex` int(11) NOT NULL DEFAULT '0',

View file

@ -364,8 +364,9 @@ uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
}
else
{
data.Initialize(SMSG_GROUP_LIST, 24);
data << uint64(0) << uint64(0) << uint64(0);
data.Initialize(SMSG_GROUP_LIST, 1+1+1+1+8+4+4+8);
data << uint8(0x10) << uint8(0) << uint8(0) << uint8(0);
data << uint64(0) << uint32(0) << uint32(0) << uint64(0);
player->GetSession()->SendPacket(&data);
}
@ -447,8 +448,9 @@ void Group::Disband(bool hideDestroy)
}
else
{
data.Initialize(SMSG_GROUP_LIST, 24);
data << uint64(0) << uint64(0) << uint64(0);
data.Initialize(SMSG_GROUP_LIST, 1+1+1+1+8+4+4+8);
data << uint8(0x10) << uint8(0) << uint8(0) << uint8(0);
data << uint64(0) << uint32(0) << uint32(0) << uint64(0);
player->GetSession()->SendPacket(&data);
}
@ -979,11 +981,17 @@ void Group::SendUpdate()
continue;
// guess size
WorldPacket data(SMSG_GROUP_LIST, (1+1+1+1+8+4+GetMembersCount()*20));
data << (uint8)m_groupType; // group type
data << (uint8)(isBGGroup() ? 1 : 0); // 2.0.x, isBattleGroundGroup?
data << (uint8)(citr->group); // groupid
data << (uint8)(citr->assistant?0x01:0); // 0x2 main assist, 0x4 main tank
data << uint8(m_groupType); // group type (flags in 3.3)
data << uint8(isBGGroup() ? 1 : 0); // 2.0.x, isBattleGroundGroup?
data << uint8(citr->group); // groupid
data << uint8(citr->assistant ? 0x01 : 0x00); // 0x2 main assist, 0x4 main tank
if(m_groupType & GROUPTYPE_LFD)
{
data << uint8(0);
data << uint32(0);
}
data << uint64(0x50000000FFFFFFFELL); // related to voice chat?
data << uint32(0); // 3.3, may be some kind of time
data << uint32(GetMembersCount()-1);
for(member_citerator citr2 = m_memberSlots.begin(); citr2 != m_memberSlots.end(); ++citr2)
{
@ -994,23 +1002,23 @@ void Group::SendUpdate()
onlineState = onlineState | ((isBGGroup()) ? MEMBER_STATUS_PVP : 0);
data << citr2->name;
data << (uint64)citr2->guid;
data << uint64(citr2->guid);
// online-state
data << (uint8)(onlineState);
data << (uint8)(citr2->group); // groupid
data << (uint8)(citr2->assistant?0x01:0); // 0x2 main assist, 0x4 main tank
data << uint8(0); // 3.3
data << uint8(onlineState);
data << uint8(citr2->group); // groupid
data << uint8(citr2->assistant?0x01:0); // 0x2 main assist, 0x4 main tank
data << uint8(0); // 3.3, role?
}
data << uint64(m_leaderGuid); // leader guid
if(GetMembersCount()-1)
{
data << (uint8)m_lootMethod; // loot method
data << (uint64)m_looterGuid; // looter guid
data << (uint8)m_lootThreshold; // loot threshold
data << (uint8)m_dungeonDifficulty; // Dungeon Difficulty
data << (uint8)m_raidDifficulty; // Raid Difficulty
data << uint8(0); // 3.3
data << uint8(m_lootMethod); // loot method
data << uint64(m_looterGuid); // looter guid
data << uint8(m_lootThreshold); // loot threshold
data << uint8(m_dungeonDifficulty); // Dungeon Difficulty
data << uint8(m_raidDifficulty); // Raid Difficulty
data << uint8(0); // 3.3, dynamic difficulty?
}
player->GetSession()->SendPacket( &data );
}

View file

@ -57,11 +57,13 @@ enum GroupMemberOnlineStatus
enum GroupType // group type flags?
{
GROUPTYPE_NORMAL = 0,
GROUPTYPE_BG = 1,
GROUPTYPE_RAID = 2,
GROUPTYPE_BGRAID = 3,
GROUPTYPE_LFD = 4
GROUPTYPE_NORMAL = 0x00,
GROUPTYPE_BG = 0x01,
GROUPTYPE_RAID = 0x02,
GROUPTYPE_BGRAID = GROUPTYPE_BG | GROUPTYPE_RAID, // mask
// 0x04?
GROUPTYPE_LFD = 0x08,
// 0x10, leave/change group?, I saw this flag when leaving group and after leaving BG while in group
};
class BattleGround;

View file

@ -20743,4 +20743,4 @@ void Player::SendDuelCountdown(uint32 counter)
WorldPacket data(SMSG_DUEL_COUNTDOWN, 4);
data << uint32(counter); // seconds
GetSession()->SendPacket(&data);
}
}