Horizon Official Technical Documentation
ClientPacketLengthTable.hpp
Go to the documentation of this file.
1/***************************************************
2 * _ _ _ *
3 * | | | | (_) *
4 * | |_| | ___ _ __ _ _______ _ __ *
5 * | _ |/ _ \| '__| |_ / _ \| '_ \ *
6 * | | | | (_) | | | |/ / (_) | | | | *
7 * \_| |_/\___/|_| |_/___\___/|_| |_| *
8 ***************************************************
9 * This file is part of Horizon (c).
10 * Copyright (c) 2023 Horizon Dev Team.
11 *
12 * Base Author - Sephus. (sagunxp@gmail.com)
13 *
14 * This library is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * This library is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this library. If not, see <http://www.gnu.org/licenses/>.
26 **************************************************/
27
28#ifndef HORIZON_CHAR_CLIENT_PACKET_LENGTH_TABLE
29#define HORIZON_CHAR_CLIENT_PACKET_LENGTH_TABLE
30
31#include "PacketLengthTable.hpp"
32
33namespace Horizon
34{
35namespace Char
36{
40class ClientPacketLengthTable : public PacketLengthTable
41{
42public:
43 ClientPacketLengthTable(std::shared_ptr<CharSession> s)
45 {
46#define ADD_HPKT(i, j, k) _hpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
47#define ADD_TPKT(i, j, k) _tpacket_length_table.insert(i, std::make_pair(j, std::make_shared<k>(s)))
48// Packet Version 20081217: 1 Packets
49#if PACKET_VERSION >= 20170000
50 ADD_TPKT(0x006d, 157, HC_ACCEPT_MAKECHAR);
51#elif PACKET_VERSION >= 20081217
52 ADD_TPKT(0x006d, 114, HC_ACCEPT_MAKECHAR);
53#endif
54// Packet Version 20090226: 1 Packets
55#if PACKET_VERSION >= 20090226
56 ADD_TPKT(0x0448, -1, HC_CHARACTER_LIST);
57#endif
58// Packet Version 20090701: 1 Packets
59#if PACKET_VERSION >= 20090701
60 ADD_HPKT(0x0275, 37, CH_ENTER2);
61#endif
62// Packet Version 20090922: 4 Packets
63#if PACKET_VERSION >= 20090922
64 ADD_HPKT(0x07e7, 32, CH_CHECKBOT);
65 ADD_HPKT(0x07e5, 8, CH_ENTER_CHECKBOT);
66 ADD_TPKT(0x07e8, -1, HC_CHECKBOT);
67 ADD_TPKT(0x07e9, 5, HC_CHECKBOT_RESULT);
68#endif
69// Packet Version 20100713: 5 Packets
70#if PACKET_VERSION >= 20100713
73 ADD_TPKT(0x082a, 10, HC_DELETE_CHAR3);
76#endif
77// Packet Version 20100714: 1 Packets
78#if PACKET_VERSION >= 20100714
80#endif
81// Packet Version 20100720: 1 Packets
82#if PACKET_VERSION >= 20100720
84#endif
85// Packet Version 20100728: 1 Packets
86#if PACKET_VERSION >= 20100728
87 ADD_HPKT(0x0829, 12, CH_DELETE_CHAR3);
88#endif
89// Packet Version 20101221: 1 Packets
90#if PACKET_VERSION >= 20101221
91 ADD_TPKT(0x082d, -1, HC_ACCEPT_ENTER2);
92#endif
93// Packet Version 20101228: 1 Packets
94#if PACKET_VERSION >= 20101228
95 ADD_TPKT(0x08af, 10, HC_WAITING_LOGIN);
96#endif
97// Packet Version 20110111: 1 Packets
98#if PACKET_VERSION >= 20110111
99 ADD_HPKT(0x08b0, 17, CH_WAITING_LOGIN);
100#endif
101// Packet Version 20110215: 1 Packets
102#if PACKET_VERSION >= 20110215
103 ADD_TPKT(0x08b7, 10, HC_SECOND_PASSWD_REQ);
104#endif
105// Packet Version 20110222: 1 Packets
106#if PACKET_VERSION >= 20110222
107 ADD_TPKT(0x08b9, 12, HC_SECOND_PASSWD_LOGIN);
108#endif
109// Packet Version 20110228: 1 Packets
110#if PACKET_VERSION >= 20110228
112#endif
113// Packet Version 20110308: 9 Packets
114#if PACKET_VERSION >= 20110308
117 ADD_HPKT(0x08be, 14, CH_EDIT_SECOND_PASSWD);
118 ADD_HPKT(0x08ba, 10, CH_MAKE_SECOND_PASSWD);
120 ADD_HPKT(0x08b8, 10, CH_SECOND_PASSWD_ACK);
124#endif
125// Packet Version 20110906: 1 Packets
126#if PACKET_VERSION >= 20110906
128#endif
129// Packet Version 20111025: 1 Packets
130#if PACKET_VERSION >= 20111025
131 ADD_TPKT(0x08e3, 146, HC_UPDATE_CHARINFO);
132#endif
133// Packet Version 20111101: 3 Packets
134#if PACKET_VERSION >= 20111101
138#endif
139// Packet Version 20111207: 1 Packets
140#if PACKET_VERSION >= 20111207
142#endif
143// Packet Version 20120214: 1 Packets
144#if PACKET_VERSION >= 20120214
145 ADD_HPKT(0x0970, 31, CH_MAKE_CHAR_NOT_STATS);
146#endif
147// Packet Version 20120724: 1 Packets
148#if PACKET_VERSION >= 20120724
149 ADD_HPKT(0x098f, -1, CH_DELETE_CHAR3_EXT);
150#endif
151// Packet Version 20121024: 2 Packets
152#if PACKET_VERSION >= 20121024
155#endif
156// Packet Version 20121128: 1 Packets
157#if PACKET_VERSION >= 20121128
158 ADD_TPKT(0x099e, 12, HC_QUEUE_ORDER);
159#endif
160// Packet Version 20121212: 2 Packets
161#if PACKET_VERSION >= 20121212
162 ADD_HPKT(0x09a1, 2, CH_CHARLIST_REQ);
163 ADD_TPKT(0x09a0, 6, HC_CHARLIST_NOTIFY);
164#endif
165// Packet Version 20130522: 1 Packets
166#if PACKET_VERSION >= 20130522
167 ADD_TPKT(0x09c2, -1, HC_SECRETSCAN_DATA);
168#endif
169// Packet Version 20150415: 1 Packets
170#if PACKET_VERSION >= 20150415
171 ADD_HPKT(0x0a39, 36, CH_MAKE_CHAR);
172#endif
173// Packet Version 20170228: 1 Packets
174#if PACKET_VERSION >= 20170228
175 ADD_TPKT(0x0ac5, 156, HC_NOTIFY_ZONESVR);
176#endif
177// Packet Version 20171220: 1 Packets
178#if PACKET_VERSION >= 20171220
179#if CLIENT_TYPE == 'M' && PACKET_VERSION >= 20180124 \
180|| CLIENT_TYPE == 'R' && PACKET_VERSION >= 20180124 \
181|| CLIENT_TYPE == 'Z' && PACKET_VERSION >= 20180131
182 ADD_TPKT(0x0ae9, 13, HC_SECOND_PASSWD_LOGIN);
183#else
184 ADD_TPKT(0x0ae9, 64, HC_SECOND_PASSWD_LOGIN);
185#endif
186#endif
187#undef ADD_TPKT
188#undef ADD_HPKT
189 }
190
192
193};
194}
195}
196#endif /* HORIZON_CHAR_CLIENT_PACKET_LENGTH_TABLE */
#define ADD_HPKT(i, j, k)
#define ADD_TPKT(i, j, k)
Main object for the aegis packet: CH_ACK_CHANGE_CHARACTERNAME.
Definition: HandledPackets.hpp:58
Main object for the aegis packet: CH_AVAILABLE_SECOND_PASSWD.
Definition: HandledPackets.hpp:90
Main object for the aegis packet: CH_CHARLIST_REQ.
Definition: HandledPackets.hpp:122
Main object for the aegis packet: CH_CHECKBOT.
Definition: HandledPackets.hpp:154
Main object for the aegis packet: CH_DELETE_CHAR3_CANCEL.
Definition: HandledPackets.hpp:300
Main object for the aegis packet: CH_DELETE_CHAR3_EXT.
Definition: HandledPackets.hpp:333
Main object for the aegis packet: CH_DELETE_CHAR3_RESERVED.
Definition: HandledPackets.hpp:365
Main object for the aegis packet: CH_DELETE_CHAR3.
Definition: HandledPackets.hpp:266
Main object for the aegis packet: CH_DELETE_SECOND_PASSWD.
Definition: HandledPackets.hpp:398
Main object for the aegis packet: CH_EDIT_SECOND_PASSWD.
Definition: HandledPackets.hpp:430
Main object for the aegis packet: CH_ENTER2.
Definition: HandledPackets.hpp:508
Main object for the aegis packet: CH_ENTER_CHECKBOT.
Definition: HandledPackets.hpp:540
Main object for the aegis packet: CH_MAKE_CHAR_NOT_STATS.
Definition: HandledPackets.hpp:629
Main object for the aegis packet: CH_MAKE_CHAR.
Definition: HandledPackets.hpp:587
Main object for the aegis packet: CH_MAKE_SECOND_PASSWD.
Definition: HandledPackets.hpp:661
Main object for the aegis packet: CH_NOT_AVAILABLE_SECOND_PASSWD.
Definition: HandledPackets.hpp:695
Main object for the aegis packet: CH_REQ_CHANGE_CHARACTERNAME.
Definition: HandledPackets.hpp:727
Main object for the aegis packet: CH_REQ_CHANGE_CHARACTER_SLOT.
Definition: HandledPackets.hpp:759
Main object for the aegis packet: CH_REQ_CHARINFO_PER_PAGE.
Definition: HandledPackets.hpp:829
Main object for the aegis packet: CH_SECOND_PASSWD_ACK.
Definition: HandledPackets.hpp:899
Main object for the aegis packet: CH_SELECT_ACCESSIBLE_MAPNAME.
Definition: HandledPackets.hpp:933
Main object for the aegis packet: CH_WAITING_LOGIN.
Definition: HandledPackets.hpp:1081
~ClientPacketLengthTable()
Definition: ClientPacketLengthTable.hpp:191
ClientPacketLengthTable(std::shared_ptr< CharSession > s)
Definition: ClientPacketLengthTable.hpp:43
Main object for the aegis packet: HC_ACCEPT_ENTER2.
Definition: TransmittedPackets.hpp:163
Main object for the aegis packet: HC_ACCEPT_MAKECHAR.
Definition: TransmittedPackets.hpp:211
Main object for the aegis packet: HC_ACK_CHANGE_CHARACTER_SLOT.
Definition: TransmittedPackets.hpp:244
Main object for the aegis packet: HC_ACK_CHARINFO_PER_PAGE.
Definition: TransmittedPackets.hpp:317
Main object for the aegis packet: HC_AVAILABLE_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:390
Main object for the aegis packet: HC_CHARACTER_LIST.
Definition: TransmittedPackets.hpp:464
Main object for the aegis packet: HC_CHARLIST_NOTIFY.
Definition: TransmittedPackets.hpp:496
Main object for the aegis packet: HC_CHECKBOT_RESULT.
Definition: TransmittedPackets.hpp:598
Main object for the aegis packet: HC_CHECKBOT.
Definition: TransmittedPackets.hpp:566
Main object for the aegis packet: HC_DELETE_CHAR3_CANCEL.
Definition: TransmittedPackets.hpp:668
Main object for the aegis packet: HC_DELETE_CHAR3_RESERVED.
Definition: TransmittedPackets.hpp:702
Main object for the aegis packet: HC_DELETE_CHAR3.
Definition: TransmittedPackets.hpp:630
Main object for the aegis packet: HC_DELETE_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:737
Main object for the aegis packet: HC_EDIT_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:775
Main object for the aegis packet: HC_MAKE_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:815
Main object for the aegis packet: HC_NOTIFY_ACCESSIBLE_MAPNAME.
Definition: TransmittedPackets.hpp:849
Main object for the aegis packet: HC_NOTIFY_ZONESVR.
Definition: TransmittedPackets.hpp:896
Main object for the aegis packet: HC_NOT_AVAILABLE_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:932
Main object for the aegis packet: HC_QUEUE_ORDER.
Definition: TransmittedPackets.hpp:964
Main object for the aegis packet: HC_SECOND_PASSWD_LOGIN.
Definition: TransmittedPackets.hpp:1234
Main object for the aegis packet: HC_SECOND_PASSWD_REQ.
Definition: TransmittedPackets.hpp:1277
Main object for the aegis packet: HC_SECRETSCAN_DATA.
Definition: TransmittedPackets.hpp:1309
Main object for the aegis packet: HC_UPDATE_CHARINFO.
Definition: TransmittedPackets.hpp:1341
Main object for the aegis packet: HC_WAITING_LOGIN.
Definition: TransmittedPackets.hpp:1373
Auto-generated with a python generator tool authored by Sephus (sagunxp@gmail.com).
Definition: PacketLengthTable.hpp:47
Definition: Element.hpp:7