summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/packetsout.inc8
-rw-r--r--src/net/eathena/partyhandler.cpp28
2 files changed, 30 insertions, 6 deletions
diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc
index a9c803e48..b1f8458d7 100644
--- a/src/net/eathena/packetsout.inc
+++ b/src/net/eathena/packetsout.inc
@@ -285,11 +285,19 @@ if (packetVersion >= 20041108)
packet(CMSG_ALCHEMIST_RANKS, 0x0218, 2, clif->pAlchemist);
packet(CMSG_BLACKSMITH_RANKS, 0x0217, 2, clif->pBlacksmith);
}
+
// 20050530
if (packetVersion >= 20050530)
{
packet(CMSG_PK_RANKS, 0x0237, 2, clif->pRankingPk);
}
+
+// 20090603
+if (packetVersion >= 20090603)
+{
+ packet(CMSG_PARTY_SETTINGS, 0x07d7, 8, clif->pPartyChangeOption);
+}
+
// 20150513
if (packetVersion >= 20150513)
{
diff --git a/src/net/eathena/partyhandler.cpp b/src/net/eathena/partyhandler.cpp
index 3aa26b1b5..67a86c14c 100644
--- a/src/net/eathena/partyhandler.cpp
+++ b/src/net/eathena/partyhandler.cpp
@@ -37,6 +37,7 @@
#include "debug.h"
extern Net::PartyHandler *partyHandler;
+extern int packetVersion;
namespace EAthena
{
@@ -137,9 +138,16 @@ void PartyHandler::setShareExperience(const PartyShareT share) const
return;
createOutPacket(CMSG_PARTY_SETTINGS);
- outMsg.writeInt16(CAST_S16(share), "share exp");
- outMsg.writeInt16(CAST_S16(Ea::PartyRecv::mShareItems),
- "share items");
+ if (packetVersion >= 20090603)
+ {
+ outMsg.writeInt32(CAST_S32(share), "share exp");
+ outMsg.writeInt16(CAST_S16(Ea::PartyRecv::mShareItems),
+ "share items");
+ }
+ else
+ {
+ outMsg.writeInt32(CAST_S32(share), "share exp");
+ }
}
// +++ must be 3 types item, exp, pickup
@@ -149,9 +157,17 @@ void PartyHandler::setShareItems(const PartyShareT share) const
return;
createOutPacket(CMSG_PARTY_SETTINGS);
- outMsg.writeInt16(CAST_S16(Ea::PartyRecv::mShareExp),
- "share exp");
- outMsg.writeInt16(CAST_S16(share), "share items");
+ if (packetVersion >= 20090603)
+ {
+ outMsg.writeInt32(CAST_S32(Ea::PartyRecv::mShareExp),
+ "share exp");
+ outMsg.writeInt16(CAST_S16(share), "share items");
+ }
+ else
+ {
+// outMsg.writeInt32(CAST_S16(Ea::PartyRecv::mShareExp),
+// "share exp");
+ }
}
void PartyHandler::changeLeader(const std::string &name) const