KTongProtocol.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:10k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // -------------------------------------------------------------------------
  2. // 文件名 : KTongProtocol.h
  3. // 创建者 : 谢茂培 (Hsie)
  4. // 创建时间 : 2003-08-13 15:12:19
  5. // 功能描述 :
  6. //
  7. // -------------------------------------------------------------------------
  8. #ifndef __KTONGPROTOCOL_H__
  9. #define __KTONGPROTOCOL_H__
  10. #pragma pack(push, 1)
  11. #define defTONG_PROTOCOL_SERVER_NUM 255
  12. #define defTONG_PROTOCOL_CLIENT_NUM 255
  13. //---------------------------- tong protocol ----------------------------
  14. // relay server 收到的 game server 的协议
  15. enum 
  16. {
  17. enumC2S_TONG_CREATE = 0, // 创建帮会
  18. enumC2S_TONG_ADD_MEMBER, // 添加成员
  19. enumC2S_TONG_GET_HEAD_INFO, // 获得帮会信息
  20. enumC2S_TONG_GET_MANAGER_INFO, // 获得帮会队长信息
  21. enumC2S_TONG_GET_MEMBER_INFO, // 获得帮会帮众信息
  22. enumC2S_TONG_INSTATE, // 任命
  23. enumC2S_TONG_KICK, // 踢人
  24. enumC2S_TONG_LEAVE, // 离帮
  25. enumC2S_TONG_CHANGE_MASTER, // 传位
  26. enumC2S_TONG_ACCEPT_MASTER, // 是否接受传位
  27. enumC2S_TONG_GET_LOGIN_DATA, // 玩家登陆时申请帮会数据
  28. enumC2S_TONG_NUM, // 数量
  29. };
  30. // relay server 发给 game server 的协议
  31. enum
  32. {
  33. enumS2C_TONG_CREATE_SUCCESS = 0, // 帮会创建成功
  34. enumS2C_TONG_CREATE_FAIL, // 帮会创建失败
  35. enumS2C_TONG_ADD_MEMBER_SUCCESS, // 帮会添加成员成功
  36. enumS2C_TONG_ADD_MEMBER_FAIL, // 帮会添加成员失败
  37. enumS2C_TONG_HEAD_INFO, // 帮会信息
  38. enumS2C_TONG_MANAGER_INFO, // 帮会队长信息
  39. enumS2C_TONG_MEMBER_INFO, // 帮会队长信息
  40. enumS2C_TONG_BE_INSTATED, // 被任命
  41. enumS2C_TONG_INSTATE, // 任命成功或失败
  42. enumS2C_TONG_KICK, // 踢人成功或失败
  43. enumS2C_TONG_BE_KICKED, // 被踢出帮会
  44. enumS2C_TONG_LEAVE, // 离开帮会成功或失败
  45. enumS2C_TONG_CHECK_CHANGE_MASTER_POWER, // 判断是否有当帮主的能力
  46. enumS2C_TONG_CHANGE_MASTER_FAIL, // 传位失败
  47. enumS2C_TONG_CHANGE_AS, // 传位成功,身份改变
  48. enumS2C_TONG_CHANGE_MASTER, // 广播,更换帮主
  49. enumS2C_TONG_LOGIN_DATA, // 玩家登陆时候获得帮会数据
  50. enumS2C_TONG_NUM, // 数量
  51. };
  52. //-------------------------- tong protocol end --------------------------
  53. //friend protocol
  54. enum 
  55. {
  56. friend_c2c_askaddfriend, //请求加为好友
  57. friend_c2c_repaddfriend, //同意/拒绝加为好友
  58. friend_c2s_groupfriend, //将好友分组
  59. friend_c2s_erasefriend, //删除好友
  60. friend_c2s_asksyncfriendlist, //请求同步好友列表
  61. friend_s2c_repsyncfriendlist, //同步好友列表
  62. friend_s2c_friendstate, //好友状态通知
  63. friend_c2s_associate, //GS到Relay,自动组合2个人(有方向)
  64. friend_c2s_associatebevy, //GS到Relay,自动组合n个人
  65. friend_s2c_syncassociate, //Relay到Client,通知组合
  66. };
  67. //extend protocol
  68. enum
  69. {
  70. extend_s2c_passtosomeone,
  71. extend_s2c_passtobevy,
  72. };
  73. /////////////////////////////////////////////////////////////////
  74. //friend struct
  75. const int _GROUP_NAME_LEN = _NAME_LEN * 2;
  76. struct ASK_ADDFRIEND_CMD : EXTEND_HEADER
  77. {
  78. BYTE pckgid;
  79. char dstrole[_NAME_LEN];
  80. };
  81. struct ASK_ADDFRIEND_SYNC : EXTEND_HEADER
  82. {
  83. BYTE pckgid;
  84. char srcrole[_NAME_LEN];
  85. };
  86. enum {answerAgree, answerDisagree, answerUnable};
  87. struct REP_ADDFRIEND_CMD : EXTEND_HEADER
  88. {
  89. BYTE pckgid;
  90. char dstrole[_NAME_LEN];
  91. BYTE answer; //agree/disagree/unable
  92. };
  93. struct REP_ADDFRIEND_SYNC : EXTEND_HEADER
  94. {
  95. BYTE pckgid;
  96. char srcrole[_NAME_LEN];
  97. BYTE answer; //agree/disagree/unable
  98. };
  99. //used by GROUP_FRIEND & REP_SYNCFRIENDLIST
  100. enum {specOver = 0x00, specGroup = 0x01, specRole = 0x02};
  101. struct GROUP_FRIEND : EXTEND_HEADER
  102. {
  103. //format: char seq
  104. //specGroup标记组,其后接该组好友列表,以间隔,specRole标记角色名
  105. //最后以双结束
  106. };
  107. struct ERASE_FRIEND : EXTEND_HEADER
  108. {
  109. char friendrole[_NAME_LEN];
  110. };
  111. struct ASK_SYNCFRIENDLIST : EXTEND_HEADER
  112. {
  113. BYTE pckgid;
  114. BYTE full;
  115. };
  116. struct REP_SYNCFRIENDLIST : EXTEND_HEADER
  117. {
  118. BYTE pckgid;
  119. //format: char seq (same as GROUP_FRIEND)
  120. //specGroup标记组,其后接该组好友列表,以间隔,specRole标记角色名
  121. //最后以双结束
  122. };
  123. enum {stateOffline, stateOnline};
  124. struct FRIEND_STATE : EXTEND_HEADER
  125. {
  126. BYTE state;
  127. //format: char seq, 间隔,双结束
  128. };
  129. struct FRIEND_ASSOCIATE : EXTEND_HEADER
  130. {
  131. BYTE bidir;
  132. //format: string * 3
  133. //组名
  134. //角色名 * 2
  135. };
  136. struct FRIEND_ASSOCIATEBEVY : EXTEND_HEADER
  137. {
  138. //format: char seq, 间隔,双结束
  139. //组名
  140. //角色名列表
  141. };
  142. struct FRIEND_SYNCASSOCIATE : EXTEND_HEADER
  143. {
  144. //format: char seq, 间隔,双结束
  145. //组名
  146. //角色名列表
  147. };
  148. /////////////////////////////////////////////////////////////////
  149. //extend struct
  150. struct EXTEND_PASSTOSOMEONE : EXTEND_HEADER
  151. {
  152. DWORD nameid;
  153. unsigned long lnID;
  154. WORD datasize;
  155. };
  156. struct EXTEND_PASSTOBEVY : EXTEND_HEADER
  157. {
  158. WORD datasize;
  159. WORD playercount;
  160. //data
  161. //tagPlusSrcInfo vector
  162. };
  163. //----------------------------- tong struct -----------------------------
  164. struct STONG_CREATE_COMMAND : EXTEND_HEADER
  165. {
  166. WORD m_wLength;
  167. DWORD m_dwPlayerNameID;
  168. DWORD m_dwParam;
  169. BYTE m_btCamp;
  170. BYTE m_btTongNameLength;
  171. BYTE m_btPlayerNameLength;
  172. char m_szBuffer[64];
  173. };
  174. struct STONG_CREATE_SUCCESS_SYNC : EXTEND_HEADER
  175. {
  176. WORD m_wLength;
  177. DWORD m_dwPlayerNameID;
  178. DWORD m_dwParam;
  179. BYTE m_btCamp;
  180. BYTE m_btTongNameLength;
  181. char m_szTongName[32];
  182. };
  183. struct STONG_CREATE_FAIL_SYNC : EXTEND_HEADER
  184. {
  185. DWORD m_dwPlayerNameID;
  186. DWORD m_dwParam;
  187. BYTE m_btFailID;
  188. };
  189. struct STONG_ADD_MEMBER_COMMAND : EXTEND_HEADER
  190. {
  191. WORD m_wLength;
  192. DWORD m_dwPlayerNameID;
  193. DWORD m_dwParam;
  194. BYTE m_btTongNameLength;
  195. BYTE m_btPlayerNameLength;
  196. char m_szBuffer[64];
  197. };
  198. struct STONG_ADD_MEMBER_SUCCESS_SYNC : EXTEND_HEADER
  199. {
  200. DWORD m_dwPlayerNameID;
  201. DWORD m_dwParam;
  202. BYTE m_btCamp;
  203. char m_szTongName[32];
  204. char m_szMasterName[32];
  205. char m_szTitleName[32];
  206. };
  207. struct STONG_ADD_MEMBER_FAIL_SYNC : EXTEND_HEADER
  208. {
  209. DWORD m_dwPlayerNameID;
  210. DWORD m_dwParam;
  211. BYTE m_btFailID;
  212. };
  213. struct STONG_GET_TONG_HEAD_INFO_COMMAND : EXTEND_HEADER
  214. {
  215. DWORD m_dwParam;
  216. DWORD m_dwNpcID;
  217. DWORD m_dwTongNameID;
  218. };
  219. struct STONG_GET_MANAGER_INFO_COMMAND : EXTEND_HEADER
  220. {
  221. DWORD m_dwParam;
  222. int m_nParam1;
  223. int m_nParam2;
  224. int m_nParam3;
  225. };
  226. struct STONG_GET_MEMBER_INFO_COMMAND : EXTEND_HEADER
  227. {
  228. DWORD m_dwParam;
  229. int m_nParam1;
  230. int m_nParam2;
  231. int m_nParam3;
  232. };
  233. struct STONG_ONE_LEADER_INFO
  234. {
  235. BYTE m_btFigure;
  236. BYTE m_btPos;
  237. char m_szTitle[32];
  238. char m_szName[32];
  239. };
  240. struct STONG_ONE_MEMBER_INFO
  241. {
  242. char m_szName[32];
  243. };
  244. struct STONG_HEAD_INFO_SYNC : EXTEND_HEADER
  245. {
  246. WORD m_wLength;
  247. DWORD m_dwParam;
  248. DWORD m_dwNpcID;
  249. DWORD m_dwMoney;
  250. int m_nCredit;
  251. BYTE m_btCamp;
  252. BYTE m_btLevel;
  253. BYTE m_btDirectorNum;
  254. BYTE m_btManagerNum;
  255. DWORD m_dwMemberNum;
  256. char m_szTongName[32];
  257. STONG_ONE_LEADER_INFO m_sMember[1 + defTONG_MAX_DIRECTOR];
  258. };
  259. struct STONG_MANAGER_INFO_SYNC : EXTEND_HEADER
  260. {
  261. WORD m_wLength;
  262. DWORD m_dwParam;
  263. DWORD m_dwMoney;
  264. int m_nCredit;
  265. BYTE m_btCamp;
  266. BYTE m_btLevel;
  267. BYTE m_btDirectorNum;
  268. BYTE m_btManagerNum;
  269. DWORD m_dwMemberNum;
  270. BYTE m_btStartNo;
  271. BYTE m_btCurNum;
  272. char m_szTongName[32];
  273. STONG_ONE_LEADER_INFO m_sMember[defTONG_ONE_PAGE_MAX_NUM];
  274. };
  275. struct STONG_MEMBER_INFO_SYNC : EXTEND_HEADER
  276. {
  277. WORD m_wLength;
  278. DWORD m_dwParam;
  279. DWORD m_dwMoney;
  280. int m_nCredit;
  281. BYTE m_btCamp;
  282. BYTE m_btLevel;
  283. BYTE m_btDirectorNum;
  284. BYTE m_btManagerNum;
  285. DWORD m_dwMemberNum;
  286. BYTE m_btStartNo;
  287. BYTE m_btCurNum;
  288. char m_szTitle[32];
  289. char m_szTongName[32];
  290. STONG_ONE_MEMBER_INFO m_sMember[defTONG_ONE_PAGE_MAX_NUM];
  291. };
  292. struct STONG_INSTATE_COMMAND : EXTEND_HEADER
  293. {
  294. DWORD m_dwParam;
  295. DWORD m_dwTongNameID;
  296. BYTE m_btCurFigure;
  297. BYTE m_btCurPos;
  298. BYTE m_btNewFigure;
  299. BYTE m_btNewPos;
  300. char m_szName[32];
  301. };
  302. struct STONG_BE_INSTATED_SYNC : EXTEND_HEADER
  303. {
  304. DWORD m_dwParam; // 网络连接号
  305. BYTE m_btFigure;
  306. BYTE m_btPos;
  307. char m_szTitle[32];
  308. char m_szName[32];
  309. };
  310. struct STONG_BE_KICKED_SYNC : EXTEND_HEADER
  311. {
  312. DWORD m_dwParam; // 网络连接号
  313. BYTE m_btFigure;
  314. BYTE m_btPos;
  315. char m_szName[32];
  316. };
  317. struct STONG_INSTATE_SYNC : EXTEND_HEADER
  318. {
  319. DWORD m_dwParam;
  320. DWORD m_dwTongNameID;
  321. BYTE m_btSuccessFlag;
  322. BYTE m_btOldFigure;
  323. BYTE m_btOldPos;
  324. BYTE m_btNewFigure;
  325. BYTE m_btNewPos;
  326. char m_szTitle[32];
  327. char m_szName[32];
  328. };
  329. struct STONG_KICK_COMMAND : EXTEND_HEADER
  330. {
  331. DWORD m_dwParam;
  332. DWORD m_dwTongNameID;
  333. BYTE m_btFigure;
  334. BYTE m_btPos;
  335. char m_szName[32];
  336. };
  337. struct STONG_KICK_SYNC : EXTEND_HEADER
  338. {
  339. DWORD m_dwParam;
  340. DWORD m_dwTongNameID;
  341. BYTE m_btSuccessFlag;
  342. BYTE m_btFigure;
  343. BYTE m_btPos;
  344. char m_szName[32];
  345. };
  346. struct STONG_LEAVE_COMMAND : EXTEND_HEADER
  347. {
  348. DWORD m_dwParam;
  349. DWORD m_dwTongNameID;
  350. BYTE m_btFigure;
  351. BYTE m_btPos;
  352. char m_szName[32];
  353. };
  354. struct STONG_LEAVE_SYNC : EXTEND_HEADER
  355. {
  356. DWORD m_dwParam;
  357. BYTE m_btSuccessFlag;
  358. char m_szName[32];
  359. };
  360. struct STONG_CHANGE_MASTER_COMMAND : EXTEND_HEADER
  361. {
  362. DWORD m_dwParam;
  363. DWORD m_dwTongNameID;
  364. BYTE m_btFigure;
  365. BYTE m_btPos;
  366. char m_szName[32];
  367. };
  368. struct STONG_CHECK_GET_MASTER_POWER_SYNC : EXTEND_HEADER
  369. {
  370. DWORD m_dwParam;
  371. BYTE m_btFigure;
  372. BYTE m_btPos;
  373. DWORD m_dwTongNameID;
  374. char m_szName[32];
  375. };
  376. struct STONG_CHANGE_MASTER_FAIL_SYNC : EXTEND_HEADER
  377. {
  378. DWORD m_dwParam;
  379. DWORD m_dwTongNameID;
  380. BYTE m_btFailID;
  381. char m_szName[32];
  382. };
  383. struct STONG_CHANGE_AS_SYNC : EXTEND_HEADER
  384. {
  385. DWORD m_dwParam;
  386. DWORD m_dwTongNameID;
  387. BYTE m_btFigure;
  388. BYTE m_btPos;
  389. char m_szTitle[32]; // 自己的新头衔
  390. char m_szName[32]; // 新帮主的名字
  391. };
  392. struct STONG_ACCEPT_MASTER_COMMAND : EXTEND_HEADER
  393. {
  394. DWORD m_dwParam;
  395. DWORD m_dwTongNameID;
  396. BYTE m_btFigure;
  397. BYTE m_btPos;
  398. BYTE m_btAcceptFalg;
  399. char m_szName[32];
  400. };
  401. struct STONG_CHANGE_MASTER_SYNC : EXTEND_HEADER
  402. {
  403. DWORD m_dwTongNameID;
  404. char m_szName[32];
  405. };
  406. struct STONG_GET_LOGIN_DATA_COMMAND : EXTEND_HEADER
  407. {
  408. DWORD m_dwParam;
  409. DWORD m_dwTongNameID;
  410. char m_szName[32];
  411. };
  412. struct STONG_LOGIN_DATA_SYNC : EXTEND_HEADER
  413. {
  414. DWORD m_dwParam;
  415. BYTE m_btFlag;
  416. BYTE m_btCamp;
  417. BYTE m_btFigure;
  418. BYTE m_btPos;
  419. char m_szTongName[32];
  420. char m_szTitle[32];
  421. char m_szMaster[32];
  422. char m_szName[32];
  423. };
  424. //--------------------------- tong struct end ---------------------------
  425. #pragma pack(pop)
  426. #endif // __KTONGPROTOCOL_H__