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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 2003 by Kingsoft
  3. //
  4. // File: KGmProtocol.h
  5. // Date: 2003.06.02
  6. // Code: 边城浪子
  7. //---------------------------------------------------------------------------
  8. #ifndef KGMPROTOCOL_H
  9. #define KGMPROTOCOL_H
  10. #pragma pack(push, 1)
  11. #define defACCOUNT_STRING_LENGTH 32
  12. #define defGAMEWORLD_STRING_LENGTH 32
  13. typedef struct tagGMCmdHeader
  14. {
  15. BYTE ProtocolFamily; // 协议所属的家族
  16. BYTE ProtocolType; // 协议名称
  17. char AccountName[defACCOUNT_STRING_LENGTH]; // 操作账号名称
  18. }GM_HEADER;
  19. // GM对游戏中玩家的各种操作
  20. // 协议id:gm_c2s_execute  (变长协议)
  21. typedef struct tagGMExecuteCommand : tagGMCmdHeader
  22. {
  23. WORD wExecuteID; // 操作id(== 1 执行脚本;>= 2 其他操作)
  24. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  25. // 后面应该紧跟着对应操作id的操作参数数据,根据不同的操作id确定长度及相应内容
  26. } GM_EXECUTE_COMMAND;
  27. // 对游戏中玩家设定各种特殊被管理状态(实际操作时用拦截具体协议实现)
  28. // 协议id:gm_c2s_disable  (变长协议)
  29. typedef struct tagGMDisableActionCmd : tagGMCmdHeader
  30. {
  31. BYTE btProtocol; // 被拦截协议编号
  32. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  33. // 后面应该紧跟着对应被拦截协议编号的具体参数数据,长度由被拦截协议编号决定
  34. } GM_DISABLE_ACTION_COMMAND;
  35. // 对游戏中玩家取消各种特殊被管理状态
  36. // 协议id:gm_c2s_enable  (变长协议)
  37. typedef struct tagGMEnableActionCmd : tagGMCmdHeader
  38. {
  39. BYTE btProtocol; // 取消被拦截协议编号
  40. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  41. // 后面应该紧跟着对应取消被拦截协议编号的具体参数数据,长度由取消被拦截协议编号决定
  42. } GM_ENABLE_ACTION_COMMAND;
  43. // 对特定玩家数据进行跟踪
  44. // 协议id:gm_c2s_tracking  (定长协议)
  45. typedef struct tagTrackCmd : tagGMCmdHeader
  46. {
  47. BYTE ProtocolFamily; //协议所属的家族
  48. BYTE ProtocolType; // 协议名称
  49. BYTE btTrackFlag; // 是否跟踪,1跟踪,0取消跟踪
  50. } GM_TRACK_COMMAND;
  51. // 发送特定玩家的跟踪数据给GM
  52. // 协议id:gm_s2c_tracking  (变长协议)
  53. typedef struct tagGMTrackSync : tagGMCmdHeader
  54. {
  55. WORD wLength; // 所携数据包长度,数据从结构结尾处开始
  56. // 后面应该紧跟着一个数据包,这个数据包由游戏服务器发给玩家客户端的各种协议组成
  57. } GM_TRACK_SYNC;
  58. enum enumGMGetRoleCmds
  59. {
  60. gm_role_entergame_position = 0, //获取玩家进入游戏的位置,返回 GM_GET_ROLE_DATA_SUB_ENTER_POS
  61. };
  62. typedef struct tagGMGetRoleEnterGamePos
  63. {
  64. int nSubWorldID;
  65. int nEnterGameX;
  66. int nEnterGameY;
  67. }GM_ROLE_DATA_SUB_ENTER_POS;
  68. // 设定和取得角色的各种数值:(只能处理部分数据,如果需要比较大块的数据,直接查询角色服务器)
  69. // 设定:协议id gm_c2s_setrole  (变长协议)
  70. typedef struct tagGMSetRoleDataCmd : tagGMCmdHeader
  71. {
  72. WORD wSetID; // 操作ID,设定哪一类数据
  73. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  74. // 后面应该紧跟着对应操作ID的具体操作参数数据,根据不同的操作ID确定长度及相应内容
  75. } GM_SET_ROLE_DATA_COMMAND;
  76. // 取得:协议id gm_c2s_getrole  (变长协议)
  77. typedef struct tagGMGetRoleDataCmd : tagGMCmdHeader
  78. {
  79. WORD wGetID; // 操作ID,取得哪一类数据
  80. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  81. // 后面应该紧跟着对应操作ID的具体操作参数数据,根据不同的操作ID确定长度及相应内容
  82. } GM_GET_ROLE_DATA_COMMAND;
  83. // 回复,游戏服务器发送玩家数据给GM系统
  84. // 协议id:gm_s2c_getrole  (变长协议)
  85. typedef struct tagGMGetRoleDataSync : tagGMCmdHeader
  86. {
  87. WORD wGetID; // 操作ID,取得哪一类数据
  88. WORD wLength; // 所携数据长度,数据从结构结尾处开始
  89. // 后面应该紧跟着对应操作ID的具体操作参数数据,根据不同的操作ID确定长度及相应内容
  90. } GM_GET_ROLE_DATA_SYNC;
  91. // 获取:玩家所在游戏服务器(定长协议)
  92. typedef struct tagGMGetPlayerAtGWCmd : tagGMCmdHeader
  93. {
  94. } GM_GET_PLAYER_AT_GW_CMD;
  95. // 回复,游戏服务器返回GW服务器的名称
  96. typedef struct tagGMGetPlayerAtGWSync : tagGMCmdHeader
  97. {
  98. char szCurrentRoleName[32];
  99. int nX;
  100. int nY;
  101. int nWorldID;
  102. } GM_GET_PLAYER_AT_GW_SYNC;
  103. // 获取:从*数据库*获取玩家账号包含的所有角色名(定长)
  104. typedef struct tagGMGetRoleListCmd : tagGMCmdHeader
  105. {
  106. } GM_GET_ROLE_LIST_CMD;
  107. // 回复,游戏服务器返回GW服务器的名称(变长)
  108. typedef struct tagGMGetRoleListSync : tagGMCmdHeader
  109. {
  110. WORD wRoleCount; //后面跟的三个 RoleBaseInfo 中有效结构的个数
  111. } GM_GET_ROLE_LIST_SYNC;
  112. // 账号解锁(定长协议)
  113. typedef struct tagGMUnlockAccount : tagGMCmdHeader
  114. {
  115. }GM_UNLOCK_ACCOUNT;
  116. // 广播协议(变长)
  117. typedef struct tagGMBroadCastChatCmd : tagGMCmdHeader
  118. {
  119. WORD wSentenceLen; //后边跟广播的字符串
  120. }GM_BROADCAST_CHAT_CMD;
  121. typedef struct tagGMExecuteSync : tagGMCmdHeader
  122. {
  123. WORD wStrLength; //后面跟返回的字符串(char)长度,包含最后的0
  124. }GM_EXECUTE_SYNC;
  125. #pragma pack(pop)
  126. #endif