d2cs_d2gs_protocol.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:5k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 2000,2001 Onlyer (onlyer@263.net)
  3.  * Copyright (C) 2001 faster (lqx@cic.tsinghua.edu.cn)
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License
  7.  * as published by the Free Software Foundation; either version 2
  8.  * of the License, or (at your option) any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  */
  19. #ifndef INCLUDED_D2CS_D2GS_PROTOCOL_H
  20. #define INCLUDED_D2CS_D2GS_PROTOCOL_H
  21. /* 
  22.  * there is only little comments in this header file
  23.  * check the documents for more details
  24. */
  25. /* include your own header files here */
  26. #ifdef D2CS
  27. # include "common/bn_type.h"
  28. #endif
  29. #ifdef D2GS
  30. # include "bn_types.h"
  31. #pragma pack(push, pack01, 1)
  32. #endif
  33. typedef struct
  34. {
  35. bn_short size;
  36. bn_short type;
  37. bn_int seqno; /* seqno, set by the sender */
  38. } t_d2cs_d2gs_header;
  39. typedef struct
  40. {
  41. t_d2cs_d2gs_header h;
  42. } t_d2cs_d2gs_generic;
  43. #define D2CS_D2GS_AUTHREQ 0x10
  44. typedef struct
  45. {
  46. t_d2cs_d2gs_header h;
  47. bn_int sessionnum;
  48. bn_int signlen;
  49.   /* realm name */
  50. /* key check sum, maybe 128 bytes */
  51. } t_d2cs_d2gs_authreq;
  52. #define D2GS_D2CS_AUTHREPLY 0x11
  53. typedef struct
  54. {
  55. t_d2cs_d2gs_header h;
  56. bn_int version;
  57. bn_int checksum;
  58. bn_int randnum;
  59. bn_int signlen;
  60. bn_basic sign[128];
  61. } t_d2gs_d2cs_authreply;
  62. #define D2CS_D2GS_AUTHREPLY 0x11
  63. typedef struct
  64. {
  65. t_d2cs_d2gs_header h;
  66. bn_int reply;
  67. } t_d2cs_d2gs_authreply;
  68. #define D2CS_D2GS_AUTHREPLY_SUCCEED 0x00
  69. #define D2CS_D2GS_AUTHREPLY_BAD_VERSION 0x01
  70. #define D2CS_D2GS_AUTHREPLY_BAD_CHECKSUM 0x02
  71. #define D2GS_D2CS_SETGSINFO 0x12
  72. typedef struct
  73. {
  74. t_d2cs_d2gs_header h;
  75. bn_int maxgame;
  76. bn_int gameflag;
  77. } t_d2gs_d2cs_setgsinfo;
  78. #define D2CS_D2GS_SETGSINFO 0x12
  79. typedef struct
  80. {
  81. t_d2cs_d2gs_header      h;
  82. bn_int                  maxgame;
  83. bn_int                  gameflag;
  84. } t_d2cs_d2gs_setgsinfo;
  85. #define D2CS_D2GS_ECHOREQ 0x13
  86. typedef struct
  87. {
  88. t_d2cs_d2gs_header h;
  89. } t_d2cs_d2gs_echoreq;
  90. #define D2GS_D2CS_ECHOREPLY 0x13
  91. typedef struct
  92. {
  93. t_d2cs_d2gs_header h;
  94. } t_d2gs_d2cs_echoreply;
  95. #define D2CS_D2GS_CONTROL 0x14
  96. typedef struct
  97. {
  98. t_d2cs_d2gs_header      h;
  99. bn_int                  cmd;
  100. bn_int                  value;
  101. } t_d2cs_d2gs_control;
  102. #define D2CS_D2GS_CONTROL_CMD_RESTART 0x01
  103. #define D2CS_D2GS_CONTROL_CMD_SHUTDOWN 0x02
  104. #define D2CS_D2GS_CONTROL_VALUE_DEFAULT 0x00
  105. #define D2CS_D2GS_SETINITINFO 0x15
  106. typedef struct
  107. {
  108. t_d2cs_d2gs_header h;
  109. bn_int time;
  110. bn_int gs_id;
  111. bn_int ac_version;
  112. /* ac_checksum */
  113. } t_d2cs_d2gs_setinitinfo;
  114. #define D2CS_D2GS_SETCONFFILE 0x16
  115. typedef struct
  116. {
  117. t_d2cs_d2gs_header h;
  118. bn_int size;
  119. bn_int reserved1;
  120. /* conf file (null terminated string) */
  121. } t_d2cs_d2gs_setconffile;
  122. #define D2CS_D2GS_CREATEGAMEREQ 0x20
  123. typedef struct
  124. {
  125. t_d2cs_d2gs_header h;
  126. bn_byte ladder;
  127. bn_byte expansion;
  128. bn_byte difficulty;
  129. bn_byte hardcore;
  130. /* gamename */
  131. /* gamepass */
  132. /* gamedesc */
  133. /* create by acctname */
  134. /* create by charname */
  135. /* create by ip address(string) */
  136. } t_d2cs_d2gs_creategamereq;
  137. #define D2GAME_DIFFICULTY_NORMAL 0
  138. #define D2GAME_DIFFICULTY_NIGHTMARE 1
  139. #define D2GAME_DIFFICULTY_HELL 2
  140. #define D2GS_D2CS_CREATEGAMEREPLY 0x20
  141. typedef struct
  142. {
  143. t_d2cs_d2gs_header h;
  144. bn_int result;
  145. bn_int gameid;
  146. } t_d2gs_d2cs_creategamereply;
  147. #define D2GS_D2CS_CREATEGAME_SUCCEED 0
  148. #define D2GS_D2CS_CREATEGAME_FAILED 1
  149. #define D2CS_D2GS_JOINGAMEREQ 0x21
  150. typedef struct
  151. {
  152. t_d2cs_d2gs_header h;
  153. bn_int gameid;
  154. bn_int token;
  155. /* character name */
  156. /* account name */
  157. /* client ip address(string) */
  158. } t_d2cs_d2gs_joingamereq;
  159. #define D2GS_D2CS_JOINGAMEREPLY 0x21
  160. typedef struct
  161. {
  162. t_d2cs_d2gs_header h;
  163. bn_int result;
  164. bn_int gameid;
  165. } t_d2gs_d2cs_joingamereply;
  166. #define D2GS_D2CS_JOINGAME_SUCCEED 0
  167. #define D2GS_D2CS_JOINGAME_FAILED 1
  168. #define D2GS_D2CS_JOINGAME_GAME_FULL 2
  169. #define D2GS_D2CS_UPDATEGAMEINFO 0x22
  170. typedef struct
  171. {
  172. t_d2cs_d2gs_header h;
  173. bn_int flag;
  174. bn_int gameid;
  175. bn_int charlevel;
  176. bn_int charclass;
  177. /* charname */
  178. } t_d2gs_d2cs_updategameinfo;
  179. #define D2GS_D2CS_UPDATEGAMEINFO_FLAG_UPDATE 0
  180. #define D2GS_D2CS_UPDATEGAMEINFO_FLAG_ENTER 1
  181. #define D2GS_D2CS_UPDATEGAMEINFO_FLAG_LEAVE 2
  182. #define D2GS_D2CS_CLOSEGAME 0x23
  183. typedef struct
  184. {
  185. t_d2cs_d2gs_header h;
  186. bn_int gameid;
  187. } t_d2gs_d2cs_closegame;
  188. #ifdef D2GS
  189. #pragma pack(pop, pack01)
  190. #endif
  191. #endif