?? char_base.h
字號:
CHAR_IMAGETYPE_GIRL, CHAR_IMAGETYPE_BOY, CHAR_IMAGETYPE_CHILDBOY, CHAR_IMAGETYPE_CHILDGIRL, CHAR_IMAGETYPE_MAN, CHAR_IMAGETYPE_WOMAN, CHAR_IMAGETYPE_OLDMAN, CHAR_IMAGETYPE_DOG, CHAR_IMAGETYPENUM}CHAR_ImageType;#define CHAR_P_STRING_HP ( 1 << 1 ) // 0x00000002#define CHAR_P_STRING_MAXHP ( 1 << 2 ) // 0x00000004#define CHAR_P_STRING_MP ( 1 << 3 ) // 0x00000008#define CHAR_P_STRING_MAXMP ( 1 << 4 ) // 0x00000010#define CHAR_P_STRING_VITAL ( 1 << 5 )#define CHAR_P_STRING_STR ( 1 << 6 )#define CHAR_P_STRING_TOUGH ( 1 << 7 )#define CHAR_P_STRING_DEX ( 1 << 8 )#define CHAR_P_STRING_EXP ( 1 << 9 )#define CHAR_P_STRING_NEXTEXP ( 1 << 10 )#define CHAR_P_STRING_LV ( 1 << 11 )#define CHAR_P_STRING_ATK ( 1 << 12 )#define CHAR_P_STRING_DEF ( 1 << 13 )#define CHAR_P_STRING_QUICK ( 1 << 14 )#define CHAR_P_STRING_CHARM ( 1 << 15 )#define CHAR_P_STRING_LUCK ( 1 << 16 )#define CHAR_P_STRING_EARTH ( 1 << 17 )#define CHAR_P_STRING_WATER ( 1 << 18 )#define CHAR_P_STRING_FIRE ( 1 << 19 )#define CHAR_P_STRING_WIND ( 1 << 20 )#define CHAR_P_STRING_GOLD ( 1 << 21 )#define CHAR_P_STRING_TITLE ( 1 << 22 )#define CHAR_P_STRING_DUELPOINT ( 1 << 23 )#define CHAR_P_STRING_TRANSMIGRATION ( 1 << 24 )#define CHAR_P_STRING_NAME ( 1 << 25 )#define CHAR_P_STRING_OWNTITLE ( 1 << 26 )#define CHAR_P_STRING_RIDEPET ( 1 << 27 ) // 0x08000000#define CHAR_P_STRING_LEARNRIDE ( 1 << 28 ) // 0x10000000#define CHAR_P_STRING_BASEBASEIMAGENUMBER ( 1 << 29 ) // 0x20000000//#define CHAR_P_STRING_PKDP ( 1 << 30 )//#ifdef _CHAR_PROFESSION//#define CHAR_P_STRING_PROFESSION ( 1 << 30 )//#endif#define CHAR_P_STRING_SKYWALKER ( 1 << 30 ) // 0x40000000#define CHAR_P_STRING_DEBUGMODE ( 1 << 31 ) // 0x80000000#define CHAR_N_STRING_OBJINDEX ( 1 << 1 )#define CHAR_N_STRING_LV ( 1 << 2 )#define CHAR_N_STRING_MAXHP ( 1 << 3 )#define CHAR_N_STRING_HP ( 1 << 4 )#define CHAR_N_STRING_MP ( 1 << 5 )#define CHAR_N_STRING_NAME ( 1 << 6 )#define CHAR_K_STRING_BASEIMAGENUMBER ( 1 << 1 )#define CHAR_K_STRING_HP ( 1 << 2 )#define CHAR_K_STRING_MAXHP ( 1 << 3 )#define CHAR_K_STRING_MP ( 1 << 4 )#define CHAR_K_STRING_MAXMP ( 1 << 5 )#define CHAR_K_STRING_EXP ( 1 << 6 )#define CHAR_K_STRING_NEXTEXP ( 1 << 7 )#define CHAR_K_STRING_LV ( 1 << 8 )#define CHAR_K_STRING_ATK ( 1 << 9 )#define CHAR_K_STRING_DEF ( 1 << 10 )#define CHAR_K_STRING_QUICK ( 1 << 11 )#define CHAR_K_STRING_AI ( 1 << 12 )#define CHAR_K_STRING_EARTH ( 1 << 13 )#define CHAR_K_STRING_WATER ( 1 << 14 )#define CHAR_K_STRING_FIRE ( 1 << 15 )#define CHAR_K_STRING_WIND ( 1 << 16 )#define CHAR_K_STRING_SLOT ( 1 << 17 )#define CHAR_K_STRING_CHANGENAMEFLG ( 1 << 18 )#define CHAR_K_STRING_NAME ( 1 << 19 )#define CHAR_K_STRING_USERPETNAME ( 1 << 20 )typedef union { int indexOfPet[CHAR_MAXPETHAVE]; int indexOfPetskill[CHAR_MAXPETSKILLHAVE];}CHAR_UNIONTABLE;typedef struct tagChar{ BOOL use; int data[CHAR_DATAINTNUM]; STRING128 string[CHAR_DATACHARNUM]; char flg[(CHAR_FLGNUM%(sizeof(char)*8)) ? (CHAR_FLGNUM/(sizeof(char)*8))+1 : (CHAR_FLGNUM/(sizeof(char)*8))]; int indexOfExistItems[CHAR_MAXITEMHAVE]; int indexOfExistPoolItems[CHAR_MAXPOOLITEMHAVE];#ifdef _CHAR_POOLITEM int *indexOfExistDepotItems;#endif#ifdef _CHAR_POOLPET int *indexOfExistDepotPets;#endif CHAR_HaveSkill haveSkill[CHAR_SKILLMAXHAVE]; int indexOfHaveTitle[CHAR_TITLEMAXHAVE]; ADDRESSBOOK_entry addressBook[ADDRESSBOOK_MAX]; CHAR_UNIONTABLE unionTable; int indexOfPoolPet[CHAR_MAXPOOLPETHAVE]; STRING32 charfunctable[CHAR_FUNCTABLENUM]; int workint[CHAR_WORKDATAINTNUM]; STRING64 workchar[CHAR_WORKDATACHARNUM];#ifdef _NPC_SEPARATEDATA int *tempint;#endif int CharMakeSequenceNumber; void* functable[CHAR_FUNCTABLENUM];#ifdef _STREET_VENDOR StreetVendor_t StreetVendor[MAX_SELL_ITEM];#endif}Char;#define CHAR_CHECKINDEX( index) _CHAR_CHECKINDEX( __FILE__, __LINE__, index)INLINE BOOL _CHAR_CHECKINDEX( char *file, int line, int index);#define CHAR_CHECKITEMINDEX( charaindex, iindex) _CHAR_CHECKITEMINDEX( __FILE__, __LINE__, charaindex, iindex)INLINE BOOL _CHAR_CHECKITEMINDEX( char *file, int line, int charaindex, int iindex );#define CHAR_CHECKPETINDEX( petindex) _CHAR_CHECKPETINDEX( __FILE__, __LINE__, petindex )INLINE BOOL _CHAR_CHECKPETINDEX( char *file, int line, int petindex );#define CHAR_CHECKPOOLPETINDEX( petindex) _CHAR_CHECKPOOLPETINDEX( __FILE__, __LINE__, petindex )INLINE BOOL _CHAR_CHECKPOOLPETINDEX( char *file, int line, int petindex );#define CHAR_CHECKPETSKILLINDEX( havepetskillindex) _CHAR_CHECKPETSKILLINDEX( __FILE__, __LINE__, havepetskillindex)INLINE BOOL _CHAR_CHECKPETSKILLINDEX( char *file, int line, int havepetskillindex );INLINE int CHAR_getInt( int index , CHAR_DATAINT element);#define CHAR_setInt( index , element, data) _CHAR_setInt( __FILE__, __LINE__, index , element, data)INLINE int _CHAR_setInt( char *file, int line, int index ,CHAR_DATAINT element, int data);#ifdef _FIX_SETWORKINT#define CHAR_getWorkInt( index , element) _CHAR_getWorkInt( __FILE__, __LINE__, index , element)INLINE int _CHAR_getWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element);#define CHAR_setWorkInt( index, element, data) _CHAR_setWorkInt( __FILE__, __LINE__, index , element, data)INLINE int _CHAR_setWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element, int data);#elseINLINE int CHAR_setWorkInt( int index ,CHAR_WORKDATAINT element, int data);#endif#define CHAR_getChar( index, elem) _CHAR_getChar( __FILE__, __LINE__, index, elem)INLINE char* _CHAR_getChar( char *file, int line, int index ,CHAR_DATACHAR element );#define CHAR_setChar( index, elem, n) _CHAR_setChar( __FILE__, __LINE__, index, elem, n)INLINE BOOL _CHAR_setChar( char *file, int line, int index ,CHAR_DATACHAR element, char* new );#define CHAR_getFlg( index, elem) _CHAR_getFlg( __FILE__, __LINE__, index, elem)INLINE BOOL _CHAR_getFlg( char *file, int line, int index ,CHAR_DATAFLG element );#define CHAR_setFlg( index, elem, n) _CHAR_setFlg( __FILE__, __LINE__, index, elem, n)INLINE char _CHAR_setFlg( char *file, int line, int index , CHAR_DATACHAR element, int newdata );#define CHAR_getWorkChar( index, elem) _CHAR_getWorkChar( __FILE__, __LINE__, index, elem)INLINE char * _CHAR_getWorkChar( char *file, int line, int index, CHAR_WORKDATACHAR element );#define CHAR_setWorkChar( index, elem, n) _CHAR_setWorkChar( __FILE__, __LINE__, index, elem, n)INLINE BOOL _CHAR_setWorkChar( char *file, int line, int index, CHAR_WORKDATACHAR element, char * new);#define CHAR_getItemIndex( index, iindex) _CHAR_getItemIndex( __FILE__, __LINE__, index, iindex)INLINE int _CHAR_getItemIndex( char *file, int line, int charaindex, int ti);#define CHAR_setItemIndex( index, iindex,id) _CHAR_setItemIndex( __FILE__, __LINE__, index, iindex, id)INLINE int _CHAR_setItemIndex( char *file, int line, int index ,int iindex,int id );#define CHAR_getPoolItemIndex( index, iindex) _CHAR_getPoolItemIndex( __FILE__, __LINE__, index, iindex)INLINE int _CHAR_getPoolItemIndex( char *file, int line, int index, int iindex);#define CHAR_setPoolItemIndex( index, iindex,id) _CHAR_setPoolItemIndex( __FILE__, __LINE__, index, iindex, id)INLINE int _CHAR_setPoolItemIndex( char *file, int line, int index ,int iindex,int id );INLINE BOOL CHAR_setAddressbookEntry( int index , int aindex , ADDRESSBOOK_entry *a );INLINE ADDRESSBOOK_entry* CHAR_getAddressbookEntry( int index , int aindex);INLINE Char* CHAR_getCharPointer( int index );INLINE int CHAR_getCharNum( void );INLINE int CHAR_getPlayerMaxNum( void );INLINE int CHAR_getPetMaxNum( void );INLINE int CHAR_getOthersMaxNum( void );INLINE BOOL CHAR_getCharUse( int index );INLINE CHAR_HaveSkill* CHAR_getCharHaveSkill( int index,int sindex );INLINE int CHAR_getCharHaveTitle( int index,int tindex );INLINE int CHAR_setCharHaveTitle( int charaindex,int tindex, int new );INLINE int CHAR_getCharPet( int charaindex,int petindex );INLINE int CHAR_setCharPet( int charaindex,int petindex, int new );INLINE int CHAR_getCharPoolPet( int charaindex,int petindex );INLINE int CHAR_setCharPoolPet( int charaindex,int petindex, int new );int CHAR_getCharPetElement( int charaindex );int CHAR_getCharPoolPetElement( int charaindex );int CHAR_getCharPoolItemIndexElement( int charaindex );int CHAR_getEmptyCharPoolItemIndexNum( int charaindex);#ifdef _CHAR_POOLPETint CHAR_getCharDepotPetElement( int charaindex );#endif#define CHAR_getIntPSkill( index, skillti, ti) _CHAR_getIntPSkill( __FILE__, __LINE__, index, skillti, ti)INLINE int _CHAR_getIntPSkill( char *file, int line, int index, int skillti, SKILL_DATAINT ti);#define CHAR_setIntPSkill( index, skillti, ti, data) _CHAR_setIntPSkill( __FILE__, __LINE__, index, skillti, ti, data)INLINE void _CHAR_setIntPSkill( char *file, int line, int index, int skillti, SKILL_DATAINT ti, int data);extern Char *CHAR_chara;INLINE int CHAR_getCharMakeSequenceNumber( int charaindex );void CHAR_constructFunctable( int charaindex );void* CHAR_getFunctionPointer( int charaindex, int functype );BOOL CHAR_initCharArray( int pnum, int petnum,int onum );BOOL CHAR_endCharArray( void );int CHAR_initCharOneArray( Char* ch );void CHAR_endCharOneArray( int index );void CHAR_removeHaveItem( Char* ch );void CHAR_endCharData( Char* ch );char* CHAR_makeStringFromCharData( Char* one );char* CHAR_makeStringFromCharIndex( int index );BOOL CHAR_makeCharFromStringToArg( char* data, Char* one);int CHAR_makePetFromStringToArg( char *src, Char *ch, int ti);char *CHAR_makePetStringFromPetIndex( int petindex);#define CHAR_getPetSkillElement( petindex) _CHAR_getPetSkillElement( __FILE__, __LINE__, petindex)int _CHAR_getPetSkillElement( char *file, int line, int petindex );#define CHAR_setPetSkill( petindex, havepetskillindex, n) _CHAR_setPetSkill( __FILE__, __LINE__, petindex, havepetskillindex, n)INLINE int _CHAR_setPetSkill( char *file, int line, int petindex,int havepetskillindex, int new );#define CHAR_getPetSkill( petindex, havepetskillindex) _CHAR_getPetSkill( __FILE__, __LINE__, petindex, havepetskillindex)INLINE int _CHAR_getPetSkill( char *file, int line, int petindex,int havepetskillindex );#define SETFLG(a,b,c,d,e,f,g,h) (((a)<<0)+((b)<<1)+((c)<<2)+((d)<<3)+((e)<<4)+((f)<<5)+((g)<<6)+((h)<<7))INLINE int CHAR_AddMaxExp( int charaindex, int addexp);INLINE int CHAR_setMaxExpFromLevel( int charaindex, int level);INLINE int CHAR_setMaxExp( int charaindex, unsigned long int Setexp);#ifdef _NEWOPEN_MAXEXPINLINE int CHAR_ChangeExp( int charaindex );INLINE int CHAR_HandleExp( int charaindex );#endif// ride Pet tabletypedef struct tagtagRidePetTable{ int rideNo; int charNo; int petNo; int petId; } tagRidePetTable;// CoolFish: Family Member Kind 2001/8/28typedef enum{ FMMEMBER_NONE = -1, FMMEMBER_MEMBER = 1, FMMEMBER_APPLY, FMMEMBER_LEADER, FMMEMBER_ELDER,} CHAR_FM_MEMBERKIND;// shan 2002/01/10typedef enum{ PET_STAT_NONE = 0, PET_STAT_SELECT, PET_STAT_MAIL = 4, } CHAR_PET_STAT;#ifdef _PERSONAL_FAME // Arminius: 家族個人聲望void CHAR_earnFame(int index, int fame);#endif// CoolFish: 2001/10/11#ifdef _UNIQUE_P_Ivoid CHAR_setPetUniCode(int petindex);void ITEM_setItemUniCode(int itemindex);void Check_P_I_UniCode(int charindex);#endif// Arminius 12.15 判斷是否是男士int IsMale(int charindex);// Arminius 12.15 判斷是否是女士int IsFemale(int charindex);#ifdef _NEW_RIDEPETS#define RIDE_PET0 1#define RIDE_PET1 ( 1 << 1 )#define RIDE_PET2 ( 1 << 2 )#define RIDE_PET3 ( 1 << 3 )#define RIDE_PET4 ( 1 << 4 )#define RIDE_PET5 ( 1 << 5 )#define RIDE_PET6 ( 1 << 6 )#define RIDE_PET7 ( 1 << 7 )#define RIDE_PET8 ( 1 << 8 )#define RIDE_PET9 ( 1 << 9 )#define RIDE_PET10 ( 1 << 10 )#define RIDE_PET11 ( 1 << 11 )#define MAXNOINDEX 12typedef struct { int petNo; int learnCode;}tagRideCodeMode;typedef struct { int RideNo[MAXNOINDEX]; int flg;}tagRideNoList;typedef struct { int charNo; int Noindex; int sex;}tagRidePetList;int RIDEPET_getNOindex( int baseNo);int RIDEPET_getPETindex( int PetNo, int learnCode);int RIDEPET_getRIDEno( int index, int ti);#endif#ifdef _PET_EVOLUTIONint EVOLUTION_getPetTable( int charaindex, int petindex1, int petindex2);int EVOLUTION_getPropertyTable( int charaindex, int petindex1, int petindex2);int EVOLUTION_getFusionTable( int charaindex, int px, int py);int EVOLUTION_getPetFusionCode( int petid);#endif#ifdef _EMENY_CHANCEMANint CHAR_getSexInt( int baseNo );#endif#ifdef _TYPE_TOXICATIONBOOL CHAR_CanCureFlg( int charaindex, char *arg);#endif#ifdef _FIX_TSKILLCANBOOL CHAR_PETSKILLCAN( int toindex);#endifBOOL CHAR_getCharOnArrayPercentage( int mode, int *max, int *min, int *cnt);#define CHAR_DelItemMess( index, ti, flg) _CHAR_DelItem( __FILE__, __LINE__, index, ti, 1, flg)#define CHAR_DelItem( index, ti) _CHAR_DelItem( __FILE__, __LINE__, index, ti, 1, 1)#define CHAR_DelPileItemMess( index, ti, num, flg) _CHAR_DelItem( __FILE__, __LINE__, index, ti, num, flg)#define CHAR_AddPileItem( index, itemindex) _CHAR_AddPileItem( __FILE__, __LINE__, index, itemindex)INLINE int _CHAR_AddPileItem( char *file, int line, int charaindex, int itemindex);INLINE int _CHAR_DelItem( char *file, int line, int charaindex, int ti, int num, int flg);#define CHAR_AddGold( index, ti) _CHAR_AddGold( __FILE__, __LINE__, index, ti)INLINE int _CHAR_AddGold( char *file, int line, int charaindex, int gold);#define CHAR_DelGold( index, ti) _CHAR_DelGold( __FILE__, __LINE__, index, ti)INLINE int _CHAR_DelGold( char *file, int line, int charaindex, int gold);int CHAR_getMaxHaveGold( int charaindex);#ifdef _CHAR_PROFESSION // WON ADD 人物職業(yè)int CHAR_getCharSkill( int index,int sindex );int CHAR_setCharSkill( int index,int sindex,int new );#define CHAR_CHECK_PROFESSION_SKILLINDEX( skillindex) _CHAR_CHECK_PROFESSION_SKILLINDEX( __FILE__, __LINE__, skillindex)INLINE BOOL _CHAR_CHECK_PROFESSION_SKILLINDEX( char *file, int line, int skillindex );#define PROFESSION_SKILL_getSkill( charaindex, skillindex) _PROFESSION_SKILL_getSkill( __FILE__, __LINE__, charaindex, skillindex)INLINE int _PROFESSION_SKILL_getSkill( char *file, int line, int charaindex, int skillindex );#define PROFESSION_SKILL_setSkill( charaindex, skillindex, n) _PROFESSION_SKILL_setSkill( __FILE__, __LINE__, charaindex, skillindex, n)INLINE int _PROFESSION_SKILL_setSkill( char *file, int line, int charaindex,int skillindex, int new );#define PROFESSION_SKILL_getSkillElement(charaindex) _PROFESSION_SKILL_getSkillElement( __FILE__, __LINE__, charaindex)int _PROFESSION_SKILL_getSkillElement( char *file, int line, int charaindex );#endif#ifdef _NPC_SEPARATEDATAvoid CHAR_showTempInt( int index);BOOL CHAR_InitCharTempNum( Char* ch );void CHAR_EndCharTempNum( void);void CHAR_getDefaultCharTempNum( Char* ch );#endif#ifdef _CHAR_POOLITEM#define CHAR_getDepotItemIndex( index, iindex) _CHAR_getDepotItemIndex( __FILE__, __LINE__, index, iindex)INLINE int _CHAR_getDepotItemIndex( char *file, int line, int index ,int iindex);#define CHAR_setDepotItemIndex( index, iindex,id) _CHAR_setDepotItemIndex( __FILE__, __LINE__, index, iindex, id)INLINE int _CHAR_setDepotItemIndex( char *file, int line, int index ,int iindex,int id );void CHAR_removeHaveDepotItem( Char* ch);void CHAR_removeDepotItem( int charaindex);char *CHAR_makeDepotItemFromCharIndex( int charaindex);BOOL CHAR_makeDepotItemStringToChar( int charaindex, char* data);BOOL CHAR_SaveDepotItem( int charaindex);BOOL CHAR_GetDepotItem( int meindex, int charaindex);void CHAR_ShowMyDepotItems( int charaindex);int CHAR_findEmptyDepotItem( int charaindex);int CHAR_getfindEmptyDepotItem( int charaindex);BOOL CHAR_CheckDepotItem( int charaindex);#endif#ifdef _CHAR_POOLPET#define CHAR_getDepotPetIndex( index, iindex) _CHAR_getDepotPetIndex( __FILE__, __LINE__, index, iindex)INLINE int _CHAR_getDepotPetIndex( char *file, int line, int index ,int iindex);#define CHAR_setDepotPetIndex( index, iindex,id) _CHAR_setDepotPetIndex( __FILE__, __LINE__, index, iindex, id)INLINE int _CHAR_setDepotPetIndex( char *file, int line, int index ,int iindex,int id );void CHAR_removeHaveDepotPet( Char* ch);void CHAR_removeDepotPet( int charaindex);char *CHAR_makeDepotPetFromCharIndex( int charaindex);BOOL CHAR_makeDepotPetStringToChar( int charaindex, char* data);BOOL CHAR_SaveDepotPet( int charaindex);BOOL CHAR_GetDepotPet( int meindex, int charaindex);void CHAR_ShowMyDepotPets( int charaindex);int CHAR_findEmptyDepotPet( int charaindex);int CHAR_getfindEmptyDepotPet( int charaindex);BOOL CHAR_CheckDepotPet( int charaindex);#endifvoid LodBadPetString( char *data, char *err, int ti);#ifdef _STREET_VENDORBOOL CHAR_setStreetVendor(int charindex,int index,int set,int num);INLINE void CHAR_clearStreetVendor(int charindex,int index);int CHAR_getStreetVendor(int charindex,int index,int set);#endif#ifdef _ANGEL_SUMMON#define ANGELITEM 2884 //20701 //使者的信物 道具編號#define HEROITEM 2885 //20702 //勇者的信物 道具編號typedef enum{ ANGEL_NONE =0, ANGEL_ANGEL, ANGEL_HERO,}ANGEL_TYPE;typedef enum{ MISSION_NONE =0, MISSION_WAIT_ANSWER, MISSION_DOING, MISSION_HERO_COMPLETE, MISSION_TIMEOVER,}ANGEL_MISSIONFLAG;#endif#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -