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

📄 char_base.h

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 H
📖 第 1 页 / 共 4 页
字号:
    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 人物职业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 + -