⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 char_base.h.bak

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 BAK
📖 第 1 页 / 共 3 页
字号:
enum{	WORKFLG_DEBUGMODE = ( 1 << 0 ),	WORKFLG_MICMODE = ( 2 << 0 ),};typedef enum{    CHAR_INITFUNC,    CHAR_FIRSTFUNCTION = CHAR_INITFUNC,    CHAR_WALKPREFUNC,    CHAR_WALKPOSTFUNC,    CHAR_PREOVERFUNC,    CHAR_POSTOVERFUNC,    CHAR_WATCHFUNC,    CHAR_LOOPFUNC,    CHAR_DYINGFUNC,    CHAR_TALKEDFUNC,    CHAR_PREATTACKEDFUNC,    CHAR_POSTATTACKEDFUNC,    CHAR_OFFFUNC,    CHAR_LOOKEDFUNC,    CHAR_ITEMPUTFUNC,    CHAR_SPECIALTALKEDFUNC,    CHAR_WINDOWTALKEDFUNC,#ifdef _USER_CHARLOOPS	CHAR_LOOPFUNCTEMP1,	CHAR_LOOPFUNCTEMP2,	CHAR_BATTLEPROPERTY,#endif    CHAR_LASTFUNCTION,    CHAR_FUNCTABLENUM = CHAR_LASTFUNCTION,}CHAR_FUNCTABLE;typedef enum{    CHAR_WORKWALKARRAY,    CHAR_NPCWORKCHAR1,    CHAR_NPCWORKCHAR2,    CHAR_NPCWORKCHAR3,    CHAR_NPCWORKCHAR4,    CHAR_NPCWORKCHAR5,    CHAR_NPCWORKCHAR6,	CHAR_WORKDATACHARNUM,    CHAR_WORKBATTLE_TACTICSOPTION = CHAR_NPCWORKCHAR1,#ifdef _BATTLENPC_WARP_PLAYER	CHAR_WORKBATTLE_ACT_CONDITION = CHAR_NPCWORKCHAR2,#endif    CHAR_WORKDOORPASSWD			= CHAR_NPCWORKCHAR1,    CHAR_WORKDOORNAME			= CHAR_NPCWORKCHAR2,    CHAR_WORKDOORGOLDLIMIT		= CHAR_NPCWORKCHAR3,    CHAR_WORKDOORWEEK			= CHAR_NPCWORKCHAR4,    CHAR_WORKDOORHOUR			= CHAR_NPCWORKCHAR5,    CHAR_WORKDOORMINUTE			= CHAR_NPCWORKCHAR6,    CHAR_WORKDOORTITLE			= CHAR_NPCWORKCHAR6,    CHAR_WORKDOORMANDOORNAME	= CHAR_NPCWORKCHAR1,    CHAR_TIME1,    CHAR_TIME2			= CHAR_NPCWORKCHAR6,	}CHAR_WORKDATACHAR;typedef enum{    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_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];    STRING64	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];    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];    int         CharMakeSequenceNumber;    void*       functable[CHAR_FUNCTABLENUM];}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 BOOL _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);#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 << 11 )#define RIDE_PET11	( 1 << 10 )#define RIDE_PET12	( 1 << 12 )#define RIDE_PET13	( 1 << 13 )#define RIDE_PET14	( 1 << 14 )#ifdef _RIDE_CF#define RIDE_PET15 ( 1 << 15 )#define RIDE_PET16 ( 1 << 16 )#define RIDE_PET17 ( 1 << 17 )#define RIDE_PET19 ( 1 << 19 )#define RIDE_PET18 ( 1 << 18 )#define RIDE_PET20 ( 1 << 20 )#define RIDE_PET21 ( 1 << 21 )#define RIDE_PET22 ( 1 << 22 )#define RIDE_PET23 ( 1 << 23 )#define RIDE_PET24 ( 1 << 24 )#define RIDE_PET25 ( 1 << 25 )#define RIDE_PET26 ( 1 << 26 )#define RIDE_PET27 ( 1 << 27 )#define RIDE_PET28 ( 1 << 28 )#define RIDE_PET29 ( 1 << 29 )#define RIDE_PET30 ( 1 << 30 )#define RIDE_PET31 ( 1 << 31 )#define RIDE_TPYE1 1#define RIDE_TPYE2 ( 1 << 1 )#define RIDE_PET_ALL	( 0xFFFFFFFF )#define RIDE_TPYE_ALL	( 0xFFFFFFFF )#define MAXNOINDEX 32*2#else#define RIDE_PET_ALL	( RIDE_PET0|RIDE_PET1|RIDE_PET2|RIDE_PET3|RIDE_PET4|RIDE_PET5|RIDE_PET6|RIDE_PET7|RIDE_PET8|RIDE_PET9|RIDE_PET10|RIDE_PET11 )#define MAXNOINDEX 15#endif#ifdef _PET_BEATITUDE#define BEATITUDE_VITAL ( 1 << 0 )#define BEATITUDE_STR   ( 1 << 1 )#define BEATITUDE_TOUGH ( 1 << 2 )#define BEATITUDE_DEX   ( 1 << 3 )#endif#ifdef _FM_LEADER_RIDEtypedef struct	{	int fmfloor;	int ride[3];}tagFmLeaderRide;#endif#ifdef _FM_LEADER_RIDEint CHAR_FmLeaderRide(int meindex,int pet);#endiftypedef struct	{	int petNo;#ifdef _RIDE_CF		int petNo1;#endif	unsigned 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);#ifdef _RIDE_CF	int RIDEPET_getPETindex( int PetNo, unsigned int learnCode, int unsigned learnCode1 );int RIDEPET_getPETindex64( int PetNo, unsigned int learnCode, unsigned int learnCode1 );#elseint RIDEPET_getPETindex( int PetNo, unsigned int learnCode);#endifint RIDEPET_getRIDEno( int index, int ti);#endif#ifdef _TYPE_TOXICATIONBOOL CHAR_CanCureFlg( int charaindex, char *arg);#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 _NPC_SEPARATEDATAvoid CHAR_showTempInt( int index);BOOL CHAR_InitCharTempNum( Char* ch );void CHAR_EndCharTempNum( void);void CHAR_getDefaultCharTempNum( Char* ch );#endif#ifdef _RIDE_CFint CHAR_Ride_CF_init();#endifvoid LodBadPetString( char *data, char *err, int ti);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -