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

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

?? char.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:
					}				}				else {					fclose( fp_new);				}			}						// 移倉庫檔			makeCharPoolItemFileName( id, fn_new, sizeof(fn_new));			fp_new = fopen( fn_new, "r");			if( fp_new == NULL ) {				makeSleepCharPoolItemFileName( id, fn_old, sizeof(fn_old));				fp_old = fopen( fn_old, "r");				if( fp_old != NULL ) {					fclose( fp_old);					rename( fn_old, fn_new); // 搬移					//filecopy( fn_old, fn_new); // 復制					log(" 移檔_%s ", fn_new);				}			}			else {				fclose( fp_new);			}					}#endif		#ifdef _DEATH_FAMILY_LOGIN_CHECK//無法讀取人物資料		if( loadCharNameAndOption( id , listbuf,sizeof(listbuf)) == 0 ){			saacproto_ACCharList_send( ti , FAILED , "locked" , mesgid );			return;		}#endif		#ifdef _DEATH_CONTEND //無法讀取人物資料		if( loadCharNameAndOption( id , listbuf,sizeof(listbuf)) == 0 ){			saacproto_ACCharList_send( ti , FAILED , "locked" , mesgid );			return;		}#else    loadCharNameAndOption( id , listbuf,sizeof(listbuf));#endif    // Arminius    saacproto_ACCharList_send( ti ,  SUCCESSFUL , listbuf , mesgid);    total_ok_charlist++;#endif}void charDeleteCallback( int ti , int auth ,												char *c0 , char *c1 , char *c2 , char *c3 ,												char *c4 , int i0 , int i1 ){	int charindex;	char *id = c0;	char *charname = c2;	int mesgid = i0;	struct tm *now;	time_t timenow;	char logfile[128];		if( auth != 0 ){		char data[100];		snprintf( data, sizeof( data ) , "%d" , auth );		saacproto_ACCharDelete_send( ti , FAILED , data, mesgid );		return;	}        			charindex = getCharIndexByName( id , charname );	if( charindex < 0 ){		saacproto_ACCharDelete_send( ti , FAILED , "nochar",  mesgid );		return;	}   	if( unlinkCharFile( id , charindex ) < 0 ){		saacproto_ACCharDelete_send( ti , FAILED , "fileI/O" , mesgid);		return;	}#ifdef	__FAMILY	// CoolFish: Family 2001/6/12	{		int index = 0, fmindex = 0, fmcharindex = 0;		char fmname[32];		index = ACgetFMInfoFromChar(fmname, &fmindex, charname, id, &fmcharindex);		if (index != -1)		{			if (fmcharindex == 0)			{#ifdef _FMVER21				if (ChangeFMLeader(index, fmname, fmindex) >= 0)				{					if (ACDelFM(index, fmname, fmindex) >= 0)						log("ACDelFM index:%d fmname:%s fmindex:%d charname:%s, charid:%s, charindex:%d\n",						index, fmname, fmindex, charname, id, fmcharindex);				}				log("ChangeFMLeader_3 index:%d fmname:%s fmindex:%d\n", index, fmname, fmindex);#else				if (ACDelFM(index, fmname, fmindex) >= 0)					log("ACDelFM index:%d fmname:%s fmindex:%d charname:%s, charid:%s, charindex:%d\n",					index, fmname, fmindex, charname, id, fmcharindex);#endif			}			else 			{#ifdef _FMVER21				if (ACMemberLeaveFM(index, fmname, fmindex, charname, 0, 0, fmcharindex) >= 0)					log("ACMemberLeaveFM index:%d fmname:%s fmindex:%d charname:%s, charid:%s, charindex:%d\n",					index, fmname, fmindex, charname, id, fmcharindex);#else				if (ACMemberLeaveFM(index, fmname, fmindex, charname, 0, fmcharindex) >= 0)					log("ACMemberLeaveFM index:%d fmname:%s fmindex:%d charname:%s, charid:%s, charindex:%d\n",					index, fmname, fmindex, charname, id, fmcharindex);#endif			}		}	}#endif    	// Spock 2000/12/6	time( &timenow );	now = localtime( &timenow );	sprintf( logfile , "log/chardel/%04d%02d%02d.log" ,		now->tm_year + 1900 , now->tm_mon + 1 , now->tm_mday );	LOGBASE( logfile , "%04d/%02d/%02d %02d:%02d:%02d id:[%s] char:[%s] index:[%d]\n" ,		now->tm_year + 1900 , now->tm_mon + 1 , now->tm_mday ,		now->tm_hour , now->tm_min , now->tm_sec ,		id , charname , charindex );	// Spock end	USERLOG( id , "chardelete: successful\n" );	saacproto_ACCharDelete_send( ti ,  SUCCESSFUL , "ok" , mesgid);}void dummyCallback( int ti , int auth ,									 char *c0 , char *c1 , char *c2 , char *c3 ,									 char *c4 , int i0 , int i1 ){	return;}static void getCharNameFromString(char*str ,char *out ){	int c;		out[0]='\0';	for(c=0;;c++){		if( IS_2BYTEWORD( str[c] ) ){			out[c] = str[c];			c ++ ;	// 戚及  儂尺			out[c] = str[c];			continue;		}				out[c] = str[c];		if( str[c] == '\0' )break;				if( str[c] == SPACE ){			out[c] = '\0';			break;		}	}}static void getCharOptionFromString( char *str , char *out ){	int c;	int outc = 0;	out[outc] = '\0';	for(c=0;;c++){		if( str[c]=='\0')break;		if( IS_2BYTEWORD( str[c] ) ){			c++;			if( str[c] == '\0' )break;	// 公及  儂互允匹卞NULL卅日蔽  			continue;		}				if( str[c]== SPACE ){			c++;			for(;;c++){								if( str[c] == '\0' ){	// 蔽  分勻兇日 NULL   木化蔽歹月					out[outc] = '\0';					break;					}								// 仇仇手ㄡ田奶玄  儂及ㄠ田奶玄  卅日手丹域田奶玄戊疋□允月				//----   For 2Byte Code ----				if( IS_2BYTEWORD( str[c] ) ){					out[outc++] = str[c++];		// ㄠ田奶玄  戊疋□					out[outc++] = str[c];		// ㄡ田奶玄  戊疋□					if( str[c] == '\0' )break;	// 公及  儂互允匹卞NULL卅日蔽  					continue;				}								// 騷橘  儂反ㄠ田奶玄戊疋□				out[outc] = str[c];			// 引內戊疋□				if( str[c] == '\0' )break;	// 蔽  分勻兇日蔽歹月								if( str[c] == SPACE ){					out[outc] = '\0';					break;				}				outc++;			}			return;		}	}}void getCharInfoFromString( char *str , char *out ){	int c=0,outc=0;	int space_counter=0;		out[outc] = '\0';	for(c=0;;c++){		if( str[c]=='\0')break;		if( IS_2BYTEWORD( str[c] ) ){			c++;			continue;		}else			if( str[c]== SPACE ){				space_counter++;			}			if( space_counter==2 && str[c]== SPACE ){				c++;				for(;;c++){					if( IS_2BYTEWORD( str[c] ) ){						out[outc++] = str[c++];						out[outc++] = str[c];						if( str[c] == '\0' ){							out[outc] = '\0';							break;						}						continue;					}										out[outc] = str[c];					if( str[c] == '\0' )break;					if( str[c] == SPACE ){						out[outc] = '\0';						break;					}					outc++;				}				return;			}	}}static void makeCharFileName( char *id,char *output, int outlen, int num){	char body[1024];	if ( strlen( id) < 1)return;		snprintf(body , sizeof(body ) , "%s.%d.char" , id , num );	makeDirFilename(output , outlen, chardir , getHash(id) ,body);}#ifdef _SLEEP_CHAR // 取得非活躍人物檔名static void makeSleepCharFileName( char *id,char *output, int outlen, int num){	char body[1024];	if ( strlen( id) < 1)return;		snprintf(body , sizeof(body ) , "%s.%d.char" , id , num );	makeDirFilename(output , outlen, sleepchardir , getHash(id) ,body);}#endifint loadCharNameAndOption( char *id , char *output , int outlen){	char chbuf[MAXCHAR_PER_USER][CHARDATASIZE];	char namework[CHARDATASIZE];	char optionwork[CHARDATASIZE];	char nm_work[CHARDATASIZE];		int i,count=0;	int so_far_bytes = 0;	output[0] = 0;		for(i=0;i<MAXCHAR_PER_USER;i++){		int l;		char delim[2];				chbuf[i][0] = 0;		loadCharOne( id , i , chbuf[i] , sizeof( chbuf[i] ));				getCharNameFromString( chbuf[i] , namework );		getCharOptionFromString( chbuf[i] , optionwork );				if( chbuf[i][0] == 0 )continue;		if( strlen( output ) > 0 ){			delim[0] = SPACE;			delim[1] = 0;		} else {			delim[0] = 0;		}				snprintf( nm_work , sizeof( nm_work ),			"%s%s|%s" , delim,namework , optionwork );		l = strlen( nm_work );				if( ( so_far_bytes + l ) < outlen ){			strcat( output , nm_work );			so_far_bytes += l;			count++;		}	}		return count;}#ifdef _CHECK_BADFILESint backupBadcharfile( char *filename, char *cdkey, int num){	char file1[256],file2[256];	char userpath[256];	FILE *fp;		log("backupBadcharfile( %s) -%s.%d-%s\n", filename, cdkey, num, userpath);	sprintf( userpath , "%s.%d.char" , cdkey , num );	sprintf( file1, "char/0x%x/%s", getHash(cdkey) & 0xff, userpath);	sprintf( file2, "badchar/%s", userpath);	{		char buf[1024];		int f;		bzero(buf,sizeof(buf));		f=open( file1, O_RDONLY);		if ( f <= 0 ){			log( "Can't open %s..\n", file1);			return 1;		}		lseek( f, -4, SEEK_END);		read(f,buf,4);		close(f);		if ((buf[2]=='\\')&&(buf[3]=='n')&&			(buf[0]=='\\')&&(buf[1]=='z')){			return 1;		}	}	if (mkdir("badchar", 0755) == 0)		log("create %s\n", "badchar");	sprintf( file2, "./badchar/%s", filename);	fp = fopen( file2, "a+");	if( fp == NULL ){				log("create file:%s error !!\n", file1);		return -1;	}	fprintf( fp, "%s %s\n", cdkey, file1);	fclose( fp);		log("backup badcharfile:%s..\n", userpath);	return -1;}#endifint loadCharOne( char *id , int num, char *output , int outlen ){	char fn[1024];	FILE *fp;	char c_temp,*c_ptr;	c_ptr=output;		makeCharFileName( id , fn , sizeof(fn),num );    	fp  = fopen( fn , "r" );	if( fp == NULL ){		return -1;	}		do{		c_temp = fgetc(fp);		*c_ptr=c_temp;		c_ptr++;	}while(c_temp != EOF);	*c_ptr='\0';		if( output[0]=='|' && output[1]=='|' ){		return -1;	}	fclose(fp);#ifdef _CHECK_BADFILES	if( backupBadcharfile( "badfilelist.txt", id, num) < 0 ){		return -1;	}#endif	return 0;}int saveCharOne( char *id , int num , char *input ){	char fn[1024];	FILE *fp;	char *strp;	char *strp1;     // Won 修正 hp 為負的人		makeCharFileName( id , fn , sizeof(fn),num );	fp= fopen( fn , "w" );	if( fp == NULL ) {		log( "save error 01: %d",errno );//Change add errno		return -1;	}		// Won 修正 hp 為負的人	if ((strp=strstr(input,"\\nhp=-"))!=NULL) {		strp1=strstr(input,"\\nmp="); 		*(strp+5)='1';		strcpy((strp+6), strp1);  	}		// Arminius	if ((strp=strstr(input,"\\nhp=0\\n"))!=NULL) *(strp+5)='1';		fprintf( fp , "%s" , input );	fclose(fp);	#if 0 //_SLEEP_CHAR // 舊檔也存	{		char fn1[1024], fn2[1024];		makeSleepCharFileName( id , fn1 , sizeof(fn1),num );		fp = fopen( fn1 , "w" );		if( fp != NULL ) {			fprintf( fp , "%s" , input );			fclose(fp);		}				// 復制新倉庫檔到舊檔		makeCharPoolItemFileName( id, fn1, sizeof(fn));		makeSleepCharPoolItemFileName( id, fn2, sizeof(fn));		filecopy( fn1, fn2);	}#endif#ifdef _SQL_BACKGROUND	sasql_update(id,fn);	sasql_online(id,NULL);#endif	log( "寫入 %s 檔案文件:%s\n",id , fn );	return 0;	}static int makeSaveCharString( char *out , int outlen ,															char *nm , char *opt , char *info ){	char nmwork[CHARDATASIZE];	char optwork[CHARDATASIZE];	char infowork[CHARDATASIZE];	char outwork[CHARDATASIZE];	char *nmwork_p , *optwork_p , *infowork_p;	int l;		/* 戊疋□仄化 */		strncpy( nmwork , nm , sizeof( nmwork ));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美在线高清| 色婷婷久久综合| 国产日韩欧美在线一区| 国产一区二区三区在线观看免费视频| 欧美久久久久久久久| 午夜视频久久久久久| 在线电影一区二区三区| 蜜桃av一区二区三区| 久久青草欧美一区二区三区| 成人污污视频在线观看| 亚洲欧洲国产日韩| 色婷婷精品大在线视频| 亚洲电影一级片| 欧美电影免费提供在线观看| 国产不卡视频在线播放| 亚洲人成在线播放网站岛国| 欧美综合视频在线观看| 九色|91porny| 亚洲欧洲另类国产综合| 91.麻豆视频| 国产不卡在线视频| 午夜欧美大尺度福利影院在线看| 日韩精品中午字幕| caoporen国产精品视频| 亚洲国产乱码最新视频| 2021久久国产精品不只是精品| 成人影视亚洲图片在线| 亚洲国产精品久久不卡毛片| 久久这里都是精品| 欧美又粗又大又爽| 国产一区二区伦理片| 亚洲男人的天堂在线观看| 欧美成人女星排名| 色哟哟国产精品免费观看| 麻豆久久久久久久| 一区二区三区在线观看欧美| 日韩精品一区二区在线| 91碰在线视频| 国产美女精品一区二区三区| 亚洲在线观看免费视频| 久久先锋影音av| 欧美三级日韩在线| 成人丝袜18视频在线观看| 免费在线观看一区| 一区二区三区欧美亚洲| 国产亚洲欧美色| 91精品国产aⅴ一区二区| 91香蕉视频黄| 国产传媒日韩欧美成人| 免费人成在线不卡| 一区二区成人在线| 国产精品传媒视频| 久久精品水蜜桃av综合天堂| 91精品国产91久久综合桃花| 色av综合在线| 成人18精品视频| 狠狠色丁香久久婷婷综合丁香| 婷婷开心久久网| 亚洲一二三区在线观看| 综合久久综合久久| 国产精品天干天干在线综合| 日韩免费在线观看| 欧美精品免费视频| 欧美日韩一本到| 色先锋久久av资源部| av亚洲精华国产精华| 国产精品中文字幕一区二区三区| 免费在线观看精品| 日韩国产欧美三级| 天天操天天干天天综合网| 亚洲综合色丁香婷婷六月图片| 亚洲特黄一级片| 亚洲三级在线播放| 亚洲同性gay激情无套| 国产精品欧美极品| 国产精品伦一区二区三级视频| 国产区在线观看成人精品| 久久久久久亚洲综合影院红桃 | 成人av在线资源网站| 国产乱码精品一区二区三区忘忧草 | 欧美色视频在线观看| 色婷婷久久久综合中文字幕| 日本精品一区二区三区高清 | 久久久久久久网| 精品国产伦一区二区三区免费| 欧美人狂配大交3d怪物一区| 欧美日韩免费视频| 欧美一区二区福利在线| 日韩欧美高清在线| 久久亚洲二区三区| 国产精品护士白丝一区av| 中文字幕中文乱码欧美一区二区| 国产精品成人一区二区三区夜夜夜 | 欧美在线观看一区| 欧美日韩激情一区二区三区| 欧美日韩国产a| 日韩午夜激情视频| 2020国产精品| 日韩码欧中文字| 三级成人在线视频| 国产乱码一区二区三区| 一本色道综合亚洲| 欧美电影一区二区| 国产精品水嫩水嫩| 亚洲一区在线观看网站| 麻豆成人久久精品二区三区小说| 国产一区二区在线视频| 91亚洲精品久久久蜜桃网站 | 欧美va天堂va视频va在线| 久久综合狠狠综合久久综合88| 国产精品久久久久影院色老大| 亚洲激情中文1区| 久久99久久精品欧美| jiyouzz国产精品久久| 欧美精品日日鲁夜夜添| 国产日韩精品视频一区| 亚洲综合免费观看高清完整版| 天堂午夜影视日韩欧美一区二区| 韩国成人在线视频| 色8久久精品久久久久久蜜| 91精品国产色综合久久不卡蜜臀| 国产亚洲欧美日韩在线一区| 亚洲丶国产丶欧美一区二区三区| 国产精品一区免费视频| 欧美伊人久久久久久久久影院| 精品国产污网站| 亚洲国产精品一区二区久久恐怖片 | 蜜臀精品久久久久久蜜臀| 成人美女在线观看| 日韩一区二区三免费高清| 国产日韩欧美高清在线| 男男视频亚洲欧美| 91免费看片在线观看| 久久你懂得1024| 日韩主播视频在线| gogo大胆日本视频一区| 久久久高清一区二区三区| 日韩成人精品在线观看| 一本大道久久a久久精品综合| 久久亚洲春色中文字幕久久久| 日韩国产欧美在线视频| 欧美性淫爽ww久久久久无| 国产片一区二区三区| 蜜桃精品视频在线| 3atv一区二区三区| 亚洲一区欧美一区| 99久久精品国产一区| 国产亚洲美州欧州综合国| 蜜桃av噜噜一区二区三区小说| 91在线精品一区二区| 国产精品视频观看| 国产精品1区二区.| 精品国产欧美一区二区| 美国十次综合导航| 日韩一级免费观看| 日日摸夜夜添夜夜添亚洲女人| 欧洲色大大久久| 亚洲综合色丁香婷婷六月图片| 色一情一乱一乱一91av| 亚洲人123区| 91美女片黄在线观看91美女| 中文一区二区完整视频在线观看 | 99在线精品视频| 久久久精品人体av艺术| 国产一区二区毛片| 欧美国产视频在线| 成人午夜视频网站| 国产精品伦理在线| 不卡的av电影在线观看| 国产精品久久久久7777按摩| 成人国产电影网| 中文字幕一区av| 99精品久久免费看蜜臀剧情介绍| 亚洲视频在线一区观看| 一本色道久久综合亚洲精品按摩| 一区二区视频在线| 欧美日本一区二区三区四区| 五月综合激情网| 日韩天堂在线观看| 经典三级视频一区| 国产香蕉久久精品综合网| 成人18视频在线播放| 一区二区三区四区激情 | 日韩美女在线视频| 国产成人在线看| 亚洲欧美电影一区二区| 欧美亚洲国产怡红院影院| 污片在线观看一区二区| 精品不卡在线视频| 99久久久国产精品免费蜜臀| 亚洲综合免费观看高清完整版在线 | 日韩手机在线导航| 国产成人精品亚洲日本在线桃色| 综合激情成人伊人| 欧美日韩国产免费一区二区| 久久99精品国产麻豆不卡| 国产精品素人视频| 欧美日韩成人一区二区| 国产综合一区二区| 亚洲精品水蜜桃|