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