📄 itemutil.h
字号:
//////////////////////////////////////////////////////////////////////////////// Filename : ItemUtil.h// Written by : excel96// Description : //////////////////////////////////////////////////////////////////////////////#ifndef __ITEMUTIL_H__#define __ITEMUTIL_H__#include "Item.h"#include <list>#include <string>//////////////////////////////////////////////////////////////////////////////// forward declaration//////////////////////////////////////////////////////////////////////////////class Creature;class Inventory;class PlayerCreature;class Slayer;class Ousters;class Corpse;struct ITEM_TEMPLATE;enum ItemTraceLogType{ ITEM_LOG_CREATE = 0, // 酒捞袍 积己俊 措茄 肺弊 ITEM_LOG_TRADE, // 酒捞袍 TRADE 俊 措茄 肺弊 ITEM_LOG_MOVE, // 酒捞袍 捞悼俊 措茄 肺弊 ITEM_LOG_DELETE, // 酒捞袍 昏力俊 措茄 肺弊 ITEM_LOG_MAX};enum ItemTraceDetailType{ DETAIL_COMMAND = 0, // command 疙飞绢肺 积己 : ITEM_LOG_CREATE DETAIL_SHOPBUY, // 惑痢俊辑 魂 版快 : ITEM_LOG_CREATE DETAIL_PICKUP, // 官蹿俊辑 拱扒 林奎阑 版快 : ITEM_LOG_MOVE DETAIL_DROP, // 官蹿俊 滚赴 版快 : ITEM_LOG_MOVE DETAIL_EVENTNPC, // 捞亥飘肺 积变 酒捞袍 : ITEM_LOG_CREATE DETAIL_SHOPSELL, // 惑痢俊 拱扒 魄 版快 : ITEM_LOG_DELETE DETAIL_TIMEOUT, // 官蹿俊 冻绢柳 饶 timeout 栏肺 荤扼柳 版快 : ITEM_LOG_DELETE DETAIL_ENCHANT, // 牢镁飘肺 函版等 版快 : ITEM_LOG_DELETE DETAIL_OPCLEAR, // commnad 肺 昏力 : ITEM_LOG_DELETE DETAIL_TRADE, // 酒捞袍 TRADE : ITEM_LOG_TRADE DETAIL_MALLBUY, // 昆俊辑 魂 酒捞袍 : ITEM_LOG_CREATE DETAIL_MAX };const string ItemTraceLogType2String[] ={ "CREATE", // 0 "TRADE", // 1 "MOVE", // 2 "DELETE", // 3};const string ItemTraceLogDetailType2String[] ={ "COMMAND", // 0 "SHOPBUY", // 1 "PICKUP", // 2 "DROP", // 3 "EVENTNPC", // 4 "SHOPSELL", // 5 "TIMEOUT", // 6 "ENCHANT", // 7 "OPCLEAR", // 8 "TRADE", // 9 "MALLBUY", // 10};//////////////////////////////////////////////////////////////////////////////// 阶老 荐 乐绰 酒捞袍牢啊? //////////////////////////////////////////////////////////////////////////////bool isStackable(Item::ItemClass IClass);bool isStackable(const Item* pItem);//////////////////////////////////////////////////////////////////////////////// 鞍篮 努贰胶, 鸥涝狼 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isSameItem(Item::ItemClass IClass1, Item::ItemClass IClass2, ItemType_t type1, ItemType_t type2);bool isSameItem(const Item* pItem1, const Item* pItem2);//////////////////////////////////////////////////////////////////////////////// 滴 酒捞袍阑 阶阑 荐 乐绰啊?//////////////////////////////////////////////////////////////////////////////bool canStack(const Item* pItem1, const Item* pItem2);//////////////////////////////////////////////////////////////////////////////// 滴 颊 公扁牢啊?// 立辟傈 公扁牢啊?// 傈荤,焙牢, 己流磊 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isTwohandWeapon(const Item* pItem);bool isMeleeWeapon(const Item* pItem);bool isFighterWeapon(const Item* pItem);bool isArmsWeapon(const Item* pItem);bool isClericWeapon(const Item* pItem);//////////////////////////////////////////////////////////////////////////////// 醚俊 嘎绰 藕芒牢啊?//////////////////////////////////////////////////////////////////////////////bool isSuitableMagazine(const Item* pGun, const Item* pMagazine, bool hasVivid);//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 公扁牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerWeapon(Item::ItemClass IClass);bool isVampireWeapon(Item::ItemClass IClass);bool isOustersWeapon(Item::ItemClass IClass);//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 规绢备牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerArmor(Item::ItemClass IClass);bool isVampireArmor(Item::ItemClass IClass);bool isOustersArmor(Item::ItemClass IClass);//////////////////////////////////////////////////////////////////////////////// 浇饭捞绢侩 厩技荤府牢啊?//////////////////////////////////////////////////////////////////////////////bool isSlayerAccessory(Item::ItemClass IClass);bool isVampireAccessory(Item::ItemClass IClass);bool isOustersAccessory(Item::ItemClass IClass);//////////////////////////////////////////////////////////////////////////////// 荐府且 荐 乐绰 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isRepairableItem(const Item* pItem);//////////////////////////////////////////////////////////////////////////////// 酒捞袍阑 荐府茄促.//////////////////////////////////////////////////////////////////////////////void repairItem(Item* pItem);//////////////////////////////////////////////////////////////////////////////// 酒捞袍狼 弥措 郴备档甫 掘绢辰促.//////////////////////////////////////////////////////////////////////////////Durability_t computeMaxDurability(Item* pItem);//////////////////////////////////////////////////////////////////////////////// 藕芒阑 哎酒尝况霖促.//////////////////////////////////////////////////////////////////////////////Bullet_t reloadArmsItem(Item* pWeapon, Item* pMagazine);//////////////////////////////////////////////////////////////////////////////// 醚舅阑 哗霖促.//////////////////////////////////////////////////////////////////////////////Bullet_t decreaseBullet(Item* pWeapon) throw();//////////////////////////////////////////////////////////////////////////////// 巢篮 醚舅狼 肮荐甫 府畔//////////////////////////////////////////////////////////////////////////////Bullet_t getRemainBullet(Item* pWeapon) throw();//////////////////////////////////////////////////////////////////////////////// 林阑 荐 乐绰 酒捞袍牢啊?//////////////////////////////////////////////////////////////////////////////bool isPortableItem(Item* pItem);//////////////////////////////////////////////////////////////////////////////// 荤侩且 荐 乐绰 酒捞袍牢啊?// 咯扁辑狼 荤侩捞鄂, 荤侩秦辑 荤扼瘤绰 家葛己 酒捞袍阑 富茄促.//////////////////////////////////////////////////////////////////////////////bool isUsableItem(Item* pItem, Creature* pUser);//////////////////////////////////////////////////////////////////////////////// 酒捞袍狼 箭磊甫 临牢促.//////////////////////////////////////////////////////////////////////////////ItemNum_t decreaseItemNum(Item* pItem, Inventory* pInventory, const string& OwnerID, Storage storage, StorageID_t storageID, BYTE x, BYTE y);//////////////////////////////////////////////////////////////////////////////// 酒捞袍捞 般摹绰 滚弊甫 肺弊窍绰 窃荐促.//////////////////////////////////////////////////////////////////////////////void processItemBug(Creature* pCreature, Item* pItem);void processItemBugEx(Creature* pCreature, Item* pItem);//////////////////////////////////////////////////////////////////////////////// Mysterious item 积己//////////////////////////////////////////////////////////////////////////////Item* getRandomMysteriousItem(Creature* pCreature, Item::ItemClass itemClass, int maxLevel=0) throw(Error);//////////////////////////////////////////////////////////////////////////////// Option俊 包访等 ぞ付荐甸//////////////////////////////////////////////////////////////////////////////// 漂沥茄 OptionType捞 嘿绢乐绰啊?bool hasOptionType(const list<OptionType_t>& optionTypes, OptionType_t optionType);// 漂沥茄 OptionClass(STR, DEX...)啊 嘿绢乐绰啊?bool hasOptionClass(const list<OptionType_t>& optionTypes, OptionType_t optionType);// DB俊辑 佬绢棵锭void setOptionTypeFromField(list<OptionType_t>& optionTypes, const string& optionField);// DB俊 历厘且 锭void setOptionTypeToField(const list<OptionType_t>& optionTypes, string& optionField);// cout俊 荤侩string getOptionTypeToString(const list<OptionType_t>& optionTypes);//////////////////////////////////////////////////////////////////////////////// 促澜 可记捞 嘿阑 犬伏 眉农 : 饭绢 酒捞袍 积己 咯何//////////////////////////////////////////////////////////////////////////////bool isPossibleNextOption(ITEM_TEMPLATE* pTemplate);ItemType_t getUpgradeItemType(Item::ItemClass IClass, ItemType_t itemType, ItemType_t upgradeCount);ItemType_t getDowngradeItemType(Item::ItemClass IClass, ItemType_t itemType);bool isPossibleUpgradeItemType(Item::ItemClass IClass);//////////////////////////////////////////////////////////////////////////////// 农府胶付胶 飘府 捞亥飘侩//////////////////////////////////////////////////////////////////////////////// 飘府 炼阿阑 八祸//TPOINT checkEventTree( PlayerCreature* pPC, CoordInven_t iX, CoordInven_t iY );//TPOINT checkEventDocument( PlayerCreature* pPC, CoordInven_t iX, CoordInven_t iY );//TPOINT checkEventDoll( PlayerCreature* pPC, CoordInven_t iX, CoordInven_t iY );TPOINT checkEventPuzzle( PlayerCreature* pPC, CoordInven_t iX, CoordInven_t iY, int start);// 牢亥配府狼 (X0, Y0) - (X1, y1) 裹困狼 酒捞袍阑 瘤款促.void deleteInventoryItem( Inventory* pInventory, CoordInven_t invenX0, CoordInven_t invenY0, CoordInven_t invenX1, CoordInven_t invenY1 );// 牢亥配府俊 檬焊磊侩 酒捞袍阑 持绢霖促.bool addNewbieItemToInventory( Slayer* pSlayer, bool sendPacket = false ) throw(Error);bool addNewbieGoldToInventory( Slayer* pSlayer, bool sendPacket = false ) throw(Error);bool addNewbieItemToGear( Slayer* pSlayer, bool sendPacket = false ) throw(Error);bool addNewbieItemToInventory( Ousters* pOusters, bool sendPacket = false ) throw(Error);bool addNewbieGoldToInventory( Ousters* pOusters, bool sendPacket = false ) throw(Error);bool addNewbieItemToGear( Ousters* pOusters, bool sendPacket = false ) throw(Error);Item::ItemClass getBestNewbieWeaponClass(Slayer* pSlayer) throw (Error);// 可记 string栏肺何磐 可记 list甫 父电促.void makeOptionList(const string& options, list<OptionType_t>& optionList) throw (Error);void saveDissectionItem(Creature* pCreature, Item* pTreasure, int x, int y) throw (Error);bool canDecreaseDurability( Item* pItem ) throw(Error);bool canSell( Item* pItem );bool canPutInStash( Item* pItem );bool canTrade( Item* pItem );bool isCoupleRing( Item* pItem );bool suitableItemClass( Item::ItemClass iClass, SkillDomainType_t domainType );// 酒捞袍阑 己喊俊 嘎绰 悼鞭狼 酒捞袍栏肺 官层霖促. 酒捞袍 鸥涝捞 巢磊侩 促澜俊 官肺 鞍篮 鞭狼 咯磊侩捞 柯促绊 啊沥// 捞吧 阂矾霖 第浚 馆靛矫 酒捞袍 鸥涝阑 技捞宏秦林带啊 pItem->save() 甫 阂矾拎具 等促.void setItemGender( Item* pItem, GenderRestriction gender );// Item Trace Log 甫 巢辨 酒捞袍牢啊?bool bTraceLog( Item* pItem );// Item Trace Log 巢扁绰 窃荐 void remainTraceLog ( Item* pItem, const string& preOwner, const string& owner, ItemTraceLogType logType, ItemTraceDetailType detailType ) throw (Error);// Meney Trace Log 巢扁绰 窃荐void remainMoneyTraceLog ( const string& preOwner, const string& owner, ItemTraceLogType logType, ItemTraceDetailType detailType, int amount ) throw (Error);// Web 俊辑 魂 酒捞袍阑 父靛绰 窃荐Item* createItemByGoodsID( DWORD goodsID );// 汗鼻寸梅俊 包访 等 窃荐 (漂喊洒 笛 镑捞 绝绢辑 咯扁 敌促 --;) 2003.04.29 by DEWbool bWinPrize( DWORD rewardID, DWORD questLevel );void deleteFlagEffect( Corpse* pFlagPole, Item* pFlag );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -