Protocol.h
上传用户:szopptop
上传日期:2013-04-23
资源大小:1047k
文件大小:12k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #ifndef _LEGENDOFMIR2_PROTCOL
  2. #define _LEGENDOFMIR2_PROTCOL
  3. #define DEFBLOCKSIZE 16
  4. #define HUMANRCDBLOCKSIZE 256
  5. #define ITEMRCDBLOCKSIZE 70 // _TUSERITEMRCD
  6. #define MAGICRCDBLOCKSIZE 10
  7. #define GENITEMRCDBLOCKSIZE 18
  8. #define HOWMANYMAGICS 31
  9. #define USERITEMMAX 65
  10. // For Login Process
  11. #define CM_PROTOCOL 2000
  12. #define CM_IDPASSWORD 2001
  13. #define CM_ADDNEWUSER 2002
  14. #define CM_CHANGEPASSWORD 2003
  15. #define CM_UPDATEUSER 2004
  16. #define CM_SELECTSERVER 104
  17. #define SM_CERTIFICATION_FAIL 501
  18. #define SM_ID_NOTFOUND 502
  19. #define SM_PASSWD_FAIL 503
  20. #define SM_NEWID_SUCCESS        504
  21. #define SM_NEWID_FAIL           505
  22. #define SM_PASSOK_SELECTSERVER 529
  23. #define SM_SELECTSERVER_OK 530
  24. // For Select Character Process
  25. #define CM_QUERYCHR 100
  26. #define CM_NEWCHR 101
  27. #define CM_DELCHR 102
  28. #define CM_SELCHR 103
  29. #define SM_QUERYCHR 520
  30. #define SM_NEWCHR_SUCCESS 521
  31. #define SM_NEWCHR_FAIL 522
  32. #define SM_DELCHR_SUCCESS 523
  33. #define SM_DELCHR_FAIL 524
  34. #define SM_STARTPLAY 525
  35. #define SM_STARTFAIL 526
  36. #define SM_QUERYCHR_FAIL 527
  37. // For Game Gate
  38. #define GM_OPEN 1
  39. #define GM_CLOSE 2
  40. #define GM_CHECKSERVER 3 // Send check signal to Server
  41. #define GM_CHECKCLIENT 4 // Send check signal to Client
  42. #define GM_DATA 5
  43. #define GM_SERVERUSERINDEX 6
  44. #define GM_RECEIVE_OK 7
  45. #define GM_TEST 20
  46. // For game process
  47. // Client To Server Commands
  48. #define CM_QUERYUSERNAME        80
  49. #define CM_QUERYBAGITEMS        81
  50. #define CM_DROPITEM             1000
  51. #define CM_PICKUP               1001
  52. #define CM_TAKEONITEM 1003
  53. #define CM_TAKEOFFITEM          1004
  54. #define CM_BUTCH                1007
  55. #define CM_MAGICKEYCHANGE 1008
  56. #define CM_EAT                  1006
  57. #define CM_TURN                 3010
  58. #define CM_WALK                 3011
  59. #define CM_SITDOWN              3012
  60. #define CM_RUN                  3013
  61. #define CM_HIT                  3014
  62. #define CM_HEAVYHIT             3015
  63. #define CM_BIGHIT               3016
  64. #define CM_SPELL                3017
  65. #define CM_POWERHIT             3018
  66. #define CM_LONGHIT              3019
  67. #define CM_WIDEHIT              3024
  68. #define CM_FIREHIT              3025
  69. #define CM_SAY                  3030
  70. #define CM_RIDE 3031
  71. // Server to Client Commands
  72. #define SM_RUSH 6
  73. #define SM_FIREHIT              8
  74. #define SM_BACKSTEP 9
  75. #define SM_TURN 10
  76. #define SM_WALK 11
  77. #define SM_SITDOWN              12
  78. #define SM_RUN 13
  79. #define SM_HIT 14
  80. #define SM_SPELL 17
  81. #define SM_POWERHIT             18
  82. #define SM_LONGHIT              19
  83. #define SM_DIGUP                20
  84. #define SM_DIGDOWN              21
  85. #define SM_FLYAXE               22
  86. #define SM_LIGHTING             23
  87. #define SM_WIDEHIT              24
  88. #define SM_DISAPPEAR            30
  89. #define SM_STRUCK 31
  90. #define SM_DEATH                32
  91. #define SM_SKELETON             33
  92. #define SM_NOWDEATH             34
  93. #define SM_HEAR 40
  94. #define SM_FEATURECHANGED       41
  95. #define SM_USERNAME             42
  96. #define SM_WINEXP               44
  97. #define SM_LEVELUP              45
  98. #define SM_DAYCHANGING          46
  99. #define SM_LOGON 50
  100. #define SM_NEWMAP               51
  101. #define SM_ABILITY 52
  102. #define SM_HEALTHSPELLCHANGED   53
  103. #define SM_MAPDESCRIPTION       54
  104. #define SM_SPELL2               117
  105. #define SM_SYSMESSAGE           100
  106. #define SM_GROUPMESSAGE         101
  107. #define SM_CRY                  102
  108. #define SM_WHISPER              103
  109. #define SM_GUILDMESSAGE         104
  110. #define SM_ADDITEM 200
  111. #define SM_BAGITEMS 201
  112. #define SM_ADDMAGIC             210
  113. #define SM_SENDMYMAGIC 211
  114. #define SM_DROPITEM_SUCCESS     600
  115. #define SM_DROPITEM_FAIL        601
  116. #define SM_ITEMSHOW             610
  117. #define SM_ITEMHIDE             611
  118. #define SM_DOOROPEN 612
  119. #define SM_TAKEON_OK            615
  120. #define SM_TAKEON_FAIL          616
  121. #define SM_TAKEOFF_OK           619
  122. #define SM_TAKEOFF_FAIL         620
  123. #define SM_SENDUSEITEMS         621
  124. #define SM_WEIGHTCHANGED        622
  125. #define SM_CLEAROBJECTS         633
  126. #define SM_CHANGEMAP            634
  127. #define SM_EAT_OK               635
  128. #define SM_EAT_FAIL             636
  129. #define SM_BUTCH                637
  130. #define SM_MAGICFIRE 638
  131. #define SM_MAGIC_LVEXP          640
  132. #define SM_DURACHANGE           642
  133. #define SM_MERCHANTSAY          643
  134. #define SM_GOLDCHANGED          653
  135. #define SM_CHANGELIGHT          654
  136. #define SM_CHANGENAMECOLOR      656
  137. #define SM_CHARSTATUSCHANGED 657
  138. #define SM_SUBABILITY           752
  139. #define SM_SHOWEVENT            804
  140. #define SM_HIDEEVENT            805
  141. #define SM_OPENHEALTH           1100
  142. #define SM_CLOSEHEALTH          1101
  143. #define SM_CHANGEFACE           1104
  144. #define SM_ITEMUPDATE 1500
  145. #define SM_MONSTERSAY 1501
  146. // Server to Server Commands
  147. #define RM_TURN 10001
  148. #define RM_WALK 10002
  149. #define RM_RUN 10003
  150. #define RM_HIT 10004
  151. #define RM_SPELL 10007
  152. #define RM_SPELL2 10008
  153. #define RM_POWERHIT             10009
  154. #define RM_LONGHIT              10011
  155. #define RM_WIDEHIT              10012
  156. #define RM_PUSH 10013
  157. #define RM_FIREHIT              10014
  158. #define RM_RUSH 10015
  159. #define RM_STRUCK 10020
  160. #define RM_DEATH                10021
  161. #define RM_DISAPPEAR 10022
  162. #define RM_MAGSTRUCK            10025
  163. #define RM_STRUCK_MAG           10027
  164. #define RM_MAGSTRUCK_MINE       10028
  165. #define RM_MAGHEALING           10026
  166. #define RM_HEAR 10030
  167. #define RM_WHISPER              10031
  168. #define RM_CRY                  10032
  169. #define RM_RIDE 10033
  170. #define RM_WINEXP               10044
  171. #define RM_USERNAME 10043
  172. #define RM_LEVELUP 10045
  173. #define RM_CHANGENAMECOLOR      10046
  174. #define RM_LOGON 10050
  175. #define RM_ABILITY 10051
  176. #define RM_HEALTHSPELLCHANGED   10052
  177. #define RM_DAYCHANGING          10053
  178. #define RM_SYSMESSAGE 10100
  179. #define RM_GROUPMESSAGE         10102
  180. #define RM_SYSMESSAGE2 10103
  181. #define RM_GUILDMESSAGE         10104
  182. #define RM_ITEMSHOW             10110
  183. #define RM_ITEMHIDE             10111
  184. #define RM_DOOROPEN 10112
  185. #define RM_SENDUSEITEMS         10114
  186. #define RM_WEIGHTCHANGED        10115
  187. #define RM_FEATURECHANGED       10116
  188. #define RM_CLEAROBJECTS         10117
  189. #define RM_CHANGEMAP            10118
  190. #define RM_BUTCH                10119
  191. #define RM_MAGICFIRE            10120
  192. #define RM_SENDMYMAGIC 10122
  193. #define RM_MAGIC_LVEXP          10123
  194. #define RM_SKELETON             10024
  195. #define RM_DURACHANGE           10125
  196. #define RM_MERCHANTSAY          10126
  197. #define RM_GOLDCHANGED          10136
  198. #define RM_CHANGELIGHT          10137
  199. #define RM_CHARSTATUSCHANGED 10139
  200. #define RM_DELAYMAGIC 10154
  201. #define RM_DIGUP                10200
  202. #define RM_DIGDOWN              10201
  203. #define RM_FLYAXE               10202
  204. #define RM_LIGHTING             10204
  205. #define RM_SUBABILITY           10302
  206. #define RM_TRANSPARENT          10308
  207. #define RM_SPACEMOVE_SHOW       10331
  208. #define RM_HIDEEVENT            10333
  209. #define RM_SHOWEVENT            10334
  210. #define RM_ZEN_BEE 10337
  211. #define RM_OPENHEALTH           10410
  212. #define RM_CLOSEHEALTH          10411
  213. #define RM_DOOPENHEALTH         10412
  214. #define RM_CHANGEFACE           10415
  215. #define RM_ITEMUPDATE 11000
  216. #define RM_MONSTERSAY 11001
  217. #define RM_MAKESLAVE 11002
  218. // For DB Server
  219. #define DB_LOADHUMANRCD 100
  220. #define DB_SAVEHUMANRCD 101
  221. #define DB_MAKEITEMRCD 150
  222. #define DB_ITEMTHROW 151
  223. #define DB_MAKEITEMRCD2 152
  224. #define DBR_LOADHUMANRCD 1100
  225. #define DBR_LOADHUMANRCD2 1101
  226. #define DBR_MAKEITEMRCD 1500
  227. #define DBR_MAKEITEMRCD2 1501
  228. #define DBR_FAIL 2000
  229. typedef struct tag_TMESSAGEBODYWL
  230. {
  231. LONG lParam1;
  232. LONG lParam2;
  233. LONG nTag1;
  234. LONG nTag2;
  235. } _TMESSAGEBODYWL, _LPTMESSAGEBODYWL;
  236. typedef struct tag_TSHORTMSSEAGE
  237. {
  238. WORD wIdent;
  239. WORD wMsg;
  240. } _TSHORTMSSEAGE, *_LPTSHORTMSSEAGE;
  241. typedef struct tag_TCHARDESC
  242. {
  243. LONG Feature;
  244. LONG Status;
  245. } _TCHARDESC, *_LPTCHARDESC;
  246. typedef struct tag_TDEFUSERINFO
  247. {
  248. TCHAR szLoginID[10];
  249. TCHAR szPassword[10];
  250. TCHAR szUserName[20];
  251. } _TDEFUSERINFO, *_LPTUDEFUSERINFO;
  252. typedef struct tag_TADDUSERINFO1
  253. {
  254. TCHAR szZipCode[15];
  255. TCHAR szAddress1[21];
  256. TCHAR szAddress2[21];
  257. TCHAR szSSNo[15];
  258. TCHAR szPhone[14];
  259. TCHAR szQuiz[20];
  260. TCHAR szAnswer[12];
  261. TCHAR szEmail[40];
  262. TCHAR szQuiz2[20];
  263. TCHAR szAnswer2[12];
  264. TCHAR szBirthDay[11];
  265. TCHAR szMobilePhone[15];
  266. } _TADDUSERINFO1, *_LPTADDUSERINFO;
  267. typedef struct tag_TUSERENTRYINFO
  268. {
  269. _TDEFUSERINFO tDefUserInfo;
  270. _TADDUSERINFO1 tAddUserInfo;
  271. } _TUSERENTRYINFO, *_LPTUSERENTRYINFO;
  272. typedef struct tag_AUSERENTRYINFO
  273. {
  274. char szLoginID[10];
  275. char szPassword[10];
  276. char szUserName[20];
  277. char szZipCode[15];
  278. char szAddress1[21];
  279. char szAddress2[21];
  280. char szSSNo[15];
  281. char szPhone[14];
  282. char szQuiz[20];
  283. char szAnswer[12];
  284. char szEmail[40];
  285. char szQuiz2[20];
  286. char szAnswer2[12];
  287. char szBirthDay[11];
  288. char szMobilePhone[15];
  289. } _AUSERENTRYINFO, *_LPAUSERENTRYINFO;
  290. typedef struct tag_TLOADMUHAN
  291. {
  292. char szUserID[16];
  293. char szCharName[20];
  294. char szUserAddr[15];
  295. int nCertification;
  296. } _TLOADHUMAN, *_LPTLOADHUMAN;
  297. #define U_DRESS 0
  298. #define U_WEAPON 1
  299. #define U_RIGHTHAND 2
  300. #define U_NECKLACE 3
  301. #define U_HELMET 4
  302. #define U_ARMRINGL 5
  303. #define U_ARMRINGR 6                   
  304. #define U_RINGL 7
  305. #define U_RINGR 8
  306. #pragma pack(1)
  307. typedef struct tag_THUMANRCD
  308. {
  309. char szUserID[16];
  310. char szCharName[20];
  311. BYTE btJob;
  312. BYTE btGender;
  313. char szTakeItem[10][12];
  314. BYTE szLevel;
  315. BYTE szHair;
  316. BYTE nDirection;
  317. char szMapName[15];
  318. BYTE btAttackMode;
  319. BYTE fIsAdmin;
  320. short nCX;
  321. short nCY;
  322. DWORD dwGold;
  323. WORD wHairColor;
  324. int nExp;
  325. } _THUMANRCD, *_LPTHUMANRCD;
  326. typedef struct tag_TMAKEITEMRCD
  327. {
  328. char szStdType;
  329. int nStdIndex;
  330. WORD nDura;
  331. WORD nDuraMax;
  332. BYTE btValue[14];
  333. } _TMAKEITEMRCD, *_LPTMAKEITEMRCD;
  334. typedef struct tag_GENERALITEMRCD
  335. {
  336. char szMakeIndex[12];
  337. int nStdIndex;
  338. int nDura;
  339. int nDuraMax;
  340. } _TGENERALITEMRCD, *_LPTGENERALITEMRCD;
  341. typedef struct tag_TUSERITEMRCD
  342. {
  343. char szMakeIndex[12];
  344. WORD nStdIndex;
  345. WORD nDura;
  346. WORD nDuraMax;
  347. BYTE btValue[14];
  348. char szPrefixName[20];
  349. } _TUSERITEMRCD, *_LPTUSERITEMRCD;
  350. typedef struct tag_TGENITEMRCD
  351. {
  352. char szItem[13];
  353. } _TGENITEMRCD, *_LPTGENITEMRCD;
  354. typedef struct tag_TSTANDARDITEM
  355. {
  356. char szName[20]; // 酒捞袍 捞抚 (玫窍力老八)
  357. char szPrefixName[20];
  358. BYTE btStdMode;          //
  359. BYTE btShape;            // 屈怕喊 捞抚 (枚八)
  360. BYTE btWeight;           // 公霸
  361. BYTE btAniCount;         // 1焊促 农搁 局聪皋捞记 登绰 酒捞袍
  362. BYTE btSource;           // 犁龙 (0篮 扁夯, 1焊促 农搁 歹 窜窜窃)
  363. BYTE btNeedIdentify;     // $01 (酒捞错萍颇捞 救 等 巴)
  364. WORD wLooks;             // 弊覆 锅龋
  365. WORD wDuraMax;
  366. WORD wAC; // 规绢仿
  367. WORD wMAC; // 付亲仿
  368. WORD wDC; // 单固瘤
  369. WORD wMC; // 贱荤狼 付过 颇况
  370. WORD wSC; // 档荤狼 沥脚仿
  371. BYTE btNeed;             // 0:Level, 1:DC, 2:MC, 3:SC
  372. BYTE btNeedLevel;        // 1..60 level value...
  373. UINT nPrice;
  374. } _TSTANDARDITEM, *_LPTSTANDARDITEM;
  375. typedef struct tag_TCLIENTITEMRCD
  376. {
  377. char szMakeIndex[12];
  378. int nDura;
  379. int nDuraMax;
  380. _TSTANDARDITEM tStdItem;
  381. } _TCLIENTITEMRCD, *_LPTCLIENTITEMRCD;
  382. typedef struct tag_TQUERYCHR
  383. {
  384. BYTE btClass;
  385. BYTE btGender;
  386. BYTE btLevel;
  387. char szName[20];
  388. } _TQUERYCHR,*_LPTQUERYCHR;
  389. typedef struct tag_TCREATECHR : public tag_TQUERYCHR
  390. {
  391. char szID[20];
  392. } _TCREATECHR, *_LPTCREATECHR;
  393. typedef struct tag_THORSERCD
  394. {
  395. char szHorseIndex[12];
  396. BYTE btHorseType;
  397. } _THORSERCD, *_LPTHORSERCD;
  398. typedef struct tag_THUMANMAGICRCD
  399. {
  400. BYTE btMagicID;
  401. char btLevel;
  402. char btUseKey;
  403. int nCurrTrain;
  404. } _THUMANMAGICRCD, *_LPTHUMANMAGICRCD;
  405. typedef struct tag_TSTANDARDMAGIC
  406. {
  407. BYTE btEffectType;
  408. BYTE btEffect;
  409. short sSpell;
  410. BYTE btDefSpell;
  411. short sNeed[3];
  412. int nTrain[3];
  413. int nDelayTime;
  414. } _TSTANDARDMAGIC, *_LPTSTANDARDMAGIC;
  415. typedef struct tag_TCLIENTMAGICRCD
  416. {
  417. BYTE btMagicID;
  418. char btLevel;
  419. char btUseKey;
  420. int nCurrTrain;
  421. _TSTANDARDMAGIC tStdMagic;
  422. } _TCLIENTMAGICRCD, *_LPTCLIENTMAGICRCD;
  423. #pragma pack(8)
  424. #endif