📄 item.h
字号:
1, //SLAYER_PORTAL_ITEM // 38 1, //VAMPIRE_PORTAL_ITEM // 39 1, //EVENT_GIFT_BOX // 40 50, //EVENT_STAR // 41 1, //VAMPIRE_EARRING // 42 1, //RELIC // 43 1, //VAMPIRE_WEAPON // 44 1, //VAMPIRE_AMULET // 45 1, //QUEST_ITEM // 46 1, //EVENT_TREE // 47 9, //EVENT_ETC // 48 1, //BLOOD_BIBLE // 49 1, //CASTLE_SYMBOL // 50 1, //COUPLE_RING // 51 1, //VAMPIRE_COUPLE_RING // 52 1, //EVENT_ITEM // 53 1, //DYE_POTION // 54 9, //RESURRECT_ITEM // 55 9, //MIXING_ITEM // 56 1, //OUSTERS_ARMSBAND // 57 1, //OUSTERS_BOOTS // 58 1, //OUSTERS_CHAKRAM // 59 1, //OUSTERS_CIRCLET // 60 1, //OUSTERS_COAT // 61 1, //OUSTERS_PENDENT // 62 1, //OUSTERS_RING // 63 1, //OUSTERS_STONE // 64 1, //OUSTERS_WRISTLET // 65 9, //LARVA // 66 9, //PUPA // 67 9, //COMPOS_MEI // 68 1, //OUSTERS_SUMMON_ITEM // 69 20, //EFFECT_ITEM // 70 1, //CODE_SHEET // 71 99, //MOON_CARD // 72 1, //SWEEPER // 73 1, //PET_ITEM // 74 9, //PET_FOOD // 75 50, //PET_ENCHANT_ITEM // 76 50, //LUCKY_BAG // 77};class PCItemInfo;class PlayerCreature;//////////////////////////////////////////////////////////////////////////////// class Item// 顶俊 冻绢廉 乐芭唱, 农府贸俊霸 家蜡登绰 荐悼利牢 酒捞袍甸阑 唱鸥辰促.//////////////////////////////////////////////////////////////////////////////class Item : public Object {public: // Item 狼 窍困 盒幅甫 唱鸥辰促. Item 努贰胶甫 // 流立 惑加罐篮 努贰胶甫 酒贰 府胶飘俊 眠啊窍扁 // 官鄂促. 肚茄 捞 努贰胶甸篮 getItemClass() 甫 // 犁沥狼秦拎具 茄促. enum ItemClass { ITEM_CLASS_MOTORCYCLE, // 0 ITEM_CLASS_POTION, // 1 ITEM_CLASS_WATER, // 2 ITEM_CLASS_HOLYWATER, // 3 ITEM_CLASS_MAGAZINE, // 4 ITEM_CLASS_BOMB_MATERIAL, // 5 ITEM_CLASS_ETC, // 6 ITEM_CLASS_KEY, // 7 ITEM_CLASS_RING, // 8 ITEM_CLASS_BRACELET, // 9 ITEM_CLASS_NECKLACE, // 10 ITEM_CLASS_COAT, // 11 ITEM_CLASS_TROUSER, // 12 ITEM_CLASS_SHOES, // 13 ITEM_CLASS_SWORD, // 14 ITEM_CLASS_BLADE, // 15 ITEM_CLASS_SHIELD, // 16 ITEM_CLASS_CROSS, // 17 ITEM_CLASS_GLOVE, // 18 ITEM_CLASS_HELM, // 19 ITEM_CLASS_SG, // 20 ITEM_CLASS_SMG, // 21 ITEM_CLASS_AR, // 22 ITEM_CLASS_SR, // 23 ITEM_CLASS_BOMB, // 24 ITEM_CLASS_MINE, // 25 ITEM_CLASS_BELT, // 26 ITEM_CLASS_LEARNINGITEM, // 27 ITEM_CLASS_MONEY, // 28 ITEM_CLASS_CORPSE, // 29 ITEM_CLASS_VAMPIRE_RING, // 30 ITEM_CLASS_VAMPIRE_BRACELET, // 31 ITEM_CLASS_VAMPIRE_NECKLACE, // 32 ITEM_CLASS_VAMPIRE_COAT, // 33 ITEM_CLASS_SKULL, // 34 ITEM_CLASS_MACE, // 35 ITEM_CLASS_SERUM, // 36 ITEM_CLASS_VAMPIRE_ETC, // 37 ITEM_CLASS_SLAYER_PORTAL_ITEM, // 38 ITEM_CLASS_VAMPIRE_PORTAL_ITEM, // 39 ITEM_CLASS_EVENT_GIFT_BOX, // 40 ITEM_CLASS_EVENT_STAR, // 41 ITEM_CLASS_VAMPIRE_EARRING, // 42 ITEM_CLASS_RELIC, // 43 ITEM_CLASS_VAMPIRE_WEAPON, // 44 ITEM_CLASS_VAMPIRE_AMULET, // 45 ITEM_CLASS_QUEST_ITEM, // 46 ITEM_CLASS_EVENT_TREE, // 47 ITEM_CLASS_EVENT_ETC, // 48 ITEM_CLASS_BLOOD_BIBLE, // 49 ITEM_CLASS_CASTLE_SYMBOL, // 50 ITEM_CLASS_COUPLE_RING, // 51 ITEM_CLASS_VAMPIRE_COUPLE_RING, // 52 ITEM_CLASS_EVENT_ITEM, // 53 ITEM_CLASS_DYE_POTION, // 54 ITEM_CLASS_RESURRECT_ITEM, // 55 ITEM_CLASS_MIXING_ITEM, // 56 ITEM_CLASS_OUSTERS_ARMSBAND, // 57 ITEM_CLASS_OUSTERS_BOOTS, // 58 ITEM_CLASS_OUSTERS_CHAKRAM, // 59 ITEM_CLASS_OUSTERS_CIRCLET, // 60 ITEM_CLASS_OUSTERS_COAT, // 61 ITEM_CLASS_OUSTERS_PENDENT, // 62 ITEM_CLASS_OUSTERS_RING, // 63 ITEM_CLASS_OUSTERS_STONE, // 64 ITEM_CLASS_OUSTERS_WRISTLET, // 65 ITEM_CLASS_LARVA, // 66 ITEM_CLASS_PUPA, // 67 ITEM_CLASS_COMPOS_MEI, // 68 ITEM_CLASS_OUSTERS_SUMMON_ITEM, // 69 ITEM_CLASS_EFFECT_ITEM, // 70 ITEM_CLASS_CODE_SHEET, // 71 ITEM_CLASS_MOON_CARD, // 72 ITEM_CLASS_SWEEPER, // 73 ITEM_CLASS_PET_ITEM, // 74 ITEM_CLASS_PET_FOOD, // 75 ITEM_CLASS_PET_ENCHANT_ITEM, // 76 ITEM_CLASS_LUCKY_BAG, // 77 ITEM_CLASS_MAX // 78 }; enum CreateType { CREATE_TYPE_NORMAL, // 老馆利牢 酒捞袍 积己 // 0 CREATE_TYPE_MONSTER, // 阁胶磐俊 狼秦辑 积己 // 1 CREATE_TYPE_SHOP, // 惑痢俊辑 积己 // 2 CREATE_TYPE_GAMBLE, // 胺喉阑 烹秦辑 积己 // 3 CREATE_TYPE_ENCHANT, // 牢忙飘甫 烹秦辑 积己 // 4 CREATE_TYPE_GAME, // 促弗 霸烙 矫胶袍俊 狼秦辑 积己 // 5 CREATE_TYPE_CREATE, // 款康磊 疙飞绢肺 积己 // 6 CREATE_TYPE_MALL, // 昆狼 讥 隔俊辑 备概茄 酒捞袍 // 7 CREATE_TYPE_PRIZE, // 扁鸥 捞亥飘肺 霖 酒捞袍 // 8 CREATE_TYPE_MIXING, // Mixing Forge 肺 父电 酒捞袍 // 9 CREATE_TYPE_SPECIAL, // 荤厘丛 酒捞袍 -_-; // 10 CREATE_TYPE_MAX };// constructor/destructorpublic: Item() throw(); virtual ~Item() throw();// methods from Objectpublic: virtual ObjectClass getObjectClass() const throw() { return OBJECT_CLASS_ITEM; } virtual ObjectPriority getObjectPriority() const throw(Error) { return OBJECT_PRIORITY_ITEM; } virtual string toString() const throw() = 0;// DB methodspublic: virtual void create(const string & ownerID, Storage storage, DWORD storageID, BYTE x, BYTE y, ItemID_t itemID=0) throw(Error) = 0; // itemID=0 <-- 漂沥 ItemID肺 积己. by sigi. 2002.10.28 virtual bool destroy() throw(Error); virtual void save(const string & ownerID, Storage storage, DWORD storageID, BYTE x, BYTE y) throw(Error) = 0; virtual void tinysave(const string & field) const throw (Error) = 0; void waste( Storage storage = STORAGE_GARBAGE ) const throw (Error);// own methods// *CAUTION*// ItemType篮 Item 狼 窍困 努贰胶俊辑 沥狼等促. // 捞蜡绰 开矫 皋葛府 沥纺 巩力肺 牢茄 扯厚甫 // 阜扁 困秦辑捞促.public: virtual ItemClass getItemClass() const throw() = 0; string getItemClassName() const throw() { return ItemClass2String[getItemClass()]; } virtual string getObjectTableName() const throw() = 0; virtual bool isSilverWeapon() const throw() { return false; } virtual bool isGun() const throw() { return false; }// virtual Item* getTreasure() const throw() { return NULL; }; virtual ItemType_t getItemType() const throw() = 0; virtual void setItemType(ItemType_t itemType) throw() = 0; virtual bool hasOptionType() const throw() { return false; } virtual int getOptionTypeSize() const throw() { return 0; } virtual int getRandomOptionType() const throw() { return 0; } virtual const list<OptionType_t>& getOptionTypeList() const throw() { static list<OptionType_t> nullList; return nullList; } virtual OptionType_t getFirstOptionType() const throw() { return 0; } virtual void removeOptionType(OptionType_t OptionType) throw() {} virtual void changeOptionType(OptionType_t currentOptionType, OptionType_t newOptionType) throw() {} virtual void addOptionType(OptionType_t OptionType) throw() {} virtual void setOptionType(const list<OptionType_t>& OptionType) throw() {} ItemID_t getItemID() const throw() { return m_ItemID; } void setItemID(ItemID_t itemID) throw() { m_ItemID = itemID; } virtual VolumeWidth_t getVolumeWidth() const throw(Error) = 0; virtual VolumeHeight_t getVolumeHeight() const throw(Error) = 0; virtual Weight_t getWeight() const throw(Error) = 0; virtual Durability_t getDurability() const throw(Error) { return 1; } virtual void setDurability(Durability_t durability) throw(Error) {} virtual Durability_t getMaxDurability() const { return 1; } virtual Damage_t getMinDamage() const throw(Error) { return 0; } virtual Damage_t getMaxDamage() const throw(Error) { return 0; } virtual Range_t getRange() const throw(Error) { return 0; } virtual ToHit_t getToHitBonus() const throw(Error) { return 0; } virtual Defense_t getDefenseBonus() const throw(Error) { return 0; } virtual Protection_t getProtectionBonus() const throw(Error) { return 0; } virtual MP_t getMPBonus() const throw(Error) { return 0; } virtual ItemNum_t getNum() const throw() { return 1; } virtual void setNum(ItemNum_t Num) throw() {} virtual bool isStackable() const throw() { return false; } virtual BYTE getBulletCount() const throw() { return 0; } virtual void setBulletCount(BYTE bulletCount) throw() {} virtual Silver_t getSilver() const throw() { return 0; } virtual void setSilver(Silver_t amount) throw() { } virtual EnchantLevel_t getEnchantLevel() const throw() { return 0;} virtual void setEnchantLevel(EnchantLevel_t level) throw() { } virtual Damage_t getBonusDamage() const throw() { return 0; } virtual void setBonusDamage(Damage_t BonusDamage) throw() {} virtual int getCriticalBonus(void) const throw() { return 0; } virtual Grade_t getGrade() const { return -1; } virtual void setGrade( Grade_t Grade ) { } virtual Luck_t getLuck() const { return 0; } EffectManager& getEffectManager() throw() { return m_EffectManager;} // set/remove/check flag void setFlag(Effect::EffectClass Flag) throw() { m_Flag.set(Flag); } void removeFlag(Effect::EffectClass Flag) throw() { m_Flag.reset(Flag); } bool isFlag(Effect::EffectClass Flag) throw() { return m_Flag.test(Flag); } virtual const list<OptionType_t>& getDefaultOptions(void) const throw(); CreateType getCreateType() const { return m_CreateType; } void setCreateType(CreateType createType) { m_CreateType = createType; } bool isUnique() const { return m_bUnique; } void setUnique(bool bUnique=true) { m_bUnique = bUnique; } bool isQuestItem() const { return (getItemClass() == ITEM_CLASS_EVENT_ITEM && getItemType() != 27 && getItemType() != 28) || (getItemClass()==ITEM_CLASS_EVENT_TREE && getItemType()>12 && getItemType()<26) || (getItemClass()==ITEM_CLASS_EVENT_TREE && getItemType()>28 && getItemType()<42) || (getItemClass()==ITEM_CLASS_CODE_SHEET); } void setQuestItem(bool bQuest=true) { m_bQuest = bQuest; } bool isFlagItem() const { return getItemClass() == ITEM_CLASS_EVENT_ITEM && getItemType() == 27; } bool isSweeper() const { return getItemClass() == ITEM_CLASS_SWEEPER; } bool isTraceItem() const { return m_bTrace; } void setTraceItem(bool bTrace=false) { m_bTrace = bTrace; } bool isTimeLimitItem() const { return m_bTimeLimit; } void setTimeLimitItem(bool bTimeLimit=true) { m_bTimeLimit = bTimeLimit; } int getHour() const { return m_Hour; } void setHour(int hour) { m_Hour = hour; } virtual void makePCItemInfo( PCItemInfo& pResult ) const; virtual void whenPCTake( PlayerCreature* pPC ); virtual void whenPCLost( PlayerCreature* pPC );// member dataprotected: ItemID_t m_ItemID; // DB-unique ID EffectManager m_EffectManager; // EffectManager bitset<Effect::EFFECT_CLASS_MAX> m_Flag; // Effect flag CreateType m_CreateType; // 酒捞袍 积己 辆幅 bool m_bUnique; // 蜡聪农 酒捞袍牢啊? bool m_bQuest; // 涅胶飘 酒捞袍牢啊.. bool m_bTrace; // Trace Log 甫 巢辨 酒捞袍牢啊? bool m_bTimeLimit; // 矫埃力茄 酒捞袍牢啊? int m_Hour; // 力茄矫埃};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -