StoneAge/gmsv/include/item.h

444 lines
12 KiB
C
Raw Normal View History

2018-08-07 15:51:35 +08:00
#ifndef __ITEM_H__
#define __ITEM_H__
#include "char.h"
#define NULLITEM "0"
typedef enum
{
ITEM_FIST =0,
ITEM_AXE,
ITEM_CLUB,
ITEM_SPEAR,
ITEM_BOW,
ITEM_SHIELD,
ITEM_HELM,
ITEM_ARMOUR,
ITEM_BRACELET =8,
ITEM_MUSIC,
ITEM_NECKLACE,
ITEM_RING,
ITEM_BELT,
ITEM_EARRING,
ITEM_NOSERING,
ITEM_AMULET,
/* ****** */
ITEM_OTHER =16,
ITEM_BOOMERANG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITEM_BOUNDTHROW, // Ͷ<><CDB6><EFBFBD><EFBFBD>ͷ
ITEM_BREAKTHROW, // Ͷ<><CDB6>ʯ
ITEM_DISH =20,
#ifdef _ITEM_INSLAY
ITEM_METAL,
ITEM_JEWEL,
#endif
#ifdef _ITEM_CHECKWARES
ITEM_WARES, //<2F><><EFBFBD><EFBFBD>
#endif
#ifdef _ITEM_EQUITSPACE
ITEM_WBELT, //<2F><><EFBFBD><EFBFBD>
ITEM_WSHIELD, //<2F><>
ITEM_WSHOES, //Ь<><D0AC>
#endif
#ifdef _EQUIT_NEWGLOVE
ITEM_WGLOVE, //<2F><><EFBFBD><EFBFBD>
#endif
#ifdef _ALCHEMIST
ITEM_ALCHEMIST =30,
#endif
#ifdef _ANGEL_SUMMON
//ITEM_ANGELTOKEN,
//ITEM_HEROTOKEN,
#endif
ITEM_CATEGORYNUM,
}ITEM_CATEGORY;
typedef enum
{
ITEM_FIELD_ALL,
ITEM_FIELD_BATTLE,
ITEM_FIELD_MAP,
}ITEM_FIELDTYPE;
typedef enum
{
ITEM_TARGET_MYSELF,
ITEM_TARGET_OTHER,
ITEM_TARGET_ALLMYSIDE,
ITEM_TARGET_ALLOTHERSIDE,
ITEM_TARGET_ALL,
}ITEM_TARGETTYPE;
typedef enum
{
ITEM_ID,
ITEM_BASEIMAGENUMBER,
ITEM_COST,
ITEM_TYPE,
ITEM_ABLEUSEFIELD,
ITEM_TARGET,
ITEM_LEVEL, /* LEVEL */
#ifdef _ITEM_MAXUSERNUM
ITEM_DAMAGEBREAK, //<2F><>Ʒʹ<C6B7>ô<EFBFBD><C3B4><EFBFBD>
#endif
#ifdef _ITEMSET4_TXT
ITEM_USEPILENUMS, //<2F><>Ʒ<EFBFBD>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD>
ITEM_CANBEPILE, //<2F>Ƿ<EFBFBD><C7B7>ɶѵ<C9B6>
ITEM_NEEDSTR,
ITEM_NEEDDEX,
ITEM_NEEDTRANS,
ITEM_NEEDPROFESSION,
#endif
#ifdef _TAKE_ITEMDAMAGE
ITEM_DAMAGECRUSHE,
ITEM_MAXDAMAGECRUSHE,
#endif
#ifdef _ADD_DEAMGEDEFC
ITEM_OTHERDAMAGE,
ITEM_OTHERDEFC,
#endif
#ifdef _SUIT_ITEM
ITEM_SUITCODE,
#endif
ITEM_ATTACKNUM_MIN, /* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_ATTACKNUM_MAX, /* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_MODIFYATTACK, /* <20><> <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYDEFENCE, /* <20><> <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYQUICK, /* QUICK <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYHP, /* HP <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYMP, /* MP <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYLUCK, /* LUCK <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYCHARM, /* CHARM <20><><EFBFBD><EFBFBD> */
ITEM_MODIFYAVOID, /* <20><> Ĥ<><C4A4> */
ITEM_MODIFYATTRIB, /* <20><><EFBFBD><EFBFBD>Ĥ<EFBFBD><C4A4> */
ITEM_MODIFYATTRIBVALUE, /* <20><><EFBFBD><EFBFBD>Ĥ<EFBFBD>Ұ<EFBFBD> */
ITEM_MAGICID, /* <20><><EFBFBD><EFBFBD> į */
ITEM_MAGICPROB, /* <20><><EFBFBD><EFBFBD> */
ITEM_MAGICUSEMP, /* <20><> MP */
#ifdef _ITEMSET5_TXT
ITEM_MODIFYARRANGE,
ITEM_MODIFYSEQUENCE,
ITEM_ATTACHPILE,
ITEM_HITRIGHT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif
#ifdef _ITEMSET6_TXT
ITEM_NEGLECTGUARD,
// ITEM_BEMERGE,
#endif
/* <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĥ<EFBFBD>Ұ<EFBFBD><D2B0><EFBFBD>*/
ITEM_POISON, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_PARALYSIS, /* <20><>̫ľ<CCAB><C4BE>1 <20><><EFBFBD><EFBFBD> <20><>ƥ<EFBFBD><C6A5>ئ<EFBFBD>У<EFBFBD> */
ITEM_SLEEP, /* <20><>Ի<EFBFBD>۵<EFBFBD> ƥ<><C6A5>ئ<EFBFBD><D8A6> */
ITEM_STONE, /* <20>ޣ۵<DEA3> ƥ<><C6A5>ئ<EFBFBD><D8A6> */
ITEM_DRUNK, /* <20><EFBFBD><ECB5A4> <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD> */
ITEM_CONFUSION, /* <20><><EFBFBD>٣<EFBFBD> <20><> ë<><C3AB><EFBFBD><EFBFBD> */
ITEM_CRITICAL, /* <20><><EFBFBD><EFBFBD> ū<>л<EFBFBD> Ĥ<><C4A4> */
ITEM_USEACTION, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_DROPATLOGOUT, /* <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD> <20>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_VANISHATDROP, /* <20><><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_ISOVERED, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>¾<EFBFBD><C2BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
ITEM_CANPETMAIL, /* ʸ<><CAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ˪ľ<CBAA>¾<EFBFBD> */
ITEM_CANMERGEFROM, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ئľ<D8A6>¾<EFBFBD> */
ITEM_CANMERGETO, /* <20><><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ئľ<D8A6>¾<EFBFBD> */
ITEM_INGVALUE0, /* <20><><EFBFBD><EFBFBD>(5<><35><EFBFBD><EFBFBD>) */
ITEM_INGVALUE1,
ITEM_INGVALUE2,
ITEM_INGVALUE3,
ITEM_INGVALUE4,
ITEM_PUTTIME, /* ʧ<><CAA7> ة<><D8A9> <20><>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_LEAKLEVEL, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD>׾<EFBFBD> */
ITEM_MERGEFLG, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE>ʧ<EFBFBD><CAA7> ة<><D8A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
ITEM_CRUSHLEVEL, /* çľպ<C4BE><D5BA><EFBFBD><EFBFBD> 0 2 <20>߷<EFBFBD>çľ<C3A7><C4BE>ئ<EFBFBD><D8A6> 2<><32><EFBFBD><EFBFBD>ç */
ITEM_VAR1, /* <20><><EFBFBD>۽<EFBFBD> */
ITEM_VAR2, /* <20><><EFBFBD>۽<EFBFBD> */
ITEM_VAR3, /* <20><><EFBFBD>۽<EFBFBD> */
ITEM_VAR4, /* <20><><EFBFBD>۽<EFBFBD> */
ITEM_DATAINTNUM,
}ITEM_DATAINT;
typedef enum
{
ITEM_NAME, /* <20><> 񲼰 <20><> */
ITEM_SECRETNAME, /* <20><> <20>ʽ<EFBFBD>ľ<EFBFBD>µ<EFBFBD> <20><> Ի */
ITEM_EFFECTSTRING, /* <20><><EFBFBD><EFBFBD> ٯ */
ITEM_ARGUMENT, /* ʧ<><CAA7> ة<><D8A9>¦<EFBFBD><C2A6> */
#ifdef _ITEM_INSLAY
ITEM_TYPECODE,
ITEM_INLAYCODE,
#endif
ITEM_CDKEY, /* ʧ<><CAA7> ة<><D8A9> <20><>ë <20>ٱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD> */
#ifdef _ITEM_FORUSERNAMES
ITEM_FORUSERNAME,
ITEM_FORUSERCDKEY,
#endif
// CoolFish: 2001/10/11
#ifdef _UNIQUE_P_I
ITEM_UNIQUECODE, /* <20><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD> */
#endif
ITEM_INGNAME0, /* <20><><EFBFBD>м<EFBFBD> <20><>(5<><35><EFBFBD><EFBFBD>) */
ITEM_INGNAME1,
ITEM_INGNAME2,
ITEM_INGNAME3,
ITEM_INGNAME4,
ITEM_INITFUNC, /* ¦<><C2A6>
* ITEM_Item*
* ߯Ի<EFBFBD><EFBFBD> BOOL
* ߯Ի<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> CHAR_INITFUNC
* <EFBFBD><EFBFBD> Ԫ */
ITEM_FIRSTFUNCTION = ITEM_INITFUNC,
ITEM_PREOVERFUNC, /* CHAR_PREOVERFUNC ë<><C3AB><EFBFBD><EFBFBD> */
ITEM_POSTOVERFUNC, /* CHAR_POSTOVERFUNC ë<><C3AB><EFBFBD><EFBFBD>*/
ITEM_WATCHFUNC, /* CHAR_WATCHFUNC ë<><C3AB><EFBFBD><EFBFBD> */
ITEM_USEFUNC, /* ¦<>ѷ<EFBFBD><D1B7><EFBFBD>
* int charaindex ƽ<EFBFBD>ҷ<EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* int charitemindex <EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>
* ʧ<EFBFBD><EFBFBD> ة <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ë<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׾<EFBFBD>
*/
ITEM_ATTACHFUNC, /* ¦<>ѷ<EFBFBD><D1B7><EFBFBD>
* int charaindex ƽ<EFBFBD>ҷ<EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* int itemindex ʧ<EFBFBD><EFBFBD> ة<EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* ƽ<EFBFBD>ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> ة
* <EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> ة ƥ<EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* ƥ<EFBFBD><EFBFBD>ئ<EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
ITEM_DETACHFUNC, /* ¦<>ѷ<EFBFBD><D1B7><EFBFBD>
* int charaindex ƽ<EFBFBD>ҷ<EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* int itemindex ʧ<EFBFBD><EFBFBD> ة<EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* ƽ<EFBFBD>ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> ة
* <EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD> ة ƥ<EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
* ƥ<EFBFBD><EFBFBD>ئ<EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
ITEM_DROPFUNC, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ¦<EFBFBD>ѷ<EFBFBD>
* int charaindex <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ҷ<EFBFBD>
* int itemindex ʧ<EFBFBD><EFBFBD> ة<EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
*/
ITEM_PICKUPFUNC, /* ʧ<><CAA7> ةë<D8A9><C3AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ¦<EFBFBD>ѷ<EFBFBD>
* int charaindex <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ҷ<EFBFBD>index
* int itemindex ʧ<EFBFBD><EFBFBD> ة<EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>
*/
#ifdef _Item_ReLifeAct
ITEM_DIERELIFEFUNC, /*ANDY_ADD
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#endif
#ifdef _CONTRACT
ITEM_CONTRACTTIME,
ITEM_CONTRACTARG,
#endif
ITEM_LASTFUNCTION,
ITEM_DATACHARNUM = ITEM_LASTFUNCTION,
#ifdef _ANGEL_SUMMON
ITEM_ANGELMISSION = ITEM_INGNAME0,
ITEM_ANGELINFO = ITEM_INGNAME1,
ITEM_HEROINFO = ITEM_INGNAME2,
#endif
}ITEM_DATACHAR;
typedef enum
{
ITEM_WORKOBJINDEX,
ITEM_WORKCHARAINDEX,
#ifdef _MARKET_TRADE
ITEM_WORKTRADEINDEX,
ITEM_WORKTRADETYPE,
ITEM_WORKTRADESELLINDEX,
#endif
#ifdef _ITEM_ORNAMENTS
ITEM_CANPICKUP,
#endif
#ifdef _ITEM_TIME_LIMIT
ITEM_WORKTIMELIMIT,
#endif
ITEM_WORKDATAINTNUM,
}ITEM_WORKDATAINT;
typedef struct tagItem
{
int data[ITEM_DATAINTNUM];
STRING64 string[ITEM_DATACHARNUM];
int workint[ITEM_WORKDATAINTNUM];
void* functable[ITEM_LASTFUNCTION-ITEM_FIRSTFUNCTION];
}ITEM_Item;
typedef struct tagITEM_table
{
int use;
ITEM_Item itm;
int randomdata[ITEM_DATAINTNUM];
}ITEM_table;
typedef struct tagITEM_exists
{
BOOL use;
ITEM_Item itm;
}ITEM_exists;
#ifdef _CONTRACT
#define MAX_CONTRACTTABLE 10
typedef struct tagITEM_contract
{
int used;
char detail[2048];
int argnum;
}ITEM_contractTable;
#endif
#define ITEM_CHECKINDEX(index) \
_ITEM_CHECKINDEX( __FILE__, __LINE__, index)
INLINE BOOL _ITEM_CHECKINDEX( char *file, int line, int index);
BOOL ITEM_initExistItemsArray( int num );
BOOL ITEM_endExistItemsArray( void );
#define ITEM_initExistItemsOne( itm) \
_ITEM_initExistItemsOne( __FILE__, __LINE__, itm)
int _ITEM_initExistItemsOne( char *file, int line, ITEM_Item* itm );
#define ITEM_endExistItemsOne( index ) \
_ITEM_endExistItemsOne( index, __FILE__, __LINE__)
void _ITEM_endExistItemsOne( int index , char *file, int line);
#define ITEM_getInt( Index, element) _ITEM_getInt( __FILE__, __LINE__, Index, element )
INLINE int _ITEM_getInt( char *file, int line, int index ,ITEM_DATAINT element);
#define ITEM_setInt( Index, element, data) _ITEM_setInt( __FILE__, __LINE__, Index, element, data)
INLINE int _ITEM_setInt( char *file, int line, int index ,ITEM_DATAINT element, int data);
INLINE char* ITEM_getChar( int index ,ITEM_DATACHAR element );
INLINE BOOL ITEM_setChar( int index ,ITEM_DATACHAR element , char* new);
INLINE int ITEM_getWorkInt( int index ,ITEM_WORKDATAINT element);
INLINE int ITEM_setWorkInt( int index ,ITEM_WORKDATAINT element, int data);
INLINE int ITEM_getITEM_itemnum( void );
INLINE int ITEM_getITEM_UseItemnum( void );
INLINE BOOL ITEM_getITEM_use( int index );
void ITEM_constructFunctable( int itemindex );
void* ITEM_getFunctionPointer( int itemindex, int functype );
INLINE ITEM_Item *ITEM_getItemPointer( int index );
int ITEM_getItemMaxIdNum( void);
char* ITEM_makeStringFromItemData( ITEM_Item* one, int mode );
char* ITEM_makeStringFromItemIndex( int index, int mode );
BOOL ITEM_makeExistItemsFromStringToArg( char* src , ITEM_Item* item, int mode );
void ITEM_getDefaultItemSetting( ITEM_Item* itm);
INLINE BOOL ITEM_CHECKITEMTABLE( int number );
BOOL ITEM_readItemConfFile( char* filename );
CHAR_EquipPlace ITEM_getEquipPlace( int charaindex, int itmid );
char* ITEM_makeItemStatusString( int haveitemindex, int itemindex );
char* ITEM_makeItemFalseString( void );
char* ITEM_makeItemFalseStringWithNum( int haveitemindex );
BOOL ITEM_makeItem( ITEM_Item* itm, int number );
int ITEM_makeItemAndRegist( int number );
void ITEM_equipEffect( int index );
void Other_DefcharWorkInt( int index);
char* ITEM_getAppropriateName(int itemindex);
char* ITEM_getEffectString( int itemindex );
int ITEM_getcostFromITEMtabl( int itemid );
#define ITEM_getNameFromNumber( id) _ITEM_getNameFromNumber( __FILE__, __LINE__, id)
INLINE char* _ITEM_getNameFromNumber( char *file, int line, int itemid );
int ITEM_getlevelFromITEMtabl( int itemid );
int ITEM_getgraNoFromITEMtabl( int itemid );
char *ITEM_getItemInfoFromNumber( int itemid );
int ITEM_getdropatlogoutFromITEMtabl( int itemid );
int ITEM_getvanishatdropFromITEMtabl( int itemid );
int ITEM_getcanpetmailFromITEMtabl( int itemid );
int ITEM_getmergeItemFromFromITEMtabl( int itemid );
#ifdef _ITEM_CHECKWARES
BOOL CHAR_CheckInItemForWares( int charaindex, int flg);
#endif
BOOL ITEM_canuseMagic( int itemindex);
// Nuke +1 08/23 : For checking the validity of item target
int ITEM_isTargetValid( int charaindex, int itemindex, int toindex);
#ifdef _IMPOROVE_ITEMTABLE
BOOL ITEMTBL_CHECKINDEX( int ItemID);
int ITEM_getSIndexFromTransList( int ItemID);
int ITEM_getMaxitemtblsFromTransList( void);
int ITEM_getTotalitemtblsFromTransList( void);
#endif
int ITEMTBL_getInt( int ItemID, ITEM_DATAINT datatype);
char *ITEMTBL_getChar( int ItemID, ITEM_DATACHAR datatype);
int ITEM_getItemDamageCrusheED( int itemindex);
void ITEM_RsetEquit( int charaindex);//<2F>Զ<EFBFBD>ж<EFBFBD><D0B6>װ<EFBFBD><D7B0>λ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD>֮<EFBFBD><D6AE>Ʒ
void ITEM_reChangeItemToPile( int itemindex);
void ITEM_reChangeItemName( int itemindex);
#ifdef _SIMPLIFY_ITEMSTRING
void ITEM_getDefaultItemData( int itemID, ITEM_Item* itm);
#endif
#ifdef _CONTRACT
BOOL ITEM_initContractTable( );
#endif
#endif