|
From: <iea...@us...> - 2008-09-09 01:23:27
|
Revision: 707
http://seq.svn.sourceforge.net/seq/?rev=707&view=rev
Author: ieatacid
Date: 2008-09-09 01:23:23 +0000 (Tue, 09 Sep 2008)
Log Message:
-----------
+ Updated version to 5.12.5.0
+ Updated/added opcodes where necessary
+ Updated/added/removed code to handle how group member data is sent now
+ Added more item codes from uRit1u2CBBA
Modified Paths:
--------------
showeq/trunk/ChangeLog
showeq/trunk/conf/zoneopcodes.xml
showeq/trunk/configure.in
showeq/trunk/showeq.kdevelop
showeq/trunk/src/everquest.h
showeq/trunk/src/group.cpp
showeq/trunk/src/group.h
showeq/trunk/src/interface.cpp
showeq/trunk/src/messageshell.cpp
showeq/trunk/src/messageshell.h
showeq/trunk/src/player.cpp
showeq/trunk/src/s_everquest.h
showeq/trunk/src/spawnshell.cpp
showeq/trunk/src/weapons2b.h
Modified: showeq/trunk/ChangeLog
===================================================================
--- showeq/trunk/ChangeLog 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/ChangeLog 2008-09-09 01:23:23 UTC (rev 707)
@@ -1,5 +1,11 @@
Version: $Id$ $Name$
+ieatacid (9/8/08)
+- Updated version to 5.12.5.0
+- Updated/added opcodes where necessary
+- Updated/added/removed code to handle how group member data is sent now
+- Added more item codes from uRit1u2CBBA
+
ieatacid (6/21/08)
----------------
+ Updated version to 5.12.4.2
Modified: showeq/trunk/conf/zoneopcodes.xml
===================================================================
--- showeq/trunk/conf/zoneopcodes.xml 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/conf/zoneopcodes.xml 2008-09-09 01:23:23 UTC (rev 707)
@@ -142,29 +142,43 @@
<comment>old ZoneChangeCode</comment>
<payload dir="both" typename="zoneChangeStruct" sizechecktype="match"/>
</opcode>
- <opcode id="5F51" name="OP_GroupInvite" updated="01/17/08">
- <payload dir="both" typename="groupInviteStruct" sizechecktype="match"/>
- <payload dir="both" typename="groupAltInviteStruct" sizechecktype="match"/>
- <comment></comment>
+ <opcode id="5f51" name="OP_GroupInvite" updated="09/03/08">
+ <payload dir="client" typename="groupInviteStruct" sizechecktype="match"/>
+ <payload dir="server" typename="groupAltInviteStruct" sizechecktype="match"/>
+ <comment>You're inviting someone and you're not grouped</comment>
</opcode>
+ <opcode id="548c" name="OP_GroupInvite2" updated="09/03/08">
+ <payload dir="client" typename="groupInviteStruct" sizechecktype="match"/>
+ <comment>You're inviting someone and you are grouped</comment>
+ </opcode>
<opcode id="5251" name="OP_GroupCancelInvite" updated="01/17/08">
<payload dir="both" typename="groupDeclineStruct" sizechecktype="match"/>
<comment>Declining to join a group</comment>
</opcode>
- <opcode id="2736" name="OP_GroupFollow" updated="01/17/08">
- <payload dir="both" typename="groupFollowStruct" sizechecktype="match"/>
- <payload dir="both" typename="groupAltFollowStruct" sizechecktype="match"/>
- <comment>Accepting to join a group</comment>
+ <opcode id="1842" name="OP_GroupFollow" updated="09/03/08">
+ <payload dir="server" typename="groupFollowStruct" sizechecktype="match"/>
+ <comment>You join a group</comment>
</opcode>
- <opcode id="4B61" name="OP_GroupUpdate" updated="01/17/08">
- <payload dir="server" typename="groupFullUpdateStruct" sizechecktype="match"/>
- <payload dir="server" typename="groupUpdateStruct" sizechecktype="match"/>
- <comment></comment>
+ <!--<opcode id="1842" name="OP_GroupFollow2" updated="09/03/08">
+ <payload dir="server" typename="groupAltFollowStruct" sizechecktype="match"/>
+ <comment>Player joins your group</comment>
+ </opcode>-->
+ <opcode id="4036" name="OP_GroupUpdate" updated="09/03/08">
+ <payload dir="server" typename="uint8_t" sizechecktype="none"/>
+ <comment>Variable length packet with group member names</comment>
</opcode>
- <opcode id="47E7" name="OP_GroupDisband" updated="01/17/08">
- <comment>Disband from group</comment>
- <payload dir="both" typename="groupDisbandStruct" sizechecktype="match"/>
+ <opcode id="7545" name="OP_GroupDisband" updated="09/03/08">
+ <comment>You disband from group</comment>
+ <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
</opcode>
+ <opcode id="16be" name="OP_GroupDisband2" updated="09/03/08">
+ <comment>Other disbands from group</comment>
+ <payload dir="server" typename="groupDisbandStruct" sizechecktype="match"/>
+ </opcode>
+ <opcode id="1560" name="OP_GroupLeader" updated="09/03/08">
+ <comment>Group leader change</comment>
+ <payload dir="server" typename="groupLeaderChangeStruct" sizechecktype="match"/>
+ </opcode>
<opcode id="7EA8" name="OP_Buff" updated="01/17/08">
<comment>old BuffDropCode</comment>
<payload dir="both" typename="buffStruct" sizechecktype="match"/>
@@ -796,4 +810,4 @@
<comment></comment>
</opcode>
-->
-</seqopcodes>
\ No newline at end of file
+</seqopcodes>
Modified: showeq/trunk/configure.in
===================================================================
--- showeq/trunk/configure.in 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/configure.in 2008-09-09 01:23:23 UTC (rev 707)
@@ -2,7 +2,7 @@
dnl $Id$ $Name$
AC_PREREQ(2.59)
-AC_INIT(showeq, 5.12.4.2)
+AC_INIT(showeq, 5.12.5.0)
AC_CONFIG_SRCDIR(src/main.cpp)
AC_CANONICAL_SYSTEM
Modified: showeq/trunk/showeq.kdevelop
===================================================================
--- showeq/trunk/showeq.kdevelop 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/showeq.kdevelop 2008-09-09 01:23:23 UTC (rev 707)
@@ -192,10 +192,10 @@
<used>false</used>
<version>3</version>
<includestyle>3</includestyle>
- <root>/usr/lib/qt-3.3</root>
+ <root>/usr/share/qt3</root>
<designerintegration>EmbeddedKDevDesigner</designerintegration>
- <qmake>/usr/lib/qt-3.3/bin/qmake</qmake>
- <designer>/usr/lib/qt-3.3/bin/designer</designer>
+ <qmake>/usr/bin/qmake-qt3</qmake>
+ <designer></designer>
<designerpluginpaths/>
</qt>
</kdevcppsupport>
Modified: showeq/trunk/src/everquest.h
===================================================================
--- showeq/trunk/src/everquest.h 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/everquest.h 2008-09-09 01:23:23 UTC (rev 707)
@@ -603,7 +603,8 @@
/*0908*/ uint8_t unknown0904[8]; // *** Placeholder (02/13/2007)
/*0916*/ uint8_t unknown0916[4]; // *** Placeholder (11/24/2007)
/*0920*/ uint8_t unknown0920[4]; // *** Placeholder (01/17/2008)
-/*0924*/
+/*0924*/ uint8_t unknown0924[4]; // *** Placeholder (09/03/2008)
+/*0928*/
};
/**
@@ -724,10 +725,10 @@
/*16116*/ uint8_t unknown16116[16];
/*16132*/ uint16_t zoneId; // see zones.h
/*16134*/ uint16_t zoneInstance; // Instance id
-/*16136*/ char groupMembers[MAX_GROUP_MEMBERS][64];// all the members in group, including self
-/*16520*/ char groupLeader[64]; // Leader of the group ?
-/*16584*/ uint8_t unknown16584[792];
-/*17376*/ uint32_t leadAAActive; // 0 = leader AA off, 1 = leader AA on
+/*16136*/ //char groupMembers[MAX_GROUP_MEMBERS][64]; // removed 9/3/2008
+/*16520*/ //char groupLeader[64]; // removed 9/3/2008
+/*16136*/ uint8_t unknown16136[800];
+/*16936*/ uint32_t leadAAActive; // 0 = leader AA off, 1 = leader AA on
/*17380*/ uint8_t unknown17380[4];
/*17384*/ uint32_t ldon_guk_points; // Earned GUK points
/*17388*/ uint32_t ldon_mir_points; // Earned MIR points
@@ -1638,12 +1639,13 @@
/*0000*/ int32_t action; // Group update action
/*0004*/ char yourname[64]; // Group Member Names
/*0068*/ char membername[64]; // Group leader name
-/*0132*/ uint8_t unknown0132[320]; // ***Placeholder
-/*452*/
+/*0132*/ uint8_t unknown0132[324]; // ***Placeholder
+/*456*/
};
/*
+** DEPRECATED
** Grouping Infromation
** Length: 768 Octets
** OpCode: OP_GroupUpdate
@@ -1660,7 +1662,7 @@
/*
** Grouping Invite
-** Length 128 Octets (or 132 sometimes)
+** Length 140 Octets (invite a player) or 144 (you get invited)
** Opcode OP_GroupInvite
*/
@@ -1668,20 +1670,21 @@
{
/*0000*/ char invitee[64]; // Invitee's Name
/*0064*/ char inviter[64]; // Inviter's Name
-/*0128*/
+/*0128*/ uint8_t unknown0128[12]; // ***Placeholder
+/*0140*/
};
-// Sometimes there's an extra byte on the end...
+
struct groupAltInviteStruct
{
/*0000*/ char invitee[64]; // Invitee's Name
/*0064*/ char inviter[64]; // Inviter's Name
-/*0128*/ uint8_t unknown0132[4]; // ***Placeholder (not always there)
-/*0132*/
+/*0128*/ uint8_t unknown0132[16]; // ***Placeholder
+/*0144*/
};
/*
** Grouping Invite Answer - Decline
-** Length 129 Octets
+** Length 144 Octets
** Opcode GroupDeclineCode
*/
@@ -1689,34 +1692,31 @@
{
/*0000*/ char yourname[64]; // Player Name
/*0064*/ char membername[64]; // Invited Member Name
-/*0128*/ uint8_t reason; // Already in Group = 1, Declined Invite = 3
-/*0129*/
+/*0128*/ uint8_t unknown0128[12]; // ***Placeholder
+/*0140*/ uint8_t reason; // Already in Group = 1, Declined Invite = 3
+/*0141*/ uint8_t unknown0141[3]; // ***Placeholder
+/*0144*/
};
/*
** Grouping Invite Answer - Accept
-** Length 128 Octets (or sometimes 132)
+** Length 140 Octets
** Opcode OP_GroupFollow
*/
struct groupFollowStruct
{
-/*0000*/ char inviter[64]; // Inviter's Name
+/*0000*/ char unknown0000[64]; // ***Placeholder (zeros)
/*0064*/ char invitee[64]; // Invitee's Member Name
-/*0128*/
+/*0128*/ uint8_t unknown0132[4]; // ***Placeholder
+/*0132*/ uint32_t level; // Invitee's level
+/*0136*/ uint8_t unknown0136[4]; // ***Placeholder (zeros)
+/*0140*/
};
-// Sometimes there's an extra 4 bytes on the end
-struct groupAltFollowStruct
-{
-/*0000*/ char inviter[64]; // Inviter's Name
-/*0064*/ char invitee[64]; // Invitee's Member Name
-/*0128*/ uint8_t unknown0132[4]; // ***Placeholder (not always there)
-/*0132*/
-};
/*
** Group Disbanding
-** Length 128 Octets
+** Length 140 Octets
** Opcode
*/
@@ -1724,10 +1724,24 @@
{
/*0000*/ char yourname[64]; // Player Name
/*0064*/ char membername[64]; // Invited Member Name
-/*0128*/
+/*0128*/ uint8_t unknown0128[12]; // ***Placeholder
+/*0140*/
};
+/*
+** Group Leader Change
+** Length 140 Octets
+** Opcode OP_GroupLeader
+*/
+struct groupLeaderChangeStruct
+{
+/*0000*/ char unknown0000[64]; // ***Placeholder
+/*0064*/ char membername[64]; // Invited Member Name
+/*0128*/ uint8_t unknown0128[12]; // ***Placeholder
+/*0140*/
+};
+
/*
** Delete Self
** Length: 4 Octets
Modified: showeq/trunk/src/group.cpp
===================================================================
--- showeq/trunk/src/group.cpp 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/group.cpp 2008-09-09 01:23:23 UTC (rev 707)
@@ -13,6 +13,7 @@
#include "spawnshell.h"
#include "everquest.h"
#include "diagnosticmessages.h"
+#include "netstream.h"
GroupMgr::GroupMgr(SpawnShell* spawnShell,
Player* player,
@@ -41,6 +42,8 @@
}
}
+// 9/3/2008 - Not used. Group data is no longer sent in charProfile
+#if 0
void GroupMgr::player(const charProfileStruct* player)
{
// reset counters
@@ -52,7 +55,8 @@
// initialize the array of members with information from the player profile
for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
{
- m_members[i]->m_name = player->groupMembers[i];
+// so it compiles
+// m_members[i]->m_name = player->groupMembers[i];
if (!m_members[i]->m_name.isEmpty())
m_memberCount++;
@@ -62,125 +66,134 @@
else
{
m_members[i]->m_spawn = (const Spawn*)m_player;
-
+
m_membersInZoneCount++;
}
emit added(m_members[i]->m_name, m_members[i]->m_spawn);
}
}
-
+#endif
+
void GroupMgr::groupUpdate(const uint8_t* data, size_t size)
{
- const groupUpdateStruct* gupdate = 0;
- const groupFullUpdateStruct* gfupdate = 0;
+ // it's a variable-length packet depending on number of group members and length of names
+ NetStream netStream(data, size);
+ uint32_t memCount, memNumber, level;
+ QString name;
- if (size == sizeof(groupFullUpdateStruct))
- {
- // got a full group update packet
- gfupdate = (const groupFullUpdateStruct*)data;
+ netStream.skipBytes(4);
- // what action is this?
- if (gfupdate->action == GUA_FullGroupInfo)
- {
- // reset counters
- m_memberCount = 0;
- m_membersInZoneCount = 0;
+ // number of group members
+ memCount = netStream.readUInt32NC();
- emit cleared();
+ // leader name
+ name = netStream.readText();
- // ok, this is a full update of all group member information
- for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
- {
- // copy the member name
- m_members[i]->m_name = gfupdate->membernames[i];
+ // reset counters
+ m_memberCount = 0;
+ m_membersInZoneCount = 0;
- // if their is a member, increment the member count
- if (!m_members[i]->m_name.isEmpty())
- m_memberCount++;
+ emit cleared();
- // attempt to retrieve the members spawn
- m_members[i]->m_spawn =
- m_spawnShell->findSpawnByName(m_members[i]->m_name);
+ // update group member information
+ for(uint32_t i = 0; i < memCount; i++)
+ {
+ memNumber = netStream.readUInt32NC();
+ name = netStream.readText();
+ netStream.skipBytes(3);
+ level = netStream.readUInt32NC();
- // incremement the spawn count
- if (m_members[i]->m_spawn)
- m_membersInZoneCount++;
+ // copy the member name
+ m_members[i]->m_name = name;
- emit added(m_members[i]->m_name, m_members[i]->m_spawn);
- }
- }
+ // increment the member count
+ m_memberCount++;
+
+ // attempt to retrieve the members spawn
+ m_members[i]->m_spawn = m_spawnShell->findSpawnByName(m_members[i]->m_name);
+
+ // incremement the spawn count
+ if (m_members[i]->m_spawn)
+ m_membersInZoneCount++;
+
+ emit added(m_members[i]->m_name, m_members[i]->m_spawn);
}
- else
+
+ // clear the rest
+ for(uint32_t i = memCount; i < MAX_GROUP_MEMBERS; i++)
{
- gupdate = (const groupUpdateStruct*)data;
+ m_members[i]->m_name = "";
+ m_members[i]->m_spawn = 0;
+ }
- switch (gupdate->action)
- {
- case GUA_Started:
- case GUA_Joined:
- // iterate over all the slots until an empty one is found
- for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
+// for debugging
+#if 0
+ for(uint32_t i = 0; i < MAX_GROUP_MEMBERS; i++)
+ {
+ if(!m_members[i]->m_name.isEmpty())
+ seqDebug("GroupMgr::groupUpdate '%s'", m_members[i]->m_name.latin1());
+ }
+#endif
+}
+
+void GroupMgr::addGroupMember(const uint8_t* data)
+{
+ const groupFollowStruct* gmem = (const groupFollowStruct*)data;
+
+ for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ {
+ if (m_members[i]->m_name.isEmpty())
{
- if (m_members[i]->m_name.isEmpty())
- {
- // copy the member name
- m_members[i]->m_name = gupdate->membername;
-
- // if their is a member, increment the member count
- if (!m_members[i]->m_name.isEmpty())
- m_memberCount++;
-
- // attempt to retrieve the members spawn
- m_members[i]->m_spawn =
- m_spawnShell->findSpawnByName(m_members[i]->m_name);
-
- // incremement the spawn count
- if (m_members[i]->m_spawn)
- m_membersInZoneCount++;
+ // copy the member name
+ m_members[i]->m_name = gmem->invitee;
- // signal the addition
- emit added(m_members[i]->m_name, m_members[i]->m_spawn);
+ // if there is a member, increment the member count
+ if (!m_members[i]->m_name.isEmpty())
+ m_memberCount++;
- // added it, so break
- break;
- }
+ // attempt to retrieve the member's spawn
+ m_members[i]->m_spawn = m_spawnShell->findSpawnByName(m_members[i]->m_name);
+
+ // incremement the spawn count
+ if (m_members[i]->m_spawn)
+ m_membersInZoneCount++;
+
+ // signal the addition
+ emit added(m_members[i]->m_name, m_members[i]->m_spawn);
+
+ // added it, so break
+ break;
}
- break;
- case GUA_Left:
- // iterate over all the slots until the member is found
- for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ }
+}
+
+void GroupMgr::removeGroupMember(const uint8_t* data)
+{
+ const groupDisbandStruct* gmem = (const groupDisbandStruct*)data;
+
+ for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
+ {
+ // is this the member?
+ if (m_members[i]->m_name == gmem->membername)
{
- // is this the member?
- if (m_members[i]->m_name == gupdate->membername)
- {
- // yes, announce its removal
- emit removed(m_members[i]->m_name, m_members[i]->m_spawn);
+ // yes, announce its removal
+ emit removed(m_members[i]->m_name, m_members[i]->m_spawn);
- // clear it
- m_members[i]->m_name = "";
- m_members[i]->m_spawn = 0;
- break;
- }
- }
- break;
- case GUA_LastLeft:
- // reset counters
- m_memberCount = 0;
- m_membersInZoneCount = 0;
+ // decrement member count
+ m_memberCount--;
- // iterate over all the member slots and clear them
- for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
- {
- // clear the member
- m_members[i]->m_name = "";
- m_members[i]->m_spawn = 0;
+ // if the member is in zone decrement zone count
+ m_members[i]->m_spawn = m_spawnShell->findSpawnByName(m_members[i]->m_name);
+ if(m_members[i]->m_spawn)
+ m_membersInZoneCount--;
+
+ // clear it
+ m_members[i]->m_name = "";
+ m_members[i]->m_spawn = 0;
+ break;
}
-
- emit cleared();
- break;
- }
- }
+ }
}
void GroupMgr::addItem(const Item* item)
Modified: showeq/trunk/src/group.h
===================================================================
--- showeq/trunk/src/group.h 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/group.h 2008-09-09 01:23:23 UTC (rev 707)
@@ -43,8 +43,10 @@
unsigned long totalLevels();
public slots:
- void player(const charProfileStruct* player);
+// void player(const charProfileStruct* player);
void groupUpdate(const uint8_t* data, size_t size);
+ void addGroupMember(const uint8_t* data);
+ void removeGroupMember(const uint8_t* data);
void addItem(const Item* item);
void delItem(const Item* item);
void killSpawn(const Item* item);
Modified: showeq/trunk/src/interface.cpp
===================================================================
--- showeq/trunk/src/interface.cpp 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/interface.cpp 2008-09-09 01:23:23 UTC (rev 707)
@@ -1652,14 +1652,25 @@
if (m_groupMgr != 0)
{
- connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
- m_groupMgr, SLOT(player(const charProfileStruct*)));
+// 9/3/2008 - Group data is no longer sent in charProfile
+// connect(m_zoneMgr, SIGNAL(playerProfile(const charProfileStruct*)),
+// m_groupMgr, SLOT(player(const charProfileStruct*)));
+ //remove this
+// m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
+// "groupUpdateStruct", SZC_None,
+// m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
- "groupUpdateStruct", SZC_Match,
- m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
- m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
- "groupFullUpdateStruct", SZC_Match,
- m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
+ "uint8_t", SZC_None,
+ m_groupMgr, SLOT(groupUpdate(const uint8_t*, size_t)));
+ m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
+ "groupFollowStruct", SZC_Match,
+ m_groupMgr, SLOT(addGroupMember(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_groupMgr, SLOT(removeGroupMember(const uint8_t*)));
// connect GroupMgr slots to SpawnShell signals
connect(m_spawnShell, SIGNAL(addItem(const Item*)),
m_groupMgr, SLOT(addItem(const Item*)));
@@ -1832,25 +1843,34 @@
connect(m_dateTimeMgr, SIGNAL(syncDateTime(const QDateTime&)),
m_messageShell, SLOT(syncDateTime(const QDateTime&)));
- m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
- "groupUpdateStruct", SZC_Match,
- m_messageShell, SLOT(groupUpdate(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
- "groupFullUpdateStruct", SZC_Match,
- m_messageShell, SLOT(groupUpdate(const uint8_t*, size_t, uint8_t)));
- m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Server|DIR_Client,
+// 9/3/2008 - Removed. Serialized packet now.
+// m_packet->connect2("OP_GroupUpdate", SP_Zone, DIR_Server,
+// "groupUpdateStruct", SZC_None,
+// m_messageShell, SLOT(groupUpdate(const uint8_t*, size_t, uint8_t)));
+ m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Client,
"groupInviteStruct", SZC_Match,
m_messageShell, SLOT(groupInvite(const uint8_t*)));
- m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server|DIR_Client,
+ m_packet->connect2("OP_GroupInvite", SP_Zone, DIR_Server,
+ "groupAltInviteStruct", SZC_Match,
+ m_messageShell, SLOT(groupInvite(const uint8_t*)));
+ m_packet->connect2("OP_GroupInvite2", SP_Zone, DIR_Client,
+ "groupInviteStruct", SZC_Match,
+ m_messageShell, SLOT(groupInvite(const uint8_t*)));
+ m_packet->connect2("OP_GroupFollow", SP_Zone, DIR_Server,
"groupFollowStruct", SZC_Match,
- m_messageShell, SLOT(groupFollow(const uint8_t*)));
+ m_messageShell, SLOT(groupFollow(const uint8_t*)));
m_packet->connect2("OP_GroupDisband", SP_Zone, DIR_Server,
"groupDisbandStruct", SZC_Match,
- m_messageShell, SLOT(groupDisband(const uint8_t*, size_t, uint8_t)));
-
+ m_messageShell, SLOT(groupDisband(const uint8_t*)));
+ m_packet->connect2("OP_GroupDisband2", SP_Zone, DIR_Server,
+ "groupDisbandStruct", SZC_Match,
+ m_messageShell, SLOT(groupDisband(const uint8_t*)));
m_packet->connect2("OP_GroupCancelInvite", SP_Zone, DIR_Server|DIR_Client,
"groupDeclineStruct", SZC_Match,
m_messageShell, SLOT(groupDecline(const uint8_t*)));
+ m_packet->connect2("OP_GroupLeader", SP_Zone, DIR_Server,
+ "groupLeaderChangeStruct", SZC_Match,
+ m_messageShell, SLOT(groupLeaderChange(const uint8_t*)));
}
if (m_filterNotifications)
Modified: showeq/trunk/src/messageshell.cpp
===================================================================
--- showeq/trunk/src/messageshell.cpp 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/messageshell.cpp 2008-09-09 01:23:23 UTC (rev 707)
@@ -24,8 +24,8 @@
// MessageShell
MessageShell::MessageShell(Messages* messages, EQStr* eqStrings,
Spells* spells, ZoneMgr* zoneMgr,
- SpawnShell* spawnShell, Player* player,
- QObject* parent, const char* name)
+ SpawnShell* spawnShell, Player* player,
+ QObject* parent, const char* name)
: QObject(parent, name),
m_messages(messages),
m_eqStrings(eqStrings),
@@ -605,7 +605,7 @@
m_messages->addMessage(MT_Spell, tempStr);
}
-
+// 9/30/2008 - no longer used. Group info is sent differently now
void MessageShell::groupUpdate(const uint8_t* data, size_t size, uint8_t dir)
{
if (size != sizeof(groupUpdateStruct))
@@ -613,6 +613,7 @@
// Ignore groupFullUpdateStruct
return;
}
+ return;
const groupUpdateStruct* gmem = (const groupUpdateStruct*)data;
QString tempStr;
@@ -656,28 +657,51 @@
{
const groupDeclineStruct* gmem = (const groupDeclineStruct*)data;
QString tempStr;
- tempStr.sprintf("Invite: %s declines invite from %s (%i)",
- gmem->membername, gmem->yourname, gmem->reason);
+ switch(gmem->reason)
+ {
+ case 1:
+ tempStr.sprintf("Invite: %s declines invite from %s (player is grouped)",
+ gmem->membername, gmem->yourname);
+ break;
+ case 3:
+ tempStr.sprintf("Invite: %s declines invite from %s",
+ gmem->membername, gmem->yourname);
+ break;
+ default:
+ tempStr.sprintf("Invite: %s declines invite from %s (unknown reason: %i)",
+ gmem->membername, gmem->yourname, gmem->reason);
+ break;
+ }
m_messages->addMessage(MT_Group, tempStr);
}
void MessageShell::groupFollow(const uint8_t* data)
{
- const groupFollowStruct* gmem = (const groupFollowStruct*)data;
+ const groupFollowStruct* gFollow = (const groupFollowStruct*)data;
QString tempStr;
- tempStr.sprintf("Follow: %s accepts invite from %s",
- gmem->invitee, gmem->inviter);
+
+ tempStr.sprintf("Follow: %s has joined the group", gFollow->invitee);
m_messages->addMessage(MT_Group, tempStr);
}
-void MessageShell::groupDisband(const uint8_t* data, size_t, uint8_t dir)
+void MessageShell::groupDisband(const uint8_t* data)
{
const groupDisbandStruct* gmem = (const groupDisbandStruct*)data;
QString tempStr;
+
tempStr.sprintf ("Disband: %s disbands from the group", gmem->membername);
m_messages->addMessage(MT_Group, tempStr);
}
+void MessageShell::groupLeaderChange(const uint8_t* data)
+{
+ const groupLeaderChangeStruct *gmem = (const groupLeaderChangeStruct*)data;
+ QString tempStr;
+ tempStr.sprintf("Update: %s is now the leader of the group",
+ gmem->membername);
+ m_messages->addMessage(MT_Group, tempStr);
+}
+
void MessageShell::player(const charProfileStruct* player)
{
QString message;
@@ -731,13 +755,14 @@
m_messages->addMessage(MT_Player, message);
#endif
- message.sprintf("Group: %s %s %s %s %s %s", player->groupMembers[0],
- player->groupMembers[1],
- player->groupMembers[2],
- player->groupMembers[3],
- player->groupMembers[4],
- player->groupMembers[5]);
- m_messages->addMessage(MT_Player, message);
+// 09/03/2008 patch - this is no longer sent in charProfile
+// message.sprintf("Group: %s %s %s %s %s %s", player->groupMembers[0],
+// player->groupMembers[1],
+// player->groupMembers[2],
+// player->groupMembers[3],
+// player->groupMembers[4],
+// player->groupMembers[5]);
+// m_messages->addMessage(MT_Player, message);
int buffnumber;
for (buffnumber=0;buffnumber<MAX_BUFFS;buffnumber++)
Modified: showeq/trunk/src/messageshell.h
===================================================================
--- showeq/trunk/src/messageshell.h 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/messageshell.h 2008-09-09 01:23:23 UTC (rev 707)
@@ -41,9 +41,8 @@
Q_OBJECT
public:
MessageShell(Messages* messages, EQStr* eqStrings, Spells* spells,
- ZoneMgr* zoneMgr,
- SpawnShell* spawnShell, Player* player,
- QObject* parent = 0, const char* name = 0);
+ ZoneMgr* zoneMgr, SpawnShell* spawnShell,
+ Player* player, QObject* parent = 0, const char* name = 0);
public slots:
void channelMessage(const uint8_t* cmsg, size_t, uint8_t);
@@ -80,7 +79,8 @@
void groupInvite(const uint8_t* gmem);
void groupDecline(const uint8_t* gmem);
void groupFollow(const uint8_t* gmem);
- void groupDisband(const uint8_t* gmem, size_t, uint8_t);
+ void groupDisband(const uint8_t* gmem);
+ void groupLeaderChange(const uint8_t* gmem);
void syncDateTime(const QDateTime&);
Modified: showeq/trunk/src/player.cpp
===================================================================
--- showeq/trunk/src/player.cpp 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/player.cpp 2008-09-09 01:23:23 UTC (rev 707)
@@ -815,7 +815,7 @@
return;
else if (dir == DIR_Client)
setPlayerID(pupdate->spawnId);
-
+
int16_t py = int16_t(pupdate->y);
int16_t px = int16_t(pupdate->x);
int16_t pz = int16_t(pupdate->z);
Modified: showeq/trunk/src/s_everquest.h
===================================================================
--- showeq/trunk/src/s_everquest.h 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/s_everquest.h 2008-09-09 01:23:23 UTC (rev 707)
@@ -66,8 +66,8 @@
AddStruct(groupAltInviteStruct);
AddStruct(groupDeclineStruct);
AddStruct(groupFollowStruct);
-AddStruct(groupAltFollowStruct);
AddStruct(groupDisbandStruct);
+AddStruct(groupLeaderChangeStruct);
AddStruct(deleteSpawnStruct);
AddStruct(removeSpawnStruct);
AddStruct(remDropStruct);
Modified: showeq/trunk/src/spawnshell.cpp
===================================================================
--- showeq/trunk/src/spawnshell.cpp 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/spawnshell.cpp 2008-09-09 01:23:23 UTC (rev 707)
@@ -482,6 +482,10 @@
int32_t SpawnShell::fillSpawnStruct(spawnStruct *spawn, const uint8_t *data, size_t len, bool checkLen)
{
+ /*
+ This reads data from the variable-length spawn struct
+ */
+
NetStream netStream(data,len);
int32_t retVal;
uint32_t race;
Modified: showeq/trunk/src/weapons2b.h
===================================================================
--- showeq/trunk/src/weapons2b.h 2008-06-24 22:56:19 UTC (rev 706)
+++ showeq/trunk/src/weapons2b.h 2008-09-09 01:23:23 UTC (rev 707)
@@ -52,7 +52,7 @@
NULL, // 0x2b
NULL, // 0x2c
NULL, // 0x2d
- NULL, // 0x2e
+ "Box", // 0x2e
NULL, // 0x2f
"Plant", // 0x30
NULL, // 0x31
@@ -158,7 +158,7 @@
NULL, // 0x95
NULL, // 0x96
NULL, // 0x97
- NULL, // 0x98
+ "Crystal", // 0x98
NULL, // 0x99
NULL, // 0x9a
NULL, // 0x9b
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|