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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 2003 by Kingsoft
  3. //
  4. // File: KPlayerPK.h
  5. // Date: 2003.07.15
  6. // Code: 边城浪子
  7. // Desc: PlayerPK Class
  8. //---------------------------------------------------------------------------
  9. #ifndef KPLAYERPK_H
  10. #define KPLAYERPK_H
  11. #define PK_ANMITY_TIME 200
  12. #define PK_ANMITY_CLOSE_TIME 10800
  13. enum
  14. {
  15. enumPK_ENMITY_STATE_CLOSE = 0,
  16. enumPK_ENMITY_STATE_TIME,
  17. enumPK_ENMITY_STATE_PKING,
  18. enumPK_ENMITY_STATE_NUM,
  19. };
  20. #ifdef _SERVER
  21. class KPlayerPK
  22. {
  23. friend class KPlayer;
  24. private:
  25. int m_nPlayerIndex; // 指向对应的player数组的位置
  26. int m_nNormalPKFlag; // 正常PK开关 TRUE 打开,可以砍人  FALSE 关闭,不可以砍人
  27. int m_nEnmityPKState; // 仇杀PK状态 0 关闭 1 正在计时 2 仇杀正在进行,对应 enumPK_ANMITY_STATE
  28. int m_nEnmityPKAim; // 仇杀PK目标,player idx
  29. int m_nEnmityPKTime; // 仇杀PK状态为1正在计时,倒计时计数
  30. int m_nEnmityPKLaunchFlag; // 是否仇杀发起人
  31. int m_nExercisePKFlag; // 切磋模式PK开关 TRUE 打开,可以砍人  FALSE 关闭,不可以砍人
  32. int m_nExercisePKAim; // 切磋模式PK目标,player idx
  33. int m_nPKValue; // PK值
  34. public:
  35. KPlayerPK(); // 构造函数
  36. void Init(int nPlayerIdx); // 初始化
  37. void SetNormalPKState(BOOL bFlag); // 设定正常PK状态
  38. BOOL GetNormalPKState(); // 获得正常PK状态
  39. void EnmityPKClose(); // 关闭仇杀PK
  40. BOOL EnmityPKOpen(int nAim); // 仇杀开始
  41. int GetEnmityPKState(); // 获得仇杀状态
  42. int GetEnmityPKAim(); // 获得仇杀目标
  43. BOOL IsEnmityPKLauncher() {return m_nEnmityPKLaunchFlag;};
  44. void ExercisePKClose(); // 关闭切磋PK
  45. BOOL ExercisePKOpen(int nAim); // 打开切磋PK
  46. int GetExercisePKAim(); // 获得切磋目标
  47. int GetExercisePKState() {return m_nExercisePKFlag;};
  48. void SetPKValue(int nValue); // 设定PK值
  49. int GetPKValue(); // 获得PK值
  50. void AddPKValue(int nAdd); // 增加(或减少)PK值,PK值最多减少到0
  51. void CloseAll(); // 关闭仇杀PK和切磋PK
  52. void EnmityPKCountDown(); // 仇杀倒计时
  53. void Active();
  54. };
  55. #endif
  56. #ifndef _SERVER
  57. class KPlayerPK
  58. {
  59. friend class KPlayer;
  60. private:
  61. int m_nNormalPKFlag; // 正常PK开关 TRUE 打开,可以砍人  FALSE 关闭,不可以砍人
  62. int m_nEnmityPKState; // 仇杀PK状态 0 关闭 1 正在计时 2 仇杀正在进行,对应 enumPK_ANMITY_STATE
  63. int m_nEnmityPKAim; // 仇杀PK目标,npc id
  64. int m_nEnmityPKTime; // 仇杀PK状态为1正在计时,倒计时计数
  65. char m_szEnmityAimName[32]; // 仇杀目标名字
  66. int m_nExercisePKFlag; // 切磋模式PK开关 TRUE 打开,可以砍人  FALSE 关闭,不可以砍人
  67. int m_nExercisePKAim; // 切磋模式PK目标,npc id
  68. char m_szExerciseAimName[32]; // 切磋目标名字
  69. int m_nPKValue; // PK值
  70. public:
  71. void Init(); // 初始化
  72. void ApplySetNormalPKState(BOOL bFlag);// 向服务器申请打开、关闭正常PK状态
  73. void SetNormalPKState(BOOL bFlag, BOOL bShowMsg = TRUE); // 设定正常PK状态
  74. BOOL GetNormalPKState(); // 获得正常PK状态
  75. void ApplyEnmityPK(char *lpszName); // 向服务器申请仇杀某人
  76. void ApplyEnmityPK(int nNpcID); // 向服务器申请仇杀某人
  77. void SetEnmityPKState(int nState, int nNpcID = 0, char *lpszName = NULL); // 设定仇杀PK状态
  78. int GetEnmityPKState() {return m_nEnmityPKState;} // 获得仇杀PK状态
  79. int GetEnmityPKAimNpcID() {return m_nEnmityPKAim;} // 获得仇杀PK目标npc id
  80. int GetEnmityPKTime() {return m_nEnmityPKTime;} // 获得仇杀PK准备时间
  81. char* GetEnmityPKAimName() {return m_szEnmityAimName;} // 获得仇杀PK目标名字
  82. void EnmityPKCountDown(); // 仇杀倒计时
  83. void SetExercisePKState(int nState, int nNpcID = 0, char *lpszName = NULL); // 设定切磋状态
  84. int GetExercisePKState() {return m_nExercisePKFlag;} // 获得切磋状态
  85. int GetExercisePKAim() {return m_nExercisePKAim;} // 获得切磋目标npc id
  86. char* GetExercisePKName() {return m_szExerciseAimName;} // 获得切磋目标名字
  87. void SetPKValue(int nValue); // 设定PK值
  88. int GetPKValue() {return m_nPKValue;} // 获得PK值
  89. void Active();
  90. };
  91. #endif
  92. #endif