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

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Core (c) 2002 by Kingsoft
  3. //
  4. // File: KItemGenerator.h
  5. // Date: 2002.08.26
  6. // Code: DongBo
  7. // Desc:    header file. 本文件定义的类用于生成道具
  8. //---------------------------------------------------------------------------
  9. #ifndef KItemGeneratorH
  10. #define KItemGeneratorH
  11. #include "KBasPropTbl.h"
  12. #include "KItem.h"
  13. #define IN
  14. #define OUT
  15. #define NUMOFCMA 150 // 经验值. 供每种装备使用的魔法总数不超过此数
  16. //class KItem;
  17. class KItemGenerator
  18. {
  19. public:
  20. KItemGenerator();
  21. ~KItemGenerator();
  22. // 以下是核心成员变量
  23. protected:
  24. KLibOfBPT m_BPTLib;
  25. // 以下是辅助成员变量
  26. int m_GMA_naryMA[2][NUMOFCMA]; // [0][x]: 前缀; [1][x]: 后缀
  27. int m_GMA_nCount[2];
  28. int m_GMA_naryLevel[2][NUMOFCMA];
  29. int m_GMA_naryDropRate[2][NUMOFCMA];
  30. int m_GMA_naryCandidateMA[NUMOFCMA];
  31. int m_EquipNumOfEntries[equip_detailnum];
  32. int m_MedNumOfEntries;
  33. // 以下是对外接口
  34. public:
  35. BOOL Init();
  36. BOOL Gen_Item(IN int, IN int, IN int, IN int, IN OUT KItem*);
  37. BOOL Gen_Quest(IN int, IN OUT KItem*);
  38. BOOL Gen_TownPortal(IN OUT KItem*);
  39. BOOL Gen_Medicine(IN int, IN int, IN int, IN OUT KItem*);
  40. BOOL Gen_Equipment(IN int, IN int, IN int, IN int, IN const int*, IN int,
  41. IN int, IN OUT KItem*);
  42. BOOL Gen_ExistEquipment(IN int, IN int, IN int, IN int, IN const int*, IN int,
  43. IN int, IN OUT KItem*);
  44. BOOL GetEquipmentCommonAttrib(IN int, IN int, IN int, IN int, IN OUT KItem*);
  45. BOOL GetMedicineCommonAttrib(IN int, IN int, IN OUT KItem*);
  46. // Add by flying on May.30.2003
  47. // Try to get a "Gold Item" by random or by index.
  48. BOOL GetGoldItemByRandom(IN int, OUT KItem*);
  49. BOOL GetGoldItemByIndex(IN int, OUT KItem*);
  50. // 以下是辅助函数
  51. private:
  52. BOOL Gen_MagicAttrib(int, const int*, int, int, KItemNormalAttrib*, int nVersion);
  53. const KMAGICATTRIB_TABFILE* GetMARecord(int) const;
  54. BOOL GMA_GetAvaliableMA(int);
  55. BOOL GMA_GetLevelAndDropRate(int);
  56. int  GMA_GetCandidateMA(int, int, int);
  57. void GMA_ChooseMA(int nPos, int nLevel, int nLucky, KItemNormalAttrib* pINA);
  58. };
  59. extern KItemGenerator ItemGen; // 装备生成器
  60. #endif // #ifndef KItemGeneratorH