diff options
author | LordJZ <a553r7fa1l3d@gmail.com> | 2012-07-14 07:14:39 +0400 |
---|---|---|
committer | LordJZ <a553r7fa1l3d@gmail.com> | 2012-07-14 07:14:39 +0400 |
commit | 6b843ca86b4854c75f26ded160f0930ea6a77803 (patch) | |
tree | e43689483ad4b78cb0fddf0588779c171253f295 /src | |
parent | bf7ead977359024a45c3560a406ed509e2f2f425 (diff) |
Allow for GM ticket response text up to 15999 characters.
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Tickets/TicketMgr.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/server/game/Tickets/TicketMgr.cpp b/src/server/game/Tickets/TicketMgr.cpp index f82c01adf31..68786ad0cec 100755 --- a/src/server/game/Tickets/TicketMgr.cpp +++ b/src/server/game/Tickets/TicketMgr.cpp @@ -144,11 +144,24 @@ void GmTicket::SendResponse(WorldSession* session) const data << uint32(1); // responseID data << uint32(_id); // ticketID data << _message.c_str(); - data << _response.c_str(); - // 3 null strings (unused) - data << uint8(0); - data << uint8(0); - data << uint8(0); + + size_t len = _response.size(); + char const* s = _response.c_str(); + + for (int i = 0; i < 4; i++) + { + if (len) + { + size_t writeLen = std::min<size_t>(len, 3999); + data.append(s, writeLen); + + len -= writeLen; + s += writeLen; + } + + data << uint8(0); + } + session->SendPacket(&data); } |