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 20040419: 1 Packets
49#if PACKET_VERSION >= 20040419
50 ADD_HPKT(0x01fb, 56, CH_DELETE_CHAR2);
51#endif
52// Packet Version 20040621: 1 Packets
53#if PACKET_VERSION >= 20040621
54 ADD_TPKT(0x020d, -1, HC_BLOCK_CHARACTER);
55#endif
56// Packet Version 20050628: 1 Packets
57#if PACKET_VERSION >= 20050628
59#endif
60// Packet Version 20061030: 6 Packets
61#if PACKET_VERSION >= 20061030
68#endif
69// Packet Version 20070821: 1 Packets
70#if PACKET_VERSION >= 20070821
72#endif
73// Packet Version 20090225: 1 Packets
74#if PACKET_VERSION >= 20090225
75 ADD_TPKT(0x0448, -1, HC_CHARACTER_LIST);
76#endif
77// Packet Version 20090701: 1 Packets
78#if PACKET_VERSION >= 20090701
79 ADD_HPKT(0x0275, 37, CH_ENTER2);
80#endif
81// Packet Version 20090922: 4 Packets
82#if PACKET_VERSION >= 20090922
83 ADD_HPKT(0x07e7, 32, CH_CHECKBOT);
84 ADD_HPKT(0x07e5, 8, CH_ENTER_CHECKBOT);
85 ADD_TPKT(0x07e8, -1, HC_CHECKBOT);
86 ADD_TPKT(0x07e9, 5, HC_CHECKBOT_RESULT);
87#endif
88// Packet Version 20100713: 5 Packets
89#if PACKET_VERSION >= 20100713
92 ADD_TPKT(0x082a, 10, HC_DELETE_CHAR3);
95#endif
96// Packet Version 20100714: 1 Packets
97#if PACKET_VERSION >= 20100714
99#endif
100// Packet Version 20100720: 1 Packets
101#if PACKET_VERSION >= 20100720
102 ADD_TPKT(0x082c, 10, HC_DELETE_CHAR3_CANCEL);
103#endif
104// Packet Version 20100728: 1 Packets
105#if PACKET_VERSION >= 20100728
106 ADD_HPKT(0x0829, 12, CH_DELETE_CHAR3);
107#endif
108// Packet Version 20101221: 1 Packets
109#if PACKET_VERSION >= 20101221
110 ADD_TPKT(0x082d, -1, HC_ACCEPT_ENTER2);
111#endif
112// Packet Version 20101228: 1 Packets
113#if PACKET_VERSION >= 20101228
114 ADD_TPKT(0x08af, 10, HC_WAITING_LOGIN);
115#endif
116// Packet Version 20110111: 1 Packets
117#if PACKET_VERSION >= 20110111
118 ADD_HPKT(0x08b0, 17, CH_WAITING_LOGIN);
119#endif
120// Packet Version 20110215: 1 Packets
121#if PACKET_VERSION >= 20110215
122 ADD_TPKT(0x08b7, 10, HC_SECOND_PASSWD_REQ);
123#endif
124// Packet Version 20110222: 1 Packets
125#if PACKET_VERSION >= 20110222
126 ADD_TPKT(0x08b9, 12, HC_SECOND_PASSWD_LOGIN);
127#endif
128// Packet Version 20110228: 1 Packets
129#if PACKET_VERSION >= 20110228
131#endif
132// Packet Version 20110308: 9 Packets
133#if PACKET_VERSION >= 20110308
136 ADD_HPKT(0x08be, 14, CH_EDIT_SECOND_PASSWD);
137 ADD_HPKT(0x08ba, 10, CH_MAKE_SECOND_PASSWD);
139 ADD_HPKT(0x08b8, 10, CH_SECOND_PASSWD_ACK);
143#endif
144// Packet Version 20110906: 1 Packets
145#if PACKET_VERSION >= 20110906
147#endif
148// Packet Version 20111101: 4 Packets
149#if PACKET_VERSION >= 20111101
153 ADD_TPKT(0x08e3, 146, HC_UPDATE_CHARINFO);
154#endif
155// Packet Version 20111207: 1 Packets
156#if PACKET_VERSION >= 20111207
158#endif
159// Packet Version 20120214: 1 Packets
160#if PACKET_VERSION >= 20120214
161 ADD_HPKT(0x0970, 31, CH_MAKE_CHAR_NOT_STATS);
162#endif
163// Packet Version 20120724: 1 Packets
164#if PACKET_VERSION >= 20120724
165 ADD_HPKT(0x098f, -1, CH_DELETE_CHAR3_EXT);
166#endif
167// Packet Version 20121024: 2 Packets
168#if PACKET_VERSION >= 20121024
171#endif
172// Packet Version 20121128: 1 Packets
173#if PACKET_VERSION >= 20121128
174 ADD_TPKT(0x099e, 12, HC_QUEUE_ORDER);
175#endif
176// Packet Version 20121212: 2 Packets
177#if PACKET_VERSION >= 20121212
178 ADD_HPKT(0x09a1, 2, CH_CHARLIST_REQ);
179 ADD_TPKT(0x09a0, 6, HC_CHARLIST_NOTIFY);
180#endif
181// Packet Version 20130522: 1 Packets
182#if PACKET_VERSION >= 20130522
183 ADD_TPKT(0x09c2, -1, HC_SECRETSCAN_DATA);
184#endif
185// Packet Version 20150415: 1 Packets
186#if PACKET_VERSION >= 20150415
187 ADD_HPKT(0x0a39, 36, CH_MAKE_CHAR);
188#endif
189// Packet Version 20170228: 1 Packets
190#if PACKET_VERSION >= 20170228
191 ADD_TPKT(0x0ac5, 156, HC_NOTIFY_ZONESVR);
192#endif
193
194#if PACKET_VERSION >= 20170906
195 ADD_TPKT(0x006d, 157, HC_ACCEPT_MAKECHAR);
196#elif PACKET_VERSION >= 20170104
197 ADD_TPKT(0x006d, 149, HC_ACCEPT_MAKECHAR);
198#endif
199
200#if PACKET_VERSION >= 20201007
201 ADD_TPKT(0x0b6f, 177, HC_ACCEPT_MAKECHAR);
203 ADD_TPKT(0x006d, 177, HC_ACCEPT_MAKECHAR);
204#endif
205// Packet Version 20171220: 1 Packets
206#if CLIENT_TYPE == 'M' && PACKET_VERSION >= 20180124 \
207|| CLIENT_TYPE == 'R' && PACKET_VERSION >= 20180124 \
208|| CLIENT_TYPE == 'Z' && PACKET_VERSION >= 20180131
209 ADD_TPKT(0x0ae9, 13, HC_SECOND_PASSWD_LOGIN);
210#elif PACKET_VERSION >= 20171220
211 ADD_TPKT(0x0ae9, 64, HC_SECOND_PASSWD_LOGIN);
212#endif
213#undef ADD_TPKT
214#undef ADD_HPKT
215 }
216
218
219};
220}
221}
222#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_CHAR2.
Definition: HandledPackets.hpp:232
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_CHANGE_CHARNAME.
Definition: HandledPackets.hpp:797
Main object for the aegis packet: CH_REQ_CHARINFO_PER_PAGE.
Definition: HandledPackets.hpp:829
Main object for the aegis packet: CH_REQ_IS_VALID_CHARNAME.
Definition: HandledPackets.hpp:867
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_SELECT_CHAR_GOINGTOBEUSED.
Definition: HandledPackets.hpp:1010
Main object for the aegis packet: CH_WAITING_LOGIN.
Definition: HandledPackets.hpp:1081
~ClientPacketLengthTable()
Definition: ClientPacketLengthTable.hpp:217
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_CHANGE_CHARNAME.
Definition: TransmittedPackets.hpp:282
Main object for the aegis packet: HC_ACK_CHARINFO_PER_PAGE.
Definition: TransmittedPackets.hpp:317
Main object for the aegis packet: HC_ACK_IS_VALID_CHARNAME.
Definition: TransmittedPackets.hpp:358
Main object for the aegis packet: HC_AVAILABLE_SECOND_PASSWD.
Definition: TransmittedPackets.hpp:390
Main object for the aegis packet: HC_BLOCK_CHARACTER.
Definition: TransmittedPackets.hpp:428
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_CHARNOTBEENSELECTED.
Definition: TransmittedPackets.hpp:534
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_REFUSE_SELECTCHAR.
Definition: TransmittedPackets.hpp:1130
Main object for the aegis packet: HC_REQUEST_CHARACTER_PASSWORD.
Definition: TransmittedPackets.hpp:1168
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