M_ItemCFG.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #pragma once
  2. #include <boost/unordered_map.hpp>
  3. #include <vector>
  4. struct M_ItemCFGData
  5. {
  6. //道具ID
  7. int mItemId;
  8. //物品名称
  9. std::string mItemName;
  10. //描述
  11. std::string mItemDesc;
  12. //物品图标
  13. std::string mIcon;
  14. //物品类型
  15. int mItemCategory;
  16. //参数
  17. std::vector<int> mParameter;
  18. //钻石价值
  19. int mDiamondValue;
  20. //道具价值
  21. std::vector<int> mItemValue;
  22. //金币价值
  23. int mGoldValue;
  24. //特殊buff池是否则算金币
  25. int mConvertedGold;
  26. //道具所属游戏
  27. int mItemGame;
  28. //游戏道具
  29. int mGameItem;
  30. //物品大图标
  31. std::string mBigIcon;
  32. //道具功能
  33. int mItemFun;
  34. //对应炮台ID
  35. int mTurretParam;
  36. //对应翅膀ID
  37. int mWingParam;
  38. //背包是否显示
  39. int mDisplay;
  40. //分组
  41. int mGroup;
  42. //转换碎片
  43. int mDebris;
  44. //限时(秒)
  45. int mTimeLimit;
  46. //限时显示
  47. int mTimeLimitDisplay;
  48. //使用CD
  49. int mTimeCD;
  50. //使用后马上移除
  51. int mNeedRemove;
  52. //立即使用
  53. int mImmediateUse;
  54. //用户拥有数量
  55. int mPlayerLimit;
  56. //掉率(10000)
  57. int mDropRate;
  58. //掉落数量限制
  59. int mDropLimit;
  60. //掉落限制炮率
  61. int mNeedTurret;
  62. //掉落需要玩家等级
  63. int mNeedLevel;
  64. //清零设置
  65. int mResetSettings;
  66. //后台统计
  67. int mRecord;
  68. };
  69. class M_ItemCFG
  70. {
  71. public:
  72. private:
  73. static std::auto_ptr<M_ItemCFG> msSingleton;
  74. public:
  75. int GetCount();
  76. const M_ItemCFGData* GetData(int ItemId);
  77. boost::unordered_map<int, M_ItemCFGData>& GetMapData();
  78. void Reload();
  79. void Load(const std::string& path);
  80. void Load();
  81. static M_ItemCFG* GetSingleton();
  82. private:
  83. boost::unordered_map<int, M_ItemCFGData> mMapData;
  84. };