From e2864bf7fadbfc7a6ce6bbd5ef7a3645e1904b11 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 21 Mar 2017 03:57:03 +0300 Subject: Fix packet CMSG_NPC_STR_RESPONSE for hercules packet version >= 20151029. This packet version for now not supported by manaplus, and this is for future usage. --- src/net/eathena/npchandler.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/net/eathena/npchandler.cpp b/src/net/eathena/npchandler.cpp index f8041940c..6cb30bb81 100644 --- a/src/net/eathena/npchandler.cpp +++ b/src/net/eathena/npchandler.cpp @@ -44,6 +44,7 @@ #include "debug.h" extern Net::NpcHandler *npcHandler; +extern int packetVersion; namespace EAthena { @@ -107,10 +108,19 @@ void NpcHandler::stringInput(const BeingId npcId, const std::string &value) const { createOutPacket(CMSG_NPC_STR_RESPONSE); - outMsg.writeInt16(CAST_S16(value.length() + 9), "len"); - outMsg.writeBeingId(npcId, "npc id"); - outMsg.writeString(value, CAST_S32(value.length()), "value"); - outMsg.writeInt8(0, "null byte"); + if (packetVersion >= 20151029) + { + outMsg.writeInt16(CAST_S16(value.length() + 8), "len"); + outMsg.writeBeingId(npcId, "npc id"); + outMsg.writeString(value, CAST_S32(value.length()), "value"); + } + else + { + outMsg.writeInt16(CAST_S16(value.length() + 9), "len"); + outMsg.writeBeingId(npcId, "npc id"); + outMsg.writeString(value, CAST_S32(value.length()), "value"); + outMsg.writeInt8(0, "null byte"); + } } void NpcHandler::buy(const Being *const being) const -- cgit v1.2.3-60-g2f50