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_AUTH_CLIENT_PACKET_LENGTH_TABLE
29#define HORIZON_AUTH_CLIENT_PACKET_LENGTH_TABLE
30
31#include "PacketLengthTable.hpp"
32
33namespace Horizon
34{
35namespace Auth
36{
40class ClientPacketLengthTable : public PacketLengthTable
41{
42public:
43 ClientPacketLengthTable(std::shared_ptr<AuthSession> 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 20031223: 1 Packets
49#if PACKET_VERSION >= 20031223
50 ADD_TPKT(0x01f1, -1, AC_NOTIFY_ERROR);
51#endif
52// Packet Version 20040322: 1 Packets
53#if PACKET_VERSION >= 20040322
54 ADD_HPKT(0x01fa, 48, CA_LOGIN3);
55#endif
56// Packet Version 20040517: 1 Packets
57#if PACKET_VERSION >= 20040517
59#endif
60// Packet Version 20040531: 1 Packets
61#if PACKET_VERSION >= 20040531
62 ADD_HPKT(0x0204, 18, CA_EXE_HASHCHECK);
63#endif
64// Packet Version 20050628: 1 Packets
65#if PACKET_VERSION >= 20050628
66 ADD_TPKT(0x023d, 6, AC_EVENT_RESULT);
67#endif
68// Packet Version 20050912: 2 Packets
69#if PACKET_VERSION >= 20050912
70 ADD_TPKT(0x0259, 3, AC_ACK_GAME_GUARD);
72#endif
73// Packet Version 20060109: 16 Packets
74#if PACKET_VERSION >= 20060109
82 ADD_TPKT(0x026f, 2, AC_ACK_FIRST_LOGIN);
83 ADD_TPKT(0x0272, 44, AC_ACK_PT_ID_INFO);
86 ADD_TPKT(0x0262, 11, AC_REQ_LOGIN_NEWEKEY);
87 ADD_TPKT(0x0261, 11, AC_REQ_LOGIN_OLDEKEY);
89 ADD_HPKT(0x0265, 20, CA_ACK_LOGIN_NEWEKEY);
90 ADD_HPKT(0x0264, 20, CA_ACK_LOGIN_OLDEKEY);
91#endif
92// Packet Version 20060126: 1 Packets
93#if PACKET_VERSION >= 20060126
95#endif
96// Packet Version 20060424: 1 Packets
97#if PACKET_VERSION >= 20060424
98 ADD_HPKT(0x0277, 84, CA_LOGIN_PCBANG);
99#endif
100// Packet Version 20060626: 1 Packets
101#if PACKET_VERSION >= 20060626
102 ADD_HPKT(0x027c, 60, CA_LOGIN4);
103#endif
104// Packet Version 20060821: 1 Packets
105#if PACKET_VERSION >= 20060821
106 ADD_HPKT(0x027f, 8, CA_CLIENT_TYPE);
107#endif
108// Packet Version 20070227: 1 Packets
109#if PACKET_VERSION >= 20070227
111#endif
112// Packet Version 20070514: 1 Packets
113#if PACKET_VERSION >= 20070514
114 ADD_HPKT(0x02b0, 85, CA_LOGIN_HAN);
115#endif
116#undef ADD_TPKT
117#undef ADD_HPKT
118 }
119
121
122};
123}
124}
125#endif /* HORIZON_AUTH_CLIENT_PACKET_LENGTH_TABLE */
#define ADD_HPKT(i, j, k)
#define ADD_TPKT(i, j, k)
Main object for the aegis packet: AC_ACK_EKEY_FAIL_AUTHREFUSE.
Definition: TransmittedPackets.hpp:176
Main object for the aegis packet: AC_ACK_EKEY_FAIL_INPUTEKEY.
Definition: TransmittedPackets.hpp:214
Main object for the aegis packet: AC_ACK_EKEY_FAIL_NEEDCARDPASS.
Definition: TransmittedPackets.hpp:252
Main object for the aegis packet: AC_ACK_EKEY_FAIL_NOTEXIST.
Definition: TransmittedPackets.hpp:290
Main object for the aegis packet: AC_ACK_EKEY_FAIL_NOTICE.
Definition: TransmittedPackets.hpp:328
Main object for the aegis packet: AC_ACK_EKEY_FAIL_NOTUSEDEKEY.
Definition: TransmittedPackets.hpp:366
Main object for the aegis packet: AC_ACK_EKEY_FAIL_NOTUSESEKEY.
Definition: TransmittedPackets.hpp:404
Main object for the aegis packet: AC_ACK_FIRST_LOGIN.
Definition: TransmittedPackets.hpp:442
Main object for the aegis packet: AC_ACK_GAME_GUARD.
Definition: TransmittedPackets.hpp:480
Main object for the aegis packet: AC_ACK_PT_ID_INFO.
Definition: TransmittedPackets.hpp:556
Main object for the aegis packet: AC_EVENT_RESULT.
Definition: TransmittedPackets.hpp:632
Main object for the aegis packet: AC_NOTIFY_ERROR.
Definition: TransmittedPackets.hpp:720
Main object for the aegis packet: AC_REQUEST_SECOND_PASSWORD.
Definition: TransmittedPackets.hpp:1017
Main object for the aegis packet: AC_REQ_LOGIN_ACCOUNT_INFO.
Definition: TransmittedPackets.hpp:1055
Main object for the aegis packet: AC_REQ_LOGIN_CARDPASS.
Definition: TransmittedPackets.hpp:1093
Main object for the aegis packet: AC_REQ_LOGIN_NEWEKEY.
Definition: TransmittedPackets.hpp:1131
Main object for the aegis packet: AC_REQ_LOGIN_OLDEKEY.
Definition: TransmittedPackets.hpp:1169
Main object for the aegis packet: CA_ACK_LOGIN_ACCOUNT_INFO.
Definition: HandledPackets.hpp:64
Main object for the aegis packet: CA_ACK_LOGIN_CARDPASS.
Definition: HandledPackets.hpp:102
Main object for the aegis packet: CA_ACK_LOGIN_NEWEKEY.
Definition: HandledPackets.hpp:140
Main object for the aegis packet: CA_ACK_LOGIN_OLDEKEY.
Definition: HandledPackets.hpp:178
Main object for the aegis packet: CA_CLIENT_TYPE.
Definition: HandledPackets.hpp:280
Main object for the aegis packet: CA_CONNECT_INFO_CHANGED.
Definition: HandledPackets.hpp:318
Main object for the aegis packet: CA_EXE_HASHCHECK.
Definition: HandledPackets.hpp:356
Main object for the aegis packet: CA_LOGIN3.
Definition: HandledPackets.hpp:475
Main object for the aegis packet: CA_LOGIN4.
Definition: HandledPackets.hpp:513
Main object for the aegis packet: CA_LOGIN_HAN.
Definition: HandledPackets.hpp:615
Main object for the aegis packet: CA_LOGIN_PCBANG.
Definition: HandledPackets.hpp:694
Main object for the aegis packet: CA_REQ_GAME_GUARD_CHECK.
Definition: HandledPackets.hpp:834
ClientPacketLengthTable(std::shared_ptr< AuthSession > s)
Definition: ClientPacketLengthTable.hpp:43
~ClientPacketLengthTable()
Definition: ClientPacketLengthTable.hpp:120
Auto-generated with a python generator tool authored by Sephus (sagunxp@gmail.com).
Definition: PacketLengthTable.hpp:47
Definition: Element.hpp:7