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

📄 char_base.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
	"profession_thunder_r",#endif#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPC	"herofloor",#endif#ifdef _PETSKILL_BECOMEPIG    "becomepig",	"becomepig_bbi",#endif	"leavetime", // CHAR_LASTLEAVETIME#ifdef _NEW_MANOR_LAW	"momentum",	// CHAR_MOMENTUM#endif#ifdef _ITEM_ADDEXP2	"aexp",		// CHAR_ADDEXPPOWER	"aexpt",		// CHAR_ADDEXPTIME#endif#ifdef _ANGEL_SUMMON	"herocnt",	// CHAR_HEROCNT#endif#ifdef _TEACHER_SYSTEM	"tsf",	// CHAR_TEACHER_FAME,	// 导师领导声望#endif#ifdef _RACEMAN	"checkin",	// CHAR_CHECKIN	"catchcnt1", // CHAR_CATCHCNT1	"catchcnt2", // CHAR_CATCHCNT2	"catchcnt3", // CHAR_CATCHCNT3	"catchcnt4", // CHAR_CATCHCNT4	"catchcnt5", // CHAR_CATCHCNT5	"kindcnt1",	//CHAR_KINDCNT1,	/*   (0~31)		*/	"kindcnt2",	//CHAR_KINDCNT2,    /*   (32~63)		*/	"kindcnt3",	//CHAR_KINDCNT3,	/*   (64~95)		*/	"kindcnt4",	//CHAR_KINDCNT4,	/*   (96~127)		*/	"kindcnt5",	//CHAR_KINDCNT5,	/*   (128~159)		*/	"kindcnt6",	//CHAR_KINDCNT6,	/*   (160~191)		*/	"kindcnt7",	//CHAR_KINDCNT7,	/*   (192~223)		*/	"kindcnt8",	//CHAR_KINDCNT8,	/*   (224~255)		*/	"kindcnt9",	//CHAR_KINDCNT9,	/*   (256~287)		*/	"kindcnt10", //CHAR_KINDCNT10,	/*   (288~319)		*/#endif#ifdef _GM_ITEM	"gmtime", // 玩家GM命令次数#endif};static char* CHAR_setchardata[CHAR_DATACHARNUM]={    /* dcc ,    PLAYER  */    "name" ,            /*  CHAR_NAME    */    "ownt" ,            /*  CHAR_OWNTITLE*/    "arg",                 /*  CHAR_NPCARGUMENT */    "ocd",				/* CHAR_OWNERCDKEY */    "ocn",				/* CHAR_OWNERCHARANAME */    "fmname",	// CoolFish: Family 2001/5/24 家族名称 CHAR_FMNAME#ifdef _UNIQUE_P_I        "ucode",	// CoolFish: 2001/10/11 UNIQUE_P_I CHAR_UNIQUECODE#endif#ifdef _ACTION_GMQUE	//人物 npc 使用 	"gmque",	//CHAR_GMQUESTR1,	//"temp2",	//CHAR_GMQUESTR2,	//"temp3",	//CHAR_GMQUESTR3,	//"temp4",	//CHAR_GMQUESTR4,#endif#ifdef _GM_IDENTIFY  "gmidentify", //gm名称#endif#ifdef _TEACHER_SYSTEM	"tsi",	// 导师帐号	"tsn",	// 导师名字#endif#ifdef _ITEM_SETLOVER	"love",       // 结婚判断	"lovrrid",    // 爱人帐号	"lovrrneme",	// 爱人名字#endif#ifdef _GM_ITEM	"gmfunction", // 玩家GM命令#endif};INLINE BOOL _CHAR_CHECKINDEX( char *file, int line, int index ){    if( CHAR_charanum<=index || index<0 ) {    	return FALSE;    }    if( CHAR_chara[(index)].use == FALSE ) {    	return FALSE;    }    return TRUE;}static INLINE BOOL CHAR_CHECKINTDATAINDEX(int index){    if( CHAR_DATAINTNUM<=index || index<0 )return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKCHARDATAINDEX(int index){    if( CHAR_DATACHARNUM<=index || index<0 )return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKFLGDATAINDEX( int index ){    if( CHAR_FLGNUM<=index || index<0 )return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKCHARWORKDATAINDEX(int index){    if( CHAR_WORKDATACHARNUM<=index || index<0 )return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKCHARFUNCTABLEINDEX(int index){    if( CHAR_FUNCTABLENUM <= index || index < 0 )return FALSE;    return TRUE;}INLINE BOOL _CHAR_CHECKITEMINDEX( char *file, int line, int charaindex, int ti ){    if( 0 <= ti && ti < CHAR_MAXITEMHAVE ) return TRUE;    return FALSE;}static INLINE BOOL CHAR_CHECKSKILLINDEX( int skillindex ){    if( skillindex<0 || CHAR_SKILLMAXHAVE <= skillindex )return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKADDRESSBOOKINDEX( int aindex ){    if( aindex < 0 || ADDRESSBOOK_MAX <= aindex ) return FALSE;    return TRUE;}static INLINE BOOL CHAR_CHECKTITLEINDEX( int titleindex ){    if( titleindex<0 || CHAR_TITLEMAXHAVE <= titleindex )return FALSE;    return TRUE;}INLINE BOOL _CHAR_CHECKPETINDEX( char *file, int line, int petindex ){    if( petindex < 0 || CHAR_MAXPETHAVE <= petindex ) {		if( petindex != -1 ) {			print( "err %s:%d \n", file, line);		}    	return FALSE;    }    return TRUE;}INLINE BOOL _CHAR_CHECKPOOLPETINDEX( char *file, int line, int petindex ){    if( petindex < 0 || CHAR_MAXPOOLPETHAVE <= petindex ) {				if( petindex != -1 ) {			print( "err %s:%d :%d \n", file, line, petindex);		}    	return FALSE;    }    return TRUE;}INLINE BOOL _CHAR_CHECKPETSKILLINDEX( char *file, int line, int havepetskillindex ){    if( havepetskillindex < 0 || CHAR_MAXPETSKILLHAVE <= havepetskillindex ) {		if( havepetskillindex != -1 ) {			print( "err %s:%d \n", file, line);		}    	return FALSE;    }    return TRUE;}INLINE int CHAR_getIntStrict( int index ,CHAR_DATAINT element,int* error){    if(!CHAR_CHECKINDEX(index))return *error=FALSE;    if(!CHAR_CHECKINTDATAINDEX(element))return *error=FALSE;    return CHAR_chara[index].data[element];}INLINE int CHAR_getInt( int index , CHAR_DATAINT element){    return CHAR_chara[index].data[element];}INLINE int CHAR_setIntStrict( int index ,CHAR_DATAINT element,int data,                              int* error){    int buf;    if(!CHAR_CHECKINDEX(index))return *error=FALSE;    if(!CHAR_CHECKINTDATAINDEX(element))return *error=FALSE;    buf = CHAR_chara[index].data[element];    CHAR_chara[index].data[element] = data;    return buf;}INLINE int _CHAR_setInt( char *file, int line, int index ,CHAR_DATAINT element, int data){    int buf;	if( !CHAR_CHECKINDEX( index) )	{		//print(" err CHAR_setInt index:%d. !:%s-%d\n", index, file, line);		return -1;	}	if( CHAR_DATAPLACENUMBER > element || element >= CHAR_DATAINTNUM )	{		print(" err CHAR_setInt element:%d.%s :%s-%d\n", element, CHAR_getChar( index, CHAR_CDKEY),file, line);		return -1;	}    buf = CHAR_chara[index].data[element];    CHAR_chara[index].data[element] = data;    return buf;}#ifdef _FIX_SETWORKINTINLINE int _CHAR_getWorkInt( char *file, int line, int index ,CHAR_WORKDATAINT element)#elseINLINE int CHAR_getWorkInt( int index ,CHAR_WORKDATAINT element)#endif{	if( CHAR_WORKBATTLEMODE > element || element >= CHAR_WORKDATAINTNUM )	{		print("err Get WorkInt element=%d :: file:%s %d!\n", element, file, line);		return -1;	}    return CHAR_chara[index].workint[element];}#ifdef _FIX_SETWORKINTINLINE 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{    int buf;	if( !CHAR_CHECKINDEX( index) )	{		//print( "err Set WorkInt index:%d:%s[%d].\n", index, file, line);		return -1;	}	if( CHAR_WORKBATTLEMODE > element || element >= CHAR_WORKDATAINTNUM )	{#ifdef _FIX_SETWORKINT		print("err Set WorkInt element=%d.%s:%s[%d]!\n", element, CHAR_getChar( index, CHAR_CDKEY), file, line);#else		print("err Set WorkInt element=%d.%s!\n", element, CHAR_getChar( index, CHAR_CDKEY) );#endif		return -1;	}    buf = CHAR_chara[index].workint[element];    CHAR_chara[index].workint[element] = data;    return buf;}INLINE char* _CHAR_getChar( char *file, int line, int index ,CHAR_DATACHAR element ){    if(!CHAR_CHECKINDEX(index)) {		print( "err _CHAR_getChar %s:%d index[%d] !!\n", file, line, index);    	return NULL;    }    if(!CHAR_CHECKCHARDATAINDEX(element)) {		print( "err _CHAR_getChar %s:%d element[%d] !!\n", file, line, element);    	return NULL;	}    return CHAR_chara[index].string[element].string;}INLINE BOOL _CHAR_setChar( char *file, int line, int index ,CHAR_DATACHAR element, char* new ){    if(!CHAR_CHECKINDEX(index)) {		print( "err _CHAR_setChar %s:%d !\n", file, line);    	return FALSE;    }    if(!CHAR_CHECKCHARDATAINDEX(element)) {		print( "err _CHAR_setChar %s:%d !\n", file, line);    	return FALSE;    }    strcpysafe( CHAR_chara[index].string[element].string,                sizeof(CHAR_chara[index].string[element].string),                new );    return TRUE;}static INLINE char* CHAR_getCharfunctable( int index ,CHAR_FUNCTABLE element ){    if(!CHAR_CHECKINDEX(index))return NULL;    if(!CHAR_CHECKCHARFUNCTABLEINDEX(element))return NULL;    return CHAR_chara[index].charfunctable[element].string;}INLINE char* _CHAR_getWorkChar( char *file, int line, int index ,CHAR_WORKDATACHAR element ){    if(!CHAR_CHECKINDEX(index)) {		print( "err %s:%d \n", file, line);    	return NULL;    }    if(!CHAR_CHECKCHARWORKDATAINDEX(element)) {		print( "err %s:%d \n", file, line);    	return NULL;    }    return CHAR_chara[index].workchar[element].string;}INLINE BOOL _CHAR_setWorkChar( char *file, int line, int index ,CHAR_WORKDATACHAR element,                              char* new ){    if(!CHAR_CHECKINDEX(index)) {		print( "err %s:%d \n", file, line);    	return FALSE;    }    if(!CHAR_CHECKCHARWORKDATAINDEX(element)) {		print( "err %s:%d \n", file, line);    	return FALSE;    }    strcpysafe( CHAR_chara[index].workchar[element].string,                sizeof(CHAR_chara[index].workchar[element].string),                new );    return TRUE;}static char CHAR_flgbitmaskpattern[]={    0x01,    0x02,    0x04,    0x08,    0x10,    0x20,    0x40,    0x80,};INLINE BOOL _CHAR_getFlg( char *file, int line, int index ,CHAR_DATAFLG element ){    int     elementnum;    int     bitnum;    if(!CHAR_CHECKINDEX(index)) {		//print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line);    	return FALSE;    }    if(!CHAR_CHECKFLGDATAINDEX(element)) {		//print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line);	    return FALSE;	}    elementnum = element / (sizeof( char )*8);    bitnum = element % (sizeof( char )*8);    if( CHAR_chara[index].flg[elementnum]        & CHAR_flgbitmaskpattern[bitnum])        return TRUE;    else        return FALSE;}INLINE char _CHAR_setFlg( char *file, int line, int index , CHAR_DATACHAR element, int newdata ){    int buf;    int elementnum;    int bitnum;    char    bitpattern;    if(!CHAR_CHECKINDEX(index)) {		print( "err %s:%d \n", file, line);    	return FALSE;    }    if(!CHAR_CHECKFLGDATAINDEX(element)) {		print( "err %s:%d \n", file, line);    	return FALSE;	}    elementnum = element / (sizeof( char )*8);    bitnum = element % (sizeof( char )*8);    /*  樯及袄毛转      */    buf = CHAR_chara[index].flg[elementnum]        & CHAR_flgbitmaskpattern[bitnum];    if( newdata != 0 ){        bitpattern = CHAR_flgbitmaskpattern[bitnum];        CHAR_chara[index].flg[elementnum] |= bitpattern;    }else{        bitpattern = ~CHAR_flgbitmaskpattern[bitnum];        CHAR_chara[index].flg[elementnum] &= bitpattern;    }    if( buf )return 1;    else     return 0;}INLINE int _CHAR_getItemIndex( char *file, int line, int charaindex ,int ti){    if( !CHAR_CHECKINDEX( charaindex)) {		print( "err %s:%d from %s:%d\n", __FILE__, __LINE__,file, line);    	return -1;    }    if( !CHAR_CHECKITEMINDEX( charaindex, ti) ){		print( "err %s:%d from %s:%d \n", __FILE__, __LINE__,file, line);    	return -1;    }    return CHAR_chara[charaindex].indexOfExistItems[ti];}INLINE int _CHAR_setItemIndex( char *file, int line, int index ,int iindex,int id ){    int buf;    if( !CHAR_CHECKINDEX(index)) {		print( "err %s:%d \n", file, line);    	return -1;    }    if( CHAR_MAXITEMHAVE <= iindex || iindex < 0 ) {		print( "err %s:%d \n", file, line);    	return -1;    }// CoolFish: 2001/10/12#ifdef _UNIQUE_P_I    	if ( (id != -1)  && (ITEM_getChar(id, ITEM_UNIQUECODE) != NULL) )  // shan add hjj

⌨️ 快捷键说明

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