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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 2003 by Kingsoft
  3. //
  4. // File: KPlayerTong.h
  5. // Date: 2003.08.12
  6. // Code: 边城浪子
  7. // Desc: KPlayerTong Class
  8. //---------------------------------------------------------------------------
  9. #ifndef KPLAYERTONG_H
  10. #define KPLAYERTONG_H
  11. class KPlayerTong
  12. {
  13. friend class KPlayer;
  14. private:
  15. int m_nPlayerIndex; // 指向对应的player数组的位置
  16. int m_nFlag; // 是否加入帮会
  17. int m_nFigure; // 帮会中的身份
  18. int m_nCamp; // 帮会阵营
  19. DWORD m_dwTongNameID; // 帮会名字符串转换成的 dword
  20. char m_szName[32]; // 帮会名称
  21. char m_szTitle[32]; // 当前称号
  22. int m_nApplyTo; // 如果已经向某个帮会申请加入,帮主的 playerindex
  23. public:
  24. char m_szMasterName[32]; // 帮主名字
  25. private:
  26. BOOL CheckAcceptAddApplyCondition(); // 判断是否可以转发别人的加入帮会申请
  27. public:
  28. // 初始化
  29. void Init(int nPlayerIdx);
  30. void Clear();
  31. void GetTongName(char *lpszGetName);
  32. DWORD GetTongNameID();
  33. void SetTongNameID(DWORD dwID) { m_dwTongNameID = dwID; };
  34. int CheckIn() {return m_nFlag;};
  35. int GetCamp() {return m_nCamp;};
  36. int GetFigure() {return m_nFigure;};
  37. // 是否有权力查询队长信息
  38. BOOL CanGetManagerInfo(DWORD dwTongNameID);
  39. // 是否有权力查询帮众信息
  40. BOOL CanGetMemberInfo(DWORD dwTongNameID);
  41. #ifndef _SERVER
  42. // 申请创建帮会
  43. BOOL ApplyCreateTong(int nCamp, char *lpszTongName);
  44. // 得到服务器通知创建帮会
  45. void Create(TONG_CREATE_SYNC *psCreate);
  46. // 申请加入帮会
  47. BOOL ApplyAddTong(DWORD dwNpcID);
  48. // 是否接受成员 bFlag == TRUE 接受 == FALSE 不接受
  49. void AcceptMember(int nPlayerIdx, DWORD dwNameID, BOOL bFlag);
  50. // 加入帮会,成为普通帮众
  51. BOOL AddTong(int nCamp, char *lpszTongName, char *lpszTitle, char *lpszMaster);
  52. // 申请任命
  53. BOOL ApplyInstate(int nCurFigure, int nCurPos, int nNewFigure, int nNewPos, char *lpszName);
  54. // 申请踢人
  55. BOOL ApplyKick(int nCurFigure, int nCurPos, char *lpszName);
  56. // 申请传位
  57. BOOL ApplyChangeMaster(int nCurFigure, int nPos, char *lpszName);
  58. // 申请离开帮会
  59. BOOL ApplyLeave();
  60. /* 申请获得帮会信息
  61. if nInfoID == enumTONG_APPLY_INFO_ID_SELF 不用参数
  62. if nInfoID == enumTONG_APPLY_INFO_ID_MASTER nParam1 帮会名id
  63. if nInfoID == enumTONG_APPLY_INFO_ID_DIRECTOR nParam1 帮会名id
  64. if nInfoID == enumTONG_APPLY_INFO_ID_MANAGER nParam1 帮会名id nParam2 从开始有效第几个 nParam3 连续几个
  65. if nInfoID == enumTONG_APPLY_INFO_ID_MEMBER nParam1 帮会名id nParam2 从开始有效第几个 nParam3 连续几个
  66. if nInfoID == enumTONG_APPLY_INFO_ID_ONE lpszName 人名
  67. if nInfoID == enumTONG_APPLY_INFO_ID_TONG_HEAD nParam1 NpcIndex
  68. */
  69. BOOL ApplyInfo(int nInfoID, int nParam1, int nParam2, int nParam3, char *lpszName = NULL);
  70. // 设定自身帮会信息
  71. void SetSelfInfo(TONG_SELF_INFO_SYNC *pInfo);
  72. void        OpenCreateInterface();
  73. #endif
  74. #ifdef _SERVER
  75. // 判断创建帮会条件是否成立 if 成功 return == 0 else return error id
  76. int CheckCreateCondition(int nCamp, char *lpszTongName);
  77. // 得到relay通知,帮会创建成功,处理相应数据
  78. BOOL Create(int nCamp, char *lpszTongName);
  79. // 头上是否需要顶找人标志
  80. BOOL GetOpenFlag();
  81. // 转发加入帮会申请给对方客户端
  82. BOOL TransferAddApply(DWORD dwNpcID);
  83. // 发消息通知拒绝某人申请
  84. void SendRefuseMessage(int nPlayerIdx, DWORD dwNameID);
  85. // 判断别人加入自己帮会条件是否成立
  86. BOOL CheckAddCondition(int nPlayerIdx);
  87. // 加入帮会,成为普通帮众
  88. BOOL AddTong(int nCamp, char *lpszTongName, char *lpszMasterName, char *lpszTitleName);
  89. // 给客户端发送自己在帮会中的信息
  90. void SendSelfInfo();
  91. // 检测是否有任命权利
  92. BOOL CheckInstatePower(TONG_APPLY_INSTATE_COMMAND *pApply);
  93. // 被任命
  94. void BeInstated(STONG_SERVER_TO_CORE_BE_INSTATED *pSync);
  95. // 检测是否有踢人权利
  96. BOOL CheckKickPower(TONG_APPLY_KICK_COMMAND *pKick);
  97. // 被踢出帮会
  98. void BeKicked(STONG_SERVER_TO_CORE_BE_KICKED *pSync);
  99. // 检测是否有离开权利
  100. BOOL CheckLeavePower(TONG_APPLY_LEAVE_COMMAND *pLeave);
  101. // 离开帮会
  102. void Leave(STONG_SERVER_TO_CORE_LEAVE *pLeave);
  103. // 检测是否有权利换帮主
  104. BOOL CheckChangeMasterPower(TONG_APPLY_CHANGE_MASTER_COMMAND *pChange);
  105. // 检测是否有能力接受传位
  106. BOOL CheckGetMasterPower(STONG_SERVER_TO_CORE_CHECK_GET_MASTER_POWER *pCheck);
  107. // 传位导致身份改变
  108. void ChangeAs(STONG_SERVER_TO_CORE_CHANGE_AS *pAs);
  109. // 换帮主
  110. void ChangeMaster(char *lpszMaster);
  111. // 登陆时候获得帮会信息
  112. void Login(STONG_SERVER_TO_CORE_LOGIN *pLogin);
  113. void DBSetTongNameID(DWORD dwID) { m_dwTongNameID = dwID; if (dwID) m_nFlag = 1;};
  114. #endif
  115. };
  116. #endif