亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? char_base.c.bak

?? 石器時(shí)代8.0服務(wù)端完整源代碼。可以直接編譯
?? BAK
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
}INLINE int CHAR_setCharPoolPet( int charaindex,int petindex, int new ){    int ret;    if( !CHAR_CHECKINDEX(charaindex))return -1;    if( !CHAR_CHECKPOOLPETINDEX(petindex))return -1;    ret = CHAR_getCharPoolPet( charaindex,petindex);    CHAR_chara[charaindex].indexOfPoolPet[petindex] = new;    return ret;}int CHAR_getCharPetElement( int charaindex ){    int i;    if( !CHAR_CHECKINDEX(charaindex))return -1;	for( i = 0; i < CHAR_MAXPETHAVE; i ++ ) {	    if( CHAR_getCharPet( charaindex,i) == -1 ) break;    }    return ( i == CHAR_MAXPETHAVE ? -1:i );}int CHAR_getCharPoolPetElement( int charaindex ){    int i;	int limit;    if( !CHAR_CHECKINDEX(charaindex))return -1;	//andy_reEdit 2003/09/18	limit = (CHAR_getInt(charaindex,CHAR_TRANSMIGRATION)*2)+5;	limit = min( limit, CHAR_MAXPOOLPETHAVE);	for( i = 0; i < limit; i ++ ) {		if( CHAR_getCharPoolPet( charaindex,i) == -1 ) break;    }    return ( i == limit ? -1:i );}int CHAR_getCharPoolItemIndexElement( int charaindex ){    int i;    int limit;    if( !CHAR_CHECKINDEX(charaindex))return -1;	//andy_reEdit 2003/09/18	limit = (CHAR_getInt(charaindex,CHAR_TRANSMIGRATION)*4)+10;	limit = min( limit, CHAR_MAXPOOLITEMHAVE);	for( i = 0; i < limit; i ++ ) {	    if( CHAR_getPoolItemIndex( charaindex,i) == -1 ) break;    }    // Robin fix	//return ( i == CHAR_MAXPOOLITEMHAVE ? -1:i );	return ( i >= limit ? -1:i );}int CHAR_getEmptyCharPoolItemIndexNum( int charaindex){	int i, cnt = 0;    int limit;    if( !CHAR_CHECKINDEX(charaindex))return 0;	//andy_reEdit 2003/09/18	limit = (CHAR_getInt(charaindex,CHAR_TRANSMIGRATION)*4)+10;	limit = min( limit, CHAR_MAXPOOLITEMHAVE);	for( i = 0; i < limit; i ++ ) {		if( CHAR_getPoolItemIndex( charaindex, i) == -1 ) cnt++;	}	return cnt;}INLINE int _CHAR_getPetSkill( char *file, int line, int petindex, int havepetskillindex ){    if( !CHAR_CHECKINDEX(petindex)) {    	print( "err %s:%d from %s:%d\n", __FILE__, __LINE__, file, line);    	return -1;    }    if( !CHAR_CHECKPETSKILLINDEX(havepetskillindex)) {    	print( "err %s:%d from %s:%d\n", __FILE__, __LINE__, file, line);    	return -1;    }    return CHAR_chara[petindex].unionTable.indexOfPetskill[havepetskillindex];}INLINE int _CHAR_setPetSkill( char *file, int line, int petindex,int havepetskillindex, int new ){    int ret;    if( !CHAR_CHECKINDEX(petindex)) {    	print( "err %s:%d from %s:%d\n", __FILE__, __LINE__, file, line);    	return -1;    }    if( !CHAR_CHECKPETSKILLINDEX(havepetskillindex)) {    	print( "err %s:%d from %s:%d\n", __FILE__, __LINE__, file, line);    	return -1;    }    ret = CHAR_getPetSkill( petindex,havepetskillindex);    CHAR_chara[petindex].unionTable.indexOfPetskill[havepetskillindex] = new;    return ret;}int _CHAR_getPetSkillElement( char *file, int line, int petindex ){    int i;    if( !CHAR_CHECKINDEX(petindex)) {    	print( "err %s:%d from %s:%d\n", __FILE__, __LINE__, file, line);    	return -1;	}	for( i = 0; i < CHAR_MAXPETSKILLHAVE; i ++ ) {	    if( CHAR_getPetSkill( petindex,i) == -1 ) break;    }    return ( i == CHAR_MAXPETSKILLHAVE ? -1:i );}INLINE int CHAR_getCharMakeSequenceNumber( int charaindex ){    if( !CHAR_CHECKINDEX(charaindex))return -1;    return CHAR_chara[charaindex].CharMakeSequenceNumber;}void CHAR_constructFunctable( int charaindex ){    int     i;    if( !CHAR_CHECKINDEX(charaindex))return;    for( i=CHAR_FIRSTFUNCTION; i < CHAR_LASTFUNCTION ; i++ )        CHAR_chara[charaindex].functable[i-CHAR_FIRSTFUNCTION]            = getFunctionPointerFromName( CHAR_getCharfunctable( charaindex,i ) );}void* CHAR_getFunctionPointer( int charaindex, int functype ){    if( !CHAR_CHECKINDEX(charaindex) )return NULL;    if( functype < CHAR_FIRSTFUNCTION  || functype >= CHAR_LASTFUNCTION )        return NULL;    return CHAR_chara[charaindex].functable[functype];}BOOL CHAR_initCharArray( int pnum, int petnum,int onum ){    int     i;    BOOL CHAR_checksetdata( void );    if( CHAR_checksetdata() == FALSE ){		print(" err CHAR_checksetdata() FALSE !!\n");		return FALSE;	}	//andy_log	print("#");    CHAR_initSeekGraphicNumberFromString();    CHAR_initChatMagic();	CHAR_charanum = pnum + petnum +onum;	//andy_log	print("#");    CHAR_chara = allocateMemory( sizeof( Char ) * CHAR_charanum );    if( CHAR_chara == NULL ){		print("無(wú)法分配人物內(nèi)存 !!\n");		return FALSE;	}	//andy_log	print("人物內(nèi)存: %4.2f...", ((float)sizeof( Char )*CHAR_charanum)/1024);    for( i = 0 ; i < CHAR_charanum ; i ++ ){		memset( &CHAR_chara[i], 0 , sizeof( Char ));	}    for( i = 0 ; i < pnum ; i ++ ){#ifdef _NPC_SEPARATEDATA		CHAR_InitCharTempNum( &CHAR_chara[i] );#endif	}    CHAR_playernum = pnum;    CHAR_petnum = petnum;    CHAR_othersnum = onum;    return TRUE;}BOOL CHAR_endCharArray( void ){#ifdef _NPC_SEPARATEDATA	CHAR_EndCharTempNum();#endif    freeMemory( CHAR_chara );    CHAR_charanum = 0;    return TRUE;}BOOL CHAR_getCharOnArrayPercentage( int mode, int *max, int *min, int *cnt){	int po=0, Dnums=0;	po = initCharCounter[0].endcnt;	*cnt = -1;	while( 1){		if( !CHAR_chara[po].use ){		}else{			Dnums++;		}		po++;		if( po >= initCharCounter[mode].endcnt ){			break;		}	}	*cnt = Dnums;	*max = initCharCounter[mode].endcnt - initCharCounter[mode].startcnt;	*min = 0;	return TRUE;}int CHAR_initCharOneArray( Char* ch ){    int i;    int mode;    int ret = TRUE;    int first;	static unsigned int CharMakeSequenceNumber = 0;    if( initCharCounter[0].startcnt == -1 ) {        initCharCounter[0].startcnt = 0;        initCharCounter[0].cnt      = initCharCounter[0].startcnt;        initCharCounter[0].endcnt   = CHAR_playernum;        initCharCounter[1].startcnt = initCharCounter[0].endcnt;        initCharCounter[1].cnt      = initCharCounter[0].endcnt;        initCharCounter[1].endcnt   = CHAR_playernum + CHAR_petnum;        initCharCounter[2].startcnt = initCharCounter[1].endcnt;        initCharCounter[2].cnt      = initCharCounter[1].endcnt;        initCharCounter[2].endcnt   = CHAR_charanum;    }    if( ch->data[CHAR_WHICHTYPE] == CHAR_TYPEPLAYER ){        mode = 0;    }else if( CHAR_TYPEPET ==  ch->data[CHAR_WHICHTYPE] ) {        mode = 1;    }else{        mode = 2;    }    i = initCharCounter[mode].cnt;    first = TRUE;    while( 1 ){        if( !first && i >= initCharCounter[mode].cnt ) {            ret = FALSE;            break;        }        if( CHAR_chara[i].use == FALSE ){            ret = TRUE;            break;        }else{            i++;            if( i >= initCharCounter[mode].endcnt ){                i = initCharCounter[mode].startcnt;                first = FALSE;            }        }    }    if( ret ){        typedef BOOL (*INITFUNC)(int index);        INITFUNC initfunc;#ifdef _NPC_SEPARATEDATA		ch->tempint = CHAR_chara[i].tempint;		CHAR_getDefaultCharTempNum( ch);#endif        memset( &CHAR_chara[i] , 0, sizeof( Char ) );        memcpy( &CHAR_chara[i] , ch , sizeof( Char ) );        initfunc = (INITFUNC)getFunctionPointerFromName(            ch->charfunctable[CHAR_INITFUNC].string );        if( initfunc ) {            if( initfunc( i ) == FALSE ){				CHAR_chara[i].use = FALSE;                ret = FALSE;            }        }        if( ret ){            CHAR_chara[i].use = TRUE;            CHAR_constructFunctable( i );            if( i + 1 >= initCharCounter[mode].endcnt ) {                initCharCounter[mode].cnt                    = initCharCounter[mode].startcnt;            }else {                initCharCounter[mode].cnt = i+1;			}        	CHAR_chara[i].CharMakeSequenceNumber = CharMakeSequenceNumber++;			if( CharMakeSequenceNumber == 0xffffffff) CharMakeSequenceNumber = 0;        }    }else{        fprint( "Error: Char full\n" );	}    return ret ? i: -1;}void CHAR_removeHaveItem( Char* ch ){    int     i;    if( ch == NULL )return;    for( i=0 ; i<CHAR_MAXITEMHAVE ; i++ ) {		int itemindex = ch->indexOfExistItems[i];		ch->indexOfExistItems[i] = -1;        ITEM_endExistItemsOne( itemindex );	}}void CHAR_removeHavePoolItem( Char* ch ){    int     i;    if( ch == NULL )return;    for( i=0 ; i<CHAR_MAXPOOLITEMHAVE ; i++ ) {		int itemindex = ch->indexOfExistPoolItems[i];		ch->indexOfExistPoolItems[i] = -1;        ITEM_endExistItemsOne( itemindex );	}}void CHAR_endCharData( Char* ch ){    if( ch == NULL ){		return;	}    CHAR_removeHaveItem( ch );	CHAR_removeHavePoolItem( ch);#ifdef _CHAR_POOLITEM//	CHAR_removeHaveDepotItem( ch );#endif#ifdef _CHAR_POOLPET//	CHAR_removeHaveDepotPet( ch );#endif    ch->use = FALSE;}void CHAR_endCharOneArray( int index ){    Char*   ch = NULL;	if( !CHAR_CHECKINDEX( index) ) return;	ch = CHAR_getCharPointer(index);    if( ch == NULL ){		print( "CHAR_endCharOneArray err ch == NULL :%d\n", index);		return;	}    CHAR_endCharData( ch );}static char CHAR_dataString[STRINGBUFSIZ*16*2];BOOL CHAR_checksetdata( void ){    int     i;    char*   strings[CHAR_DATAINTNUM + CHAR_DATACHARNUM];    int     stringnum=0;    for(i = 0; i < CHAR_DATAINTNUM ; i ++ ){        if( CHAR_setintdata[i][0] != '#' )            strings[stringnum++] = CHAR_setintdata[i];    }    for( i = 0 ; i < CHAR_DATACHARNUM ; i ++ ){        if( CHAR_setchardata[i][0] != '#' )            strings[stringnum++] = CHAR_setchardata[i];    }    if( ! checkStringsUnique( strings, stringnum , 1 ) ){        fprint( "set????data is overlapped.\nIt is not allowed\n");        return FALSE;    }    return TRUE;}#define FLGRESERVESTRING   "flg"#define ITEMRESERVESTRING   "item"#define POOLITEMRESERVESTRING   "poolitem"#define SKILLRESERVESTRING  "skill"#define TITLERESERVESTRING  "title"#define ADDRESSBOOKRESERVESTRING  "adr"#define	PETSERVERSTRING		"pet"#define PETITEMRESERVESTRING   "pitem"#define	PETSKILLSERVERSTRING	"psk"#define	POOLPETSERVERSTRING		"poolpet"#define ITEMPOOLRESERVESTRING   "itempool"#define	DATAENDCHECKPOINT		"DATAEND"#ifdef _CHAR_POOLITEM#define DEPOTITEMRESERVESTRING   "Depotitem"#endif#ifdef _CHAR_POOLPET#define DEPOTPETRESERVESTRING   "Depotpet"#endifchar* CHAR_makeStringFromCharData( Char* one ){    int     i;	int		petnum;	int     strlength=0;    if (!one) return NULL;	memset( CHAR_dataString, 0, sizeof(CHAR_dataString));    for( i = 0 ; i < CHAR_DATAINTNUM ; i ++ ){        char    linedata[256];        snprintf( linedata , sizeof(linedata),                  "%s=%d" CHAR_DELIMITER,                  CHAR_setintdata[i],                  one->data[i] );        strcpysafe( &CHAR_dataString[strlength],                    sizeof( CHAR_dataString ) - strlength,                    linedata );        strlength += strlen( linedata );        if( strlength > sizeof( CHAR_dataString ) ) {			fprint( "err chardata buffer over\n");        	goto RETURN;		}    }    for( i = 0 ; i < CHAR_DATACHARNUM ; i ++ ){        char    linedata[256];        char    escapebuffer[256];        snprintf( linedata , sizeof(linedata),

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产无套在线观| 精品国产乱码久久久久久夜甘婷婷| 精品国产一区二区在线观看| 亚洲欧美日韩国产手机在线| 国产又黄又大久久| 7777精品伊人久久久大香线蕉最新版| 亚洲欧美怡红院| 国模一区二区三区白浆| 欧美精品粉嫩高潮一区二区| 成人欧美一区二区三区| 精品综合久久久久久8888| 欧美性感一区二区三区| 亚洲欧美综合色| 成人污污视频在线观看| 久久品道一品道久久精品| 青青草伊人久久| 欧美高清性hdvideosex| 亚洲综合免费观看高清完整版 | 亚洲成人免费在线| av在线这里只有精品| 国产日韩av一区二区| 国内精品国产成人国产三级粉色| 欧美日韩精品一区二区天天拍小说| 亚洲人成网站精品片在线观看| 成人免费福利片| 中文av字幕一区| 岛国精品在线播放| 久久久久久久久97黄色工厂| 久久精品国产亚洲一区二区三区| 欧美日韩一区久久| 亚洲成人午夜电影| 欧美日本在线视频| 午夜视频在线观看一区二区三区| 欧美无乱码久久久免费午夜一区| 亚洲免费观看视频| 91麻豆免费看| 亚洲免费观看高清完整版在线观看 | 7777精品伊人久久久大香线蕉最新版| 亚洲一区二区三区三| 日本高清不卡在线观看| 国产精品国产三级国产普通话三级| 国产精品亚洲人在线观看| 久久先锋影音av鲁色资源网| 老汉av免费一区二区三区 | 色哟哟国产精品| 亚洲精品中文在线| 欧美三电影在线| 五月婷婷另类国产| 日韩欧美国产一二三区| 久久成人久久爱| 国产女同互慰高潮91漫画| 成人综合在线观看| 亚洲男同性恋视频| 欧美日韩大陆一区二区| 麻豆一区二区99久久久久| 欧美精品一区二区三区四区| 国产一区二区三区在线观看精品 | 国产拍欧美日韩视频二区| 成人av小说网| 尤物av一区二区| 欧美人妖巨大在线| 美腿丝袜在线亚洲一区| 精品第一国产综合精品aⅴ| 狠狠狠色丁香婷婷综合久久五月| 国产欧美日韩不卡| 色欧美片视频在线观看在线视频| 亚洲大片一区二区三区| 宅男在线国产精品| 国产一区二区在线观看免费| 中文字幕一区二区三区不卡在线| 色猫猫国产区一区二在线视频| 亚洲图片欧美激情| 在线免费观看日本欧美| 日韩综合小视频| 亚洲精品在线一区二区| 99天天综合性| 青娱乐精品视频在线| 国产午夜久久久久| 色老综合老女人久久久| 欧美日韩在线亚洲一区蜜芽| 麻豆freexxxx性91精品| 国产精品天干天干在观线| 欧美性高清videossexo| 韩国女主播一区二区三区| 国产精品久久久久久久久晋中 | 99视频精品全部免费在线| 亚洲123区在线观看| 久久无码av三级| 在线亚洲欧美专区二区| 经典三级视频一区| 亚洲精品久久嫩草网站秘色| 日韩限制级电影在线观看| 成人av在线看| 青青草一区二区三区| 国产精品国产自产拍高清av王其| 91精品婷婷国产综合久久竹菊| 国产成人亚洲精品青草天美| 亚洲国产欧美在线人成| 久久久www成人免费毛片麻豆 | 在线观看免费成人| 国产一区二区三区电影在线观看| 亚洲精品日产精品乱码不卡| 久久嫩草精品久久久精品一| 欧美在线不卡视频| 国产成a人无v码亚洲福利| 天天操天天色综合| 中文字幕佐山爱一区二区免费| 欧美电影免费观看高清完整版在 | 经典三级一区二区| 亚洲va韩国va欧美va精品| 欧美国产精品中文字幕| 7799精品视频| 色呦呦国产精品| 成人免费视频播放| 激情图片小说一区| 天天色图综合网| 亚洲人成伊人成综合网小说| 2020国产精品自拍| 欧美一区二区三区啪啪| 一本色道久久综合亚洲精品按摩| 国产精品夜夜爽| 久久99国产精品久久99果冻传媒| 亚洲综合色噜噜狠狠| 波多野结衣中文字幕一区二区三区| 天天综合天天做天天综合| 亚洲日本在线a| 国产精品视频yy9299一区| 日韩欧美色综合| 制服丝袜国产精品| 欧美日韩精品一区二区三区蜜桃| 91在线观看下载| 成人国产精品免费网站| 国产精品白丝jk黑袜喷水| 久久99精品久久久久| 青青草一区二区三区| 天天av天天翘天天综合网 | 亚洲综合色婷婷| 亚洲视频一区二区在线| 欧美国产日韩a欧美在线观看| 欧美一区二区三区视频在线 | 欧美日韩免费不卡视频一区二区三区 | 国产精品色婷婷久久58| 久久久久久综合| 欧美精品一区二| 精品国产一区二区三区四区四 | 日本韩国视频一区二区| 91视频.com| 99精品久久只有精品| 大尺度一区二区| 波多野结衣在线一区| 成人激情校园春色| av成人老司机| 99久久精品国产观看| 99在线视频精品| 日本大香伊一区二区三区| 在线视频一区二区三| 色综合色狠狠综合色| 91天堂素人约啪| 色综合天天综合| 在线视频国产一区| 欧美三级资源在线| 欧美浪妇xxxx高跟鞋交| 欧美一区2区视频在线观看| 日韩一区二区在线观看视频 | 精品国产三级a在线观看| 欧美精品高清视频| 精品日韩在线一区| 久久精品人人做| 中文字幕在线不卡一区| 亚洲精品国产无天堂网2021| 亚洲va欧美va人人爽午夜 | 中文字幕一区日韩精品欧美| 成人免费一区二区三区在线观看| 亚洲欧美电影院| 午夜精品久久久久久久久久久| 三级影片在线观看欧美日韩一区二区| 喷白浆一区二区| 国产99一区视频免费| 91小视频免费看| 欧美人与性动xxxx| 久久久亚洲精品一区二区三区| 中文字幕欧美激情一区| 一区二区三区日韩欧美| 五月天激情综合| 国产一区二区影院| 一本色道久久综合精品竹菊| 欧美日韩国产bt| 久久综合av免费| 亚洲欧美一区二区三区国产精品 | 国产超碰在线一区| 色999日韩国产欧美一区二区| 欧美精品高清视频| 国产农村妇女毛片精品久久麻豆 | 久久久久九九视频| 亚洲男人的天堂网| 日韩成人伦理电影在线观看| 国产黄人亚洲片| 欧美日韩精品一区二区在线播放 | 欧美色图12p| 亚洲精品一区二区三区精华液|