/[LeafOK_CVS]/pvpgn-1.7.4/src/d2cs/d2cs_protocol.h
ViewVC logotype

Annotation of /pvpgn-1.7.4/src/d2cs/d2cs_protocol.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (vendor branch)
Tue Jun 6 03:41:38 2006 UTC (19 years, 9 months ago) by sysadm
Branch: GNU, MAIN
CVS Tags: pvpgn_1-7-4-0_MIL, arelease, HEAD
Changes since 1.1: +0 -0 lines
Content type: text/x-chdr
no message

1 sysadm 1.1 /*
2     * Copyright (C) 2000,2001 Onlyer (onlyer@263.net)
3     *
4     * This program is free software; you can redistribute it and/or
5     * modify it under the terms of the GNU General Public License
6     * as published by the Free Software Foundation; either version 2
7     * of the License, or (at your option) any later version.
8     *
9     * This program is distributed in the hope that it will be useful,
10     * but WITHOUT ANY WARRANTY; without even the implied warranty of
11     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12     * GNU General Public License for more details.
13     *
14     * You should have received a copy of the GNU General Public License
15     * along with this program; if not, write to the Free Software
16     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17     */
18     #ifndef INCLUDED_D2CS_PROTOCOL_H
19     #define INCLUDED_D2CS_PROTOCOL_H
20    
21     #include "common/bn_type.h"
22    
23     typedef struct
24     {
25     bn_short size;
26     bn_byte type;
27     } t_d2cs_client_header;
28    
29     typedef struct
30     {
31     t_d2cs_client_header h;
32     } t_d2cs_client_generic;
33    
34     #define CLIENT_D2CS_LOGINREQ 0x01
35     typedef struct
36     {
37     t_d2cs_client_header h;
38     bn_int seqno;
39     bn_int u1;
40     bn_int bncs_addr1;
41     bn_int sessionnum;
42     bn_int sessionkey; /* always zero,self define */
43     bn_int cdkey_id;
44     bn_int u5;
45     bn_int clienttag;
46     bn_int bnversion;
47     bn_int bncs_addr2;
48     bn_int u6; /* zero */
49     bn_int secret_hash[5];
50     /* account name */
51     } t_client_d2cs_loginreq;
52    
53     #define D2CS_CLIENT_LOGINREPLY 0x01
54     typedef struct
55     {
56     t_d2cs_client_header h;
57     bn_int reply;
58     } t_d2cs_client_loginreply;
59     #define D2CS_CLIENT_LOGINREPLY_SUCCEED 0x00
60     #define D2CS_CLIENT_LOGINREPLY_BADPASS 0x0c
61    
62     #define CLIENT_D2CS_CREATECHARREQ 0x02
63     typedef struct
64     {
65     t_d2cs_client_header h;
66     bn_short class; /* character class */
67     bn_short u1; /* always zero */
68     bn_short status; /* same as in .d2s file */
69     /* character name */
70     } t_client_d2cs_createcharreq;
71    
72     #define D2CS_CLIENT_CREATECHARREPLY 0x02
73     typedef struct
74     {
75     t_d2cs_client_header h;
76     bn_int reply;
77     } t_d2cs_client_createcharreply;
78     #define D2CS_CLIENT_CREATECHARREPLY_SUCCEED 0x00
79     #define D2CS_CLIENT_CREATECHARREPLY_FAILED 0x01
80     #define D2CS_CLIENT_CREATECHARREPLY_ALREADY_EXIST 0x14
81     #define D2CS_CLIENT_CREATECHARREPLY_NAME_REJECT 0x15
82    
83    
84     #define CLIENT_D2CS_CREATEGAMEREQ 0x03
85     typedef struct
86     {
87     t_d2cs_client_header h;
88     bn_short seqno;
89     bn_int gameflag; /* just difficulty is set here */
90     bn_byte u1; /* always 1 */
91     bn_byte leveldiff; /* Only allow people of +/- n level to join */
92     bn_byte maxchar; /* Maximum number of chars allowed in game */
93     /* game name */
94     /* game pass */
95     /* game desc */
96     } t_client_d2cs_creategamereq;
97    
98     #define D2CS_CLIENT_CREATEGAMEREPLY 0x03
99     typedef struct
100     {
101     t_d2cs_client_header h;
102     bn_short seqno;
103     bn_short gameid;
104     bn_short u1; /* always zero */
105     bn_int reply;
106     } t_d2cs_client_creategamereply;
107     #define D2CS_CLIENT_CREATEGAMEREPLY_SUCCEED 0x00
108     #define D2CS_CLIENT_CREATEGAMEREPLY_FAILED 0x01
109     #define D2CS_CLIENT_CREATEGAMEREPLY_INVALID_NAME 0x1e
110     #define D2CS_CLIENT_CREATEGAMEREPLY_NAME_EXIST 0x1f
111     #define D2CS_CLIENT_CREATEGAMEREPLY_SERVER_DOWN 0x20
112     #define D2CS_CLIENT_CREATEGAMEREPLY_NOT_AVAILABLE 0x32
113     #define D2CS_CLIENT_CREATEGAMEREPLY_U1 0x33
114    
115     #define CLIENT_D2CS_JOINGAMEREQ 0x04
116     typedef struct
117     {
118     t_d2cs_client_header h;
119     bn_short seqno;
120     /* game name */
121     /* game pass */
122     } t_client_d2cs_joingamereq;
123    
124     #define D2CS_CLIENT_JOINGAMEREPLY 0x04
125     typedef struct
126     {
127     t_d2cs_client_header h;
128     bn_short seqno;
129     bn_short gameid;
130     bn_short u1; /* always zero */
131     bn_int addr;
132     bn_int token;
133     bn_int reply;
134     } t_d2cs_client_joingamereply;
135     #define D2CS_CLIENT_JOINGAMEREPLY_SUCCEED 0x00
136     #define D2CS_CLIENT_JOINGAMEREPLY_BAD_PASS 0x29
137     #define D2CS_CLIENT_JOINGAMEREPLY_NOT_EXIST 0x2a
138     #define D2CS_CLIENT_JOINGAMEREPLY_GAME_FULL 0x2b
139     #define D2CS_CLIENT_JOINGAMEREPLY_LEVEL_LIMIT 0x2c
140     #define D2CS_CLIENT_JOINGAMEREPLY_HARDCORE_SOFTCORE 0x71
141     #define D2CS_CLIENT_JOINGAMEREPLY_NORMAL_NIGHTMARE 0x73
142     #define D2CS_CLIENT_JOINGAMEREPLY_NIGHTMARE_HELL 0x74
143     #define D2CS_CLIENT_JOINGAMEREPLY_CLASSIC_EXPANSION 0x78
144     #define D2CS_CLIENT_JOINGAMEREPLY_EXPANSION_CLASSIC 0x79
145     #define D2CS_CLIENT_JOINGAMEREPLY_NORMAL_LADDER 0x7D
146     #define D2CS_CLIENT_JOINGAMEREPLY_FAILED 0x01
147    
148     #define CLIENT_D2CS_GAMELISTREQ 0x05
149     typedef struct
150     {
151     t_d2cs_client_header h;
152     bn_short seqno;
153     bn_int gameflag; /* only hardcore is set here */
154     /* bn_byte u1; string game name to search? */
155     } t_client_d2cs_gamelistreq;
156    
157     #define D2CS_CLIENT_GAMELISTREPLY 0x05
158     typedef struct
159     {
160     t_d2cs_client_header h;
161     bn_short seqno;
162     bn_int token;
163     bn_byte currchar; /* current number of characters in game */
164     bn_int gameflag; /* 0x04 is always set here */
165     /* game name */
166     /* game desc */
167     } t_d2cs_client_gamelistreply;
168    
169     #define CLIENT_D2CS_GAMEINFOREQ 0x06
170     typedef struct
171     {
172     t_d2cs_client_header h;
173     bn_short seqno;
174     /* game name */
175     } t_client_d2cs_gameinforeq;
176    
177     #define D2CS_CLIENT_GAMEINFOREPLY 0x06
178     typedef struct
179     {
180     t_d2cs_client_header h;
181     bn_short seqno;
182     bn_int gameflag;
183     bn_int etime;
184     bn_byte charlevel;
185     bn_byte leveldiff;
186     bn_byte maxchar;
187     bn_byte currchar;
188     bn_byte class[16]; /* 16 character class */
189     bn_byte level[16]; /* 16 character level */
190     /* game description */
191     /* currchar number of character names */
192     } t_d2cs_client_gameinforeply;
193    
194     #define CLIENT_D2CS_CHARLOGINREQ 0x07
195     typedef struct
196     {
197     t_d2cs_client_header h;
198     /* character name */
199     } t_client_d2cs_charloginreq;
200    
201     #define D2CS_CLIENT_CHARLOGINREPLY 0x07
202     typedef struct
203     {
204     t_d2cs_client_header h;
205     bn_int reply;
206     } t_d2cs_client_charloginreply;
207     #define D2CS_CLIENT_CHARLOGINREPLY_SUCCEED 0x00
208     #define D2CS_CLIENT_CHARLOGINREPLY_FAILED 0x01
209     #define D2CS_CLIENT_CHARLOGINREPLY_NOT_FOUND 0x46
210     #define D2CS_CLIENT_CHARLOGINREPLY_EXPIRED 0x7b
211    
212     #define CLIENT_D2CS_DELETECHARREQ 0x0a
213     typedef struct
214     {
215     t_d2cs_client_header h;
216     bn_short u1; /* always zero */
217     /* character name */
218     } t_client_d2cs_deletecharreq;
219    
220     #define D2CS_CLIENT_DELETECHARREPLY 0x0a
221     typedef struct
222     {
223     t_d2cs_client_header h;
224     bn_short u1; /* always zero */
225     bn_int reply;
226     } t_d2cs_client_deletecharreply;
227     #define D2CS_CLIENT_DELETECHARREPLY_SUCCEED 0x00
228     #define D2CS_CLIENT_DELETECHARREPLY_FAILED 0x01
229    
230    
231     #define CLIENT_D2CS_LADDERREQ 0x11
232     typedef struct
233     {
234     t_d2cs_client_header h;
235     bn_byte type; /* jadder type request */
236     bn_short start_pos; /* list ladder from what position */
237     } t_client_d2cs_ladderreq;
238    
239     #define D2CS_CLIENT_LADDERREPLY 0x11
240     typedef struct
241     {
242     t_d2cs_client_header h;
243     bn_byte type; /* ladder type request */
244     bn_short total_len; /* total length of the ladder data */
245    
246     bn_short curr_len; /* length of ladder data in this packet */
247     bn_short cont_len; /* length of ladder data in previous packets */
248     /* length here include the header but
249     exclude this packet */
250     } t_d2cs_client_ladderreply;
251    
252     typedef struct
253     {
254     bn_short start_pos; /* start position of ladder */
255     bn_short u1; /* always zero */
256     bn_int count1; /* always 0x10 */
257     } t_d2cs_client_ladderheader;
258    
259     typedef struct
260     {
261     bn_int count2; /* 0x10 for first packet or 0x0 for continue */
262     } t_d2cs_client_ladderinfoheader;
263    
264     typedef struct
265     {
266     bn_int explow;
267     bn_int exphigh; /* always zero */
268     bn_short status;
269     bn_byte level;
270     bn_byte u1; /* always zero */
271     char charname[16];
272     } t_d2cs_client_ladderinfo;
273     #define LADDERSTATUS_FLAG_DEAD 0x10
274     #define LADDERSTATUS_FLAG_HARDCORE 0x20
275     #define LADDERSTATUS_FLAG_EXPANSION 0x40
276     #define LADDERSTATUS_FLAG_DIFFICULTY 0x0f00
277    
278     #define CLIENT_D2CS_MOTDREQ 0x12
279     typedef struct
280     {
281     t_d2cs_client_header h;
282     } t_client_d2cs_motdreq;
283    
284     #define D2CS_CLIENT_MOTDREPLY 0x12
285     typedef struct
286     {
287     t_d2cs_client_header h;
288     bn_byte u1;
289     /* message */
290     } t_d2cs_client_motdreply;
291    
292     #define CLIENT_D2CS_CANCELCREATEGAME 0x13
293     typedef struct
294     {
295     t_d2cs_client_header h;
296     } t_client_d2cs_cancelcreategame;
297    
298     #define D2CS_CLIENT_CREATEGAMEWAIT 0x14
299     typedef struct
300     {
301     t_d2cs_client_header h;
302     bn_int position;
303     } t_d2cs_client_creategamewait;
304    
305     #define D2CS_CLIENT_CHARLADDERREQ 0x16
306     typedef struct
307     {
308     t_d2cs_client_header h;
309     bn_int hardcore;
310     bn_int expansion;
311     /* character name */
312     } t_client_d2cs_charladderreq;
313     /* use 0x11 LADDER reply for this request */
314    
315     #define CLIENT_D2CS_CHARLISTREQ 0x17
316     typedef struct
317     {
318     t_d2cs_client_header h;
319     bn_short maxchar;
320     bn_short u1;
321     } t_client_d2cs_charlistreq;
322    
323     #define D2CS_CLIENT_CHARLISTREPLY 0x17
324     typedef struct
325     {
326     t_d2cs_client_header h;
327     bn_short maxchar;
328     bn_short currchar;
329     bn_short u1; /* always zero */
330     bn_short currchar2;
331     /* character name */
332     /* character portrait blocks */
333     /* each block is 0x22 bytes static length */
334     } t_d2cs_client_charlistreply;
335    
336     #define CLIENT_D2CS_CONVERTCHARREQ 0x18
337     typedef struct
338     {
339     t_d2cs_client_header h;
340     /* character name */
341     } t_client_d2cs_convertcharreq;
342    
343     #define D2CS_CLIENT_CONVERTCHARREPLY 0x18
344     typedef struct
345     {
346     t_d2cs_client_header h;
347     bn_int reply;
348     } t_d2cs_client_convertcharreply;
349     #define D2CS_CLIENT_CONVERTCHARREPLY_SUCCEED 0x00
350     #define D2CS_CLIENT_CONVERTCHARREPLY_FAILED 0x01
351    
352     #define CLIENT_D2CS_CHARLISTREQ_110 0x19
353     typedef struct
354     {
355     t_d2cs_client_header h;
356     bn_short maxchar;
357     bn_short u1;
358     } t_client_d2cs_charlistreq_110;
359    
360    
361     #define D2CS_CLIENT_CHARLISTREPLY_110 0x19
362     typedef struct
363     {
364     t_d2cs_client_header h;
365     bn_short maxchar;
366     bn_short currchar;
367     bn_short u1; /* always zero */
368     bn_short currchar2;
369     } t_d2cs_client_charlistreply_110;
370    
371     typedef struct
372     {
373     bn_int expire_time; /* character expire time (in seconds) */
374     /* character name */
375     /* character portrait blocks */
376     /* each block is 0x22 bytes static length */
377     } t_d2cs_client_chardata;
378    
379    
380    
381     #endif

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1