mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 16:37:01 +00:00
- Fixed SMSG_GROUP_LIST opcode once again (I hope so).
- Fixed typos in SQL update. - Added some nice comments.
This commit is contained in:
parent
b09ee8e571
commit
93332fb1a0
4 changed files with 37 additions and 27 deletions
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue