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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? item.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
		readindex++;	}	return TRUE;}void ITEM_getDefaultItemSetting(ITEM_Item* itm){	int     i;	memset( itm, 0 , sizeof( ITEM_Item ));#ifdef _SIMPLIFY_ITEMSTRING	for(i = 0; i < arraysizeof( ITEM_setintdata) ; i ++ ){		itm->data[ITEM_setintdata[i].table] = ITEM_setintdata[i].defaults;	}	for(i = 0; i < arraysizeof( ITEM_setchardata) ; i ++ ){		strcpysafe( itm->string[ITEM_setchardata[i].table].string,				   sizeof( itm->string[ITEM_setchardata[i].table].string),				   ITEM_setchardata[i].defaults);	}#else	for(i=0;i<ITEM_DATAINTNUM;i++)		itm->data[i] = ITEM_setintdata[i].defaults;	for(i=0;i<ITEM_DATACHARNUM;i++)		strcpysafe(itm->string[i].string,				   sizeof(itm->string[i].string),				   ITEM_setchardata[i].defaults);#endif	strcpysafe( itm->string[ITEM_WATCHFUNC].string,		sizeof(itm->string[ITEM_WATCHFUNC].string), "ITEM_DeleteTimeWatched" );	for(i=0;i<ITEM_WORKDATAINTNUM;i++){		itm->workint[i] = -1;	}}#ifdef _SIMPLIFY_ITEMSTRINGvoid ITEM_getDefaultItemData( int itemID, ITEM_Item* itm){	int     i;//	memset( itm, 0 , sizeof( ITEM_Item ));	for(i=0;i<ITEM_DATAINTNUM;i++){		itm->data[i] = ITEMTBL_getInt( itemID, i);	}	for(i=0;i<ITEM_DATACHARNUM;i++){		strcpysafe( itm->string[i].string, sizeof( itm->string[i].string),				   ITEMTBL_getChar( itemID, i) );	}	for(i=0;i<ITEM_WORKDATAINTNUM;i++){		itm->workint[i] = -1;	}	strcpysafe( itm->string[ITEM_WATCHFUNC].string, sizeof( itm->string[ITEM_WATCHFUNC].string),				   "ITEM_DeleteTimeWatched" );}#endifstatic int ITEM_getRandomValue( char*  string,int* randomwidth, int num ){	int   minvalue;	int   maxvalue;	char	token[64];	int		ret;#if 1	*randomwidth = 0;	ret = getStringFromIndexWithDelim( string,",",num -1,token, sizeof( token));	if( ret == FALSE ) {		return 0;	}	minvalue = atoi( token);	ret = getStringFromIndexWithDelim( string,",",num ,token, sizeof( token));	if( ret == FALSE ) {		return minvalue;	}	maxvalue = atoi( token);	*randomwidth = ABS( maxvalue - minvalue);	return min( minvalue, maxvalue);#else	minvalue = atoi( string );	startmax = index( string,',' );	if( startmax != NULL ){		maxvalue = atoi(startmax+1);		*randomwidth = ABS(maxvalue - minvalue);		return min(minvalue,maxvalue);	}	*randomwidth = 0;	return minvalue;#endif}static int ITEM_isstring1or0( char*  string,int* randomwidth, int num ){	char	token[64];	int		ret;	ret = getStringFromIndexWithDelim( string,",",num -1,token, sizeof( token));	if( ret == FALSE ) {		return FALSE;	}	return isstring1or0( token);}static char* ITEM_checkString( char* string ){#define ITEM_STRINGLEN 64	if( strlen(string) >= ITEM_STRINGLEN )		print( "Over %d:[%s]\n",ITEM_STRINGLEN ,string );	return string;#undef ITEM_STRINGLEN}BOOL ITEM_readItemConfFile( char* filename ){	FILE*   f;	char    line[512];	char	token[64];	int     linenum=0;	int		i;	int		maxid=0, itemid;	int		ret;	int     intdata[ITEM_DATAINTNUM];	f = fopen(filename,"r");	if( f == NULL ){		print( "不能打開文件\n");		return FALSE;	}#ifdef _ITEMSET2_ITEM#define ITEM_ID_TOKEN_INDEX 17#else#ifdef _ITEM_MAXUSERNUM#define ITEM_ID_TOKEN_INDEX 15#endif#endif	while( fgets( line, sizeof( line ), f ) ){		linenum ++;		if( line[0] == '#' )continue;        /* comment */		if( line[0] == '\n' )continue;       /* none    */		chomp( line );		ret = getStringFromIndexWithDelim( line, ",", ITEM_ID_TOKEN_INDEX, token, sizeof(token));		if( ret == FALSE ){			fprint("文件秩序錯誤:%s 第:%d行\n",filename,linenum);			continue;		}		itemid = atoi( token);		if( itemid > maxid ){            maxid = itemid;        }	}	if( maxid <=0 ) {		print( "最大ID錯誤\n");		fclose(f);		return FALSE;	}		if( fseek( f, 0, SEEK_SET ) == -1 ){		fprint( "搜索錯誤\n" );		fclose(f);		return FALSE;	}#ifdef _IMPOROVE_ITEMTABLE	ITEM_tblen = linenum+1;	print( "物品數 %d - 大小:%d\n", linenum, sizeof(ITEM_table));	if( ITEM_TransformList != NULL )		freeMemory( ITEM_TransformList);	defitemtbls = (maxid+1);	ITEM_TransformList = allocateMemory( sizeof(sITEM_transformList) * defitemtbls );	for( i = 0 ; i < (maxid+1); i ++ ) {		ITEM_TransformList[i].use = FALSE;	}#else	print( "物品最大ID %d", maxid);	ITEM_tblen = maxid + 1;#endif#ifdef _ITEMTBL_STAIC	for( i = 0 ; i < 28000 ; i ++ ) {		ITEM_tbl[i].use = FALSE;	}#else	if( ITEM_tbl != NULL )		freeMemory( ITEM_tbl);	ITEM_tbl = allocateMemory( sizeof(ITEM_table) * ITEM_tblen );	if( ITEM_tbl == NULL ){		fprint( "無法分配內存 %d\n" , sizeof(ITEM_table)*ITEM_tblen );		fclose( f );		return FALSE;	}	for( i = 0 ; i < ITEM_tblen ; i ++ ) {		ITEM_tbl[i].use = FALSE;	}#endif	linenum = 0;	while( fgets( line, sizeof( line ), f ) ){		linenum ++;		if( line[0] == '#' )continue;        /* comment */		if( line[0] == '\n' )continue;       /* none    */		chomp( line );		replaceString( line, '\t' , ' ' );{		char    buf[256];		for( i = 0; i < strlen( line); i ++) {			if( line[i] != ' ' ) {				break;			}			strcpy( buf, &line[i]);		}		if( i != 0 ) {			strcpy( line, buf);		}}{		char    token[256];		int     ret;		int		readpos = 1;		BOOL	dataerror = FALSE;		ITEM_Item	itm;		ITEM_getDefaultItemSetting(&itm);		for( i=0 ; i< ITEM_DATAINTNUM ; i++ ) {			intdata[i] = 0;		}		itemid = 0;		for( i = 0 ; i < arraysizeof( ITEM_itemconfentries) ; i ++ ){			ret = getStringFromIndexWithDelim( line,",",readpos,token, sizeof(token));			if( ret == FALSE ) {#ifdef _Item_ReLifeAct				{					char buf[256];					char buf1[256];					sscanf( line,"%s,%s", buf, buf1);					print("[ITEM data Error] tbl=%d:%s line:%d[%s]\n",						readpos, ITEM_itemconfentries[i].entryname, linenum, line);				}#else				fprint("Syntax Error tki:%d file:%s line:%d[%s]\n",                       i , filename,linenum,line);#endif				dataerror = TRUE;				break;			}			if( readpos == ITEM_ID_TOKEN_INDEX )				itemid = atoi( token);			readpos ++;			if( strlen( token ) != 0 ) {				switch(ITEM_itemconfentries[i].type){				  case ITEM_INTENTRY:					itm.data[ITEM_itemconfentries[i].index] = atoi( token );					break;				  case ITEM_CHARENTRY:					strcpysafe( itm.string[ITEM_itemconfentries[i].index].string,								sizeof(itm.string[ITEM_itemconfentries[i].index].string),								token);					break;				  case ITEM_INTFUNC:				  {					int (*intfunction)(char*,int*, int );					intfunction = ITEM_itemconfentries[i].func;					itm.data[ITEM_itemconfentries[i].index]								= intfunction(line,									  		&intdata[ITEM_itemconfentries[i].index],readpos);					if( intfunction == ITEM_getRandomValue) readpos ++;				  }					break;				  case ITEM_CHARFUNC:				  {					char* (*charfunction)(char* );					charfunction = ITEM_itemconfentries[i].func;					strcpysafe( itm.string[ITEM_itemconfentries[i].index].string,								sizeof(itm.string[ITEM_itemconfentries[i].index].string),								charfunction( token));					break;				  }				  default:					break;				}			}		}		if( !dataerror) {#ifdef _IMPOROVE_ITEMTABLE			int ListNum = itemid;			itemid = totalitemtbls;#endif			if( itemid >= ITEM_tblen ){				print( "ITEM_tbl full:%d err !!\n" , itemid );			}else if( ITEM_tbl[itemid].use == TRUE ) {				fprint( "Duplicate Itemid %d.ignore\n" , itemid );			}else{				if( itm.string[ITEM_SECRETNAME].string[0] == '\0') {					fprint( "ERROR: ID %d item doesn't have secretname\n"							,itemid );					memcpy( &itm.string[ITEM_SECRETNAME].string,							&itm.string[ITEM_NAME].string,							sizeof(itm.string[ITEM_NAME].string));				}{				int	attacknum_min, attacknum_max;				attacknum_min = itm.data[ITEM_ATTACKNUM_MIN];				attacknum_max = itm.data[ITEM_ATTACKNUM_MAX];				if( attacknum_min == 0 ) attacknum_min = attacknum_max;				itm.data[ITEM_ATTACKNUM_MIN] = min( attacknum_min,													attacknum_max);				itm.data[ITEM_ATTACKNUM_MAX] = max( attacknum_min,													attacknum_max);}				memcpy( &ITEM_tbl[itemid].itm, &itm, sizeof(ITEM_Item));								ITEM_tbl[itemid].use = TRUE;				for( i=0 ; i< ITEM_DATAINTNUM ; i++ ){					ITEM_tbl[itemid].randomdata[i] = intdata[i];				}#ifdef _IMPOROVE_ITEMTABLE				if( ITEM_TransformList[ ListNum].use != 0 ){					ITEM_tbl[itemid].use = TRUE;					ITEM_TransformList[ ListNum].use = 0;				}else {					ITEM_TransformList[ ListNum].Si = totalitemtbls;					ITEM_TransformList[ ListNum].use = TRUE;				}				totalitemtbls++;#endif			}		}}	}	fclose(f);	return TRUE;}CHAR_EquipPlace ITEM_getEquipPlace( int charaindex, int itmid ){	ITEM_CATEGORY   cat;	cat = ITEM_getInt( itmid , ITEM_TYPE );	switch( cat ){	case ITEM_FIST:	case ITEM_SPEAR:	case ITEM_AXE:	case ITEM_CLUB://	case ITEM_SHIELD:	case ITEM_BOOMERANG:	case ITEM_BREAKTHROW:	case ITEM_BOUNDTHROW:#ifdef _PROFESSION_SKILL			// WON ADD 人物職業技能		{				int i=0;			// 勇士職業技能二刀流			for( i=0; i<CHAR_SKILLMAXHAVE; i++ ){				char *skill_name;				// 技能ID				int skillid = CHAR_getCharSkill( charaindex, i);				int Pskillid = PROFESSION_SKILL_getskillArray( skillid);						if( Pskillid <= 0 ) continue;				// 技能名稱				skill_name = PROFESSION_SKILL_getChar( Pskillid, PROFESSION_SKILL_FUNCNAME);				if( skill_name == NULL ) continue;					// 二刀流				if( (strcmp( skill_name , "PROFESSION_DUAL_WEAPON" )) == 0 ){					int get_item = BATTLE_GetWepon( charaindex );					if( get_item != ITEM_BOW ){						int right_hand = CHAR_getItemIndex( charaindex, CHAR_ARM );						int left_hand  = CHAR_getItemIndex( charaindex, CHAR_EQSHIELD );						if( right_hand < 0 )	return CHAR_ARM;						else{							if( left_hand < 0 )	return CHAR_EQSHIELD;							else				return CHAR_ARM;							}					}				} 			}		}#endif		return CHAR_ARM;		break;	case ITEM_HELM:		return CHAR_HEAD;		break;	case ITEM_ARMOUR:		return CHAR_BODY;		break;	case ITEM_BRACELET:	case ITEM_MUSIC:	case ITEM_NECKLACE:	case ITEM_RING:	case ITEM_BELT:	case ITEM_EARRING:	case ITEM_NOSERING:	case ITEM_AMULET:		return CHAR_DECORATION1;		break;	case ITEM_BOW:#ifdef _ITEM_EQUITSPACE		if( CHAR_getItemIndex( charaindex, CHAR_EQSHIELD ) > 0 )	return -1;#endif		return CHAR_ARM;		break;#ifdef _ITEM_EQUITSPACE	case ITEM_WBELT:		return CHAR_EQBELT;		break;	case ITEM_WSHIELD:		if( BATTLE_GetWepon( charaindex ) != ITEM_BOW )			return CHAR_EQSHIELD;		break;	case ITEM_WSHOES:		return CHAR_EQSHOES;		break;#endif#ifdef _EQUIT_NEWGLOVE	case ITEM_WGLOVE:		return CHAR_EQGLOVE;		break;#endif	default:		break;	}	return -1;}#define ITEMSTRINGBUFSIZ    512static char ITEM_itemStatusStringBuffer[ITEMSTRINGBUFSIZ];char*  ITEM_makeItemStatusString( int haveitemindex, int itemindex ){	char    escapename[256];	char    escapeeffectstring[256];	char    paramshow[256];	int     leaklevel;	int		itemcolor = 0;	int 	flg;	char	INGNAME0[4];	char	INGNAME1[4];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
自拍av一区二区三区| 欧美一区二区视频免费观看| 国产精品视频一区二区三区不卡| 国产呦萝稀缺另类资源| 精品久久久影院| 国产精品一二三四区| 国产精品女同互慰在线看| 成人晚上爱看视频| 亚洲品质自拍视频网站| 欧洲亚洲国产日韩| 日韩国产精品久久| 久久毛片高清国产| av综合在线播放| 亚洲成人免费看| 精品黑人一区二区三区久久| 国产成人午夜精品影院观看视频 | 国产成人亚洲综合a∨婷婷| 国产欧美va欧美不卡在线| 91在线国产观看| 午夜精品影院在线观看| 2020日本不卡一区二区视频| 成+人+亚洲+综合天堂| 亚洲一区二区三区小说| 制服丝袜亚洲色图| 成人免费视频网站在线观看| 亚洲一区免费观看| 久久久国产精华| 欧洲一区二区三区在线| 国产一区二区h| 亚洲国产视频一区二区| 久久久久久97三级| 欧美综合欧美视频| 美日韩一区二区三区| 国产精品美女久久久久aⅴ| 欧美性xxxxxxxx| 国产不卡免费视频| 亚洲高清一区二区三区| 国产亚洲午夜高清国产拍精品| 欧美在线免费观看亚洲| 国产麻豆欧美日韩一区| 亚洲国产wwwccc36天堂| 久久精品人人做人人爽97| 精品视频一区二区三区免费| 国产一区二区三区av电影| 亚洲综合网站在线观看| 日本一区二区在线不卡| 欧美一二三四区在线| 99久久精品国产精品久久| 久久国产综合精品| 亚洲成人免费视频| 亚洲女同ⅹxx女同tv| 国产亚洲午夜高清国产拍精品| 欧美日韩国产综合草草| av不卡免费在线观看| 麻豆91在线播放| 亚洲午夜免费视频| 成人免费一区二区三区在线观看| 精品福利av导航| 日韩一区二区不卡| 欧美亚洲综合在线| 91在线视频观看| 成人免费视频国产在线观看| 精品伊人久久久久7777人| 天天做天天摸天天爽国产一区| 亚洲婷婷综合色高清在线| 国产亚洲va综合人人澡精品 | 婷婷久久综合九色综合绿巨人| 国产精品另类一区| 久久免费视频色| 日韩视频一区二区三区在线播放| 欧美日韩视频第一区| 91精彩视频在线观看| 99国产欧美久久久精品| 高清不卡一区二区| 国产成人久久精品77777最新版本| 久久精品国产秦先生| 免费观看在线综合色| 日韩高清欧美激情| 日韩在线一区二区| 日韩精品乱码免费| 日本欧美一区二区三区| 日韩av中文在线观看| 天堂久久一区二区三区| 亚洲成人动漫在线免费观看| 亚洲午夜一二三区视频| 午夜一区二区三区在线观看| 亚洲香肠在线观看| 香蕉乱码成人久久天堂爱免费| 午夜精品在线视频一区| 日本欧美在线看| 久久er99热精品一区二区| 经典三级视频一区| 国产成人免费视频精品含羞草妖精| 国产99久久久国产精品潘金| 成人一区二区三区中文字幕| 99亚偷拍自图区亚洲| 在线中文字幕一区| 欧美日韩免费观看一区二区三区| 欧美日韩成人在线| 日韩欧美一区二区视频| 久久午夜电影网| 欧美极品aⅴ影院| 亚洲精品少妇30p| 婷婷中文字幕综合| 国产精品综合一区二区三区| www.欧美精品一二区| 欧美日韩在线观看一区二区 | 91福利社在线观看| 欧美日韩成人高清| 久久精品一区二区三区不卡| 综合分类小说区另类春色亚洲小说欧美| 亚洲精品视频在线看| 石原莉奈在线亚洲三区| 国产精品18久久久久| 99久久精品一区| 日韩欧美不卡一区| 亚洲三级在线免费观看| 日韩av网站在线观看| 国产不卡免费视频| 欧美美女直播网站| 国产精品丝袜久久久久久app| 亚洲一区av在线| 国产精品亚洲а∨天堂免在线| 91黄色免费网站| 久久九九99视频| 五月婷婷久久丁香| 国产经典欧美精品| 欧美日韩一二区| 欧美激情一区在线| 日本欧美久久久久免费播放网| 成人黄动漫网站免费app| 欧美日韩你懂的| 中文字幕在线播放不卡一区| 麻豆精品视频在线| 在线视频一区二区免费| 久久色.com| 日韩vs国产vs欧美| 91丨九色丨尤物| 久久影院电视剧免费观看| 亚洲亚洲人成综合网络| 成人视屏免费看| 欧美不卡视频一区| 午夜激情一区二区三区| 99热精品国产| 国产网站一区二区三区| 日韩电影免费在线| 欧亚洲嫩模精品一区三区| 国产精品天美传媒| 韩国女主播一区二区三区| 欧美区一区二区三区| 亚洲人成小说网站色在线| 丁香啪啪综合成人亚洲小说| 精品少妇一区二区三区日产乱码 | 日本欧美在线观看| 欧美视频第二页| 综合婷婷亚洲小说| 成人免费看视频| 久久久精品国产免大香伊| 久久精品国产一区二区| 91精品久久久久久久99蜜桃| 亚洲成人tv网| 538prom精品视频线放| 亚洲一区在线免费观看| 在线观看日韩一区| 亚洲男同1069视频| 91美女视频网站| 国产精品久久久久久久久免费相片| 激情成人综合网| 国产亚洲综合av| 国产福利一区二区三区在线视频| 精品国产免费人成电影在线观看四季| 日韩高清不卡在线| 欧美成人vr18sexvr| 激情都市一区二区| 伊人色综合久久天天人手人婷| 国产91丝袜在线播放0| 国产精品午夜在线观看| 成人爱爱电影网址| 国产精品私房写真福利视频| 91天堂素人约啪| 一区二区成人在线观看| 在线观看不卡一区| 亚洲高清免费在线| 欧美日韩二区三区| 蜜桃av噜噜一区二区三区小说| 日韩欧美你懂的| 国产成人av电影在线| 成人免费在线播放视频| 欧美在线你懂得| 蜜臀av一区二区| 国产日产亚洲精品系列| av亚洲精华国产精华精华 | 九九视频精品免费| 久久色视频免费观看| av成人老司机| 亚洲mv大片欧洲mv大片精品| 欧美大片在线观看一区二区| 国产二区国产一区在线观看| 亚洲天堂网中文字| 884aa四虎影成人精品一区|