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

📄 log.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 2 页
字号:
 			item, 			pet, 			vital, 			b_vital, 			str, 			b_str, 			tgh, 			b_tgh, 			dex, 			b_dex, 			tm1.tm_hour, tm1.tm_min 			 );}// LOG_TALKvoid LogTalk(	char *CharName, /* 平乓仿弁正   */	char *CharID,	int floor,		/* 甄   */	int x,	int y,	char *message){	struct  tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));	printl( LOG_TALK, "%2d:%2d\t%s\t%s\t%d_%d_%d\tT=%s" ,		tm1.tm_hour, tm1.tm_min,		(CharID==NULL) ? "(null)" :CharID,		(CharName==NULL) ? "(null)" :CharName,		floor, x, y,		message );}#ifdef _TEST_PETCREATEvoid backupTempLogFile( char *buf, char *entryname, int Num){  int     i;  char szBuffer[256];	//entry    for( i=0 ; i<arraysizeof(LogConf) ; i++ ){        if( ! LogConf[i].append )continue;		if( strcmp( LogConf[i].entry , entryname )	)			continue;		print("\n\n find entryname !!");		sprintf( szBuffer, "./log/%s.%d", buf, Num );		print("\n backup %s \n", szBuffer );		if( LogConf[i].f != NULL ){			fclose( LogConf[i].f );			rename( LogConf[i].filename, szBuffer );	        LogConf[i].f = fopen( LogConf[i].filename , "a" );		}else{			rename( LogConf[i].filename, szBuffer );	        LogConf[i].f = fopen( LogConf[i].filename , "a" );		}		break;    }}#endif/*------------------------------------------------------------ * 涩烂卞仄凶互匀化允屯化及白央奶伙毛田永弁失永皿 * 白央奶伙反弁夫□术今木化中卅仃木壬弁夫□术允月 * 娄醒  struct tm *  卅仄 * 忒曰袄 *  左□皿件仄凶白央奶伙及醒 ------------------------------------------------------------*/void backupAllLogFile( struct tm *ptm ){    int     i;    char szBuffer[256];    for( i=0 ; i<arraysizeof(LogConf) ; i++ ){        /* append 匹卅中手及反仄卅中 */        if( ! LogConf[i].append )continue;		/* 田永弁失永皿白央奶伙  综岳 */		sprintf( szBuffer, "%s.%4d%02d%02d", LogConf[i].filename,			ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday );		if( LogConf[i].f != NULL ){			/* 左□皿件今木化中凶日弁夫□术 */			fclose( LogConf[i].f );			/* 伉生□丞 */			rename( LogConf[i].filename, szBuffer );			/* 疯太左□皿件 */	        LogConf[i].f = fopen( LogConf[i].filename , "a" );		}else{			/* 伉生□丞 */			rename( LogConf[i].filename, szBuffer );			/* 疯太左□皿件 */	        LogConf[i].f = fopen( LogConf[i].filename , "a" );		}    }}/*------------------------------------------------------------** 云嗯毛胶丹*-------------------------------------------------------------*/// Syu ADD 新增家族个人银行存取Log (不含家族银行)void LogFamilyBankStone(        char *CharName,        char *CharId,         int Gold,     		int MyGold,        char *Key,            int floor,            int x,        int y,		int banksum){        struct  tm tm1;        memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));        printl( LOG_BANKSTONELOG, "%s:%s\t%d=%s [%d] CHAR_GOLD(%d),(%d,%d,%d)(%d:%d)" , CharId, CharName, Gold, Key,banksum,			MyGold, floor, x, y, tm1.tm_hour, tm1.tm_min );		print("\n%s:%s\t%d=%s [%d] CHAR_GOLD(%d),(%d,%d,%d)(%d:%d)\n" , CharId, CharName, Gold, Key,banksum,			MyGold, floor, x, y, tm1.tm_hour, tm1.tm_min );}void LogStone(				int TotalGold,        char *CharName, /* 平乓仿弁正   */        char *CharId, /* 交□扒□ID */        int Gold,               /* 嗯喊 */		int MyGold,        char *Key,              /* 平□伐□玉 */        int floor,              /* 甄   */        int x,        int y){        struct  tm tm1;        memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));				if(TotalGold == -1){					printl( LOG_STONE, "%s:%s\t%d=%s TOTAL_GOLD(%d),CHAR_GOLD(%d),(%d,%d,%d)(%d:%d)" , CharId, CharName, Gold, Key,TotalGold,					MyGold, floor, x, y, tm1.tm_hour, tm1.tm_min );				}				else{					printl( LOG_STONE, "%s:%s\t%d=%s CHAR_GOLD(%d),(%d,%d,%d)(%d:%d)" , CharId, CharName, Gold, Key,					MyGold, floor, x, y, tm1.tm_hour, tm1.tm_min );				}}//ttom 12/26/2000 print the kill logvoid LogKill(     char *CharName,     char *CharId,     char *CharPet_Item){     struct  tm tm1;     memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));     printl( LOG_KILL, "Name=%s:ID=%s\t%s (%d:%d)" ,CharName,CharId, CharPet_Item,     tm1.tm_hour, tm1.tm_min );}//ttom// CoolFish: Trade 2001/4/19void LogTrade(char *message){	struct  tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1)); 	printl( LOG_TRADE, "%s (%d:%d)" , message, tm1.tm_hour, tm1.tm_min );}// CoolFish: Family Popular 2001/9/12void LogFMPOP(char *message){	struct  tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));	 	printl( LOG_FMPOP, "%s (%d:%d)" , message, tm1.tm_hour, tm1.tm_min );}// Arminius 2001/6/14char hackmsg[HACK_TYPE_NUM][4096]=	{ "??? 什麽事也没有发生",	  "无法取得通讯协定码",	  "收到无法辨识的通讯协定码",	  "检查码错误",      "人物的HP为负",  	};void logHack(int fd, int errcode){	struct tm tm1;	char cdkey[4096];	char charname[4096];	unsigned long ip;	char ipstr[4096];		memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));	CONNECT_getCdkey( fd, cdkey, 4096);	CONNECT_getCharname( fd, charname, 4096);	ip=CONNECT_get_userip(fd);	sprintf(ipstr,"%d.%d.%d.%d",        	((unsigned char *)&ip)[0],        	((unsigned char *)&ip)[1],        	((unsigned char *)&ip)[2],        	((unsigned char *)&ip)[3]);        if ((errcode<0) || (errcode>=HACK_TYPE_NUM)) errcode=HACK_NOTHING;        printl( LOG_HACK, "(%d:%d) %s ip=%s cdkey=%s charname=%s",        	tm1.tm_hour, tm1.tm_min, hackmsg[errcode], ipstr, cdkey, charname);}// Nuke 0626void logSpeed(int fd){	struct tm tm1;	char cdkey[4096];	char charname[4096];	unsigned long ip;	char ipstr[4096];		memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));	CONNECT_getCdkey( fd, cdkey, 4096);	CONNECT_getCharname( fd, charname, 4096);	ip=CONNECT_get_userip(fd);	sprintf(ipstr,"%d.%d.%d.%d",        	((unsigned char *)&ip)[0],        	((unsigned char *)&ip)[1],        	((unsigned char *)&ip)[2],        	((unsigned char *)&ip)[3]);	printl( LOG_SPEED, "(%d:%d) ip=%s cdkey=%s charname=%s",        	tm1.tm_hour, tm1.tm_min, ipstr, cdkey, charname);}// Shan void LogGM(        char *CharName,    //角色名称        char *CharID,      //玩家ID        char *Message,     //指令内容        int  floor,        int  x,        int  y){  struct  tm tm1;                                                            memcpy(&tm1,localtime((time_t *)&NowTime.tv_sec),sizeof(tm1));  printl(LOG_GM,"%s\t%s\t%s\t(%d,%d,%d)\t(%d:%d)",         CharName,CharID,Message,floor,x,y,tm1.tm_hour,tm1.tm_min);    }// Robin 10/02void LogFamily(	char *FMName,	int fmindex,	char *charName,	char *charID,	char *keyWord,	char *data){	struct  tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));	// CoolFish: 2001/10/11 log time 	printl( LOG_FAMILY, "%s\t%d\t%s\t%s\t= %s, %s (%d:%d)", 		FMName, fmindex, charName, charID, 		keyWord, data, tm1.tm_hour, tm1.tm_min );}// Terry 2001/09/28#ifdef _SERVICEvoid LogService(        char *CharName, //角色名称        char *CharID,   //玩家ID        int  itemid,    //物品ID        char *Key,      //说明        int floor,        int x,        int y){  struct  tm tm1;                                                            memcpy(&tm1,localtime((time_t *)&NowTime.tv_sec),sizeof(tm1));  printl(LOG_SERVICE,"%s\t%s\t%d=%s,(%d,%d,%d)(%d:%d)",         CharName,CharID,itemid,Key,floor,x,y,tm1.tm_hour,tm1.tm_min);  print("%s\t%s\t%d=%s,(%d,%d,%d)(%d:%d)",         CharName,CharID,itemid,Key,floor,x,y,tm1.tm_hour,tm1.tm_min);}#endif#ifdef _TEST_PETCREATEvoid LogCreatPet(	char *PetName, int petid, int lv, int hp,	int char_vital, int char_str, int char_tgh, int char_dex,	int vital, int str, int tgh, int dex,	int fixstr, int fixtgh, int fixdex,	int lvup, int petrank,	int flg	)	{  struct  tm tm1;  memcpy(&tm1,localtime((time_t *)&NowTime.tv_sec),sizeof(tm1));  if( flg == 0 )	{	printl(LOG_CREATPET,"%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,power,%d,%d,%d",		PetName, petid, lv, hp, char_vital/100, char_str/100, char_tgh/100, char_dex/100,		vital, str, tgh, dex, lvup, petrank,fixstr,fixtgh,fixdex);  }else	{	printl(LOG_AVGCREATPET,"%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,power,%d,%d,%d",		PetName, petid, lv, hp, char_vital/100, char_str/100, char_tgh/100, char_dex/100,		vital, str, tgh, dex, lvup, petrank,fixstr,fixtgh,fixdex);  }}#endif#ifdef _GAMBLE_ROULETTEvoid LogGamble(        char *CharName, //角色名称        char *CharID,   //玩家ID        char *Key,      //说明        int floor,        int x,        int y,		int player_stone,	//所拥有金钱		int Gamble_stone,	//下注本金		int get_stone,		//获得		int Gamble_num,		int flg	//flg = 1 玩家 2 庄家){  struct  tm tm1;  memcpy(&tm1,localtime((time_t *)&NowTime.tv_sec),sizeof(tm1));  if( flg == 1 )	{	printl(LOG_GAMBLE,"%s\t%s\t TYPE:%s  <<P_STONE:%9d,G_STONE:%9d,GET:%9d >>\t(%d,%d,%d)-(%d:%d) GAMBLENUM=%d",         CharName,CharID,Key, player_stone, Gamble_stone, get_stone, floor,x,y,tm1.tm_hour,tm1.tm_min, Gamble_num);  }else	if( flg == 2 )	{	printl(LOG_GAMBLE,"%s\tROULETTE MASTER\t TYPE:%s  <<MASTER_STONE:%24d >>\t(%d,%d,%d)-(%d:%d)",         CharName,Key, player_stone, floor,x,y,tm1.tm_hour,tm1.tm_min);  }}#endifvoid LogLogin(        char *CharID,   //玩家ID        char *CharName, //角色名称		int  saveIndex,		char *ipadress){	struct  tm tm1;                                                          	memcpy(&tm1,localtime((time_t *)&NowTime.tv_sec),sizeof(tm1));	printl(LOG_LOGIN,"%s\t%s\ti=%d\t%s\t(%d:%d)",			CharID,CharName,saveIndex,ipadress,tm1.tm_hour,tm1.tm_min);}void warplog_to_file(){	int i =0;	char outbuf[128];	FILE *f;	f = fopen("log/warp1.log" ,"w" );	if( !f ) return;	for( i=0; i<MAXMAPNUM; i++) {		if( warplog[i].floor <= 0 )	continue;		sprintf( outbuf, "%6d,%10d,%10d\n", warplog[i].floor, warplog[i].incount, warplog[i].outcount  );		fputs( outbuf, f);	}	fclose(f);		f = fopen("log/warp2.log" ,"w" );	if( !f ) return;	for( i=0; i<MAXMAPLINK; i++) {		if( warpCount[i].floor1 <= 0 )	continue;		sprintf( outbuf, "%6d,%6d,%10d\n", warpCount[i].floor1, warpCount[i].floor2, warpCount[i].count  );		fputs( outbuf, f);	}	fclose(f);	}void warplog_from_file(){	int i =0;	char outbuf[128];	FILE *f;		print("warplog_from_file ");	f = fopen("log/warp1.log" ,"r" );	if( !f ) return;	while( fgets( outbuf, sizeof(outbuf), f) && i < MAXMAPNUM ) {				if( !sscanf( outbuf, "%d,%d,%d",			&warplog[i].floor, &warplog[i].incount, &warplog[i].outcount ) ) {						continue;					}		//print(" %d", warplog[i].floor);		i++;	}	print(" read_count:%d\n", i);		fclose( f );	f = fopen("log/warp2.log" ,"r" );	if( !f ) return;	i = 0;	while( fgets( outbuf, sizeof(outbuf), f) && i < MAXMAPLINK ) {				if( !sscanf( outbuf, "%d,%d,%d",			&warpCount[i].floor1, &warpCount[i].floor2, &warpCount[i].count ) ) {						continue;					}		i++;	}	print(" read_count2:%d\n", i);		fclose( f );}void LogPetFeed( 	char * CharName, char *CharID, char *PetName, int petindex,	int PetLv, char *Key,int floor, int x, int y, char *ucode)	{	struct tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1)); 	printl( LOG_PET, "%s\t%s\t%s:%d   蛋=%s (%d,%d,%d)(%d:%d) %s " , 		CharName, CharID, PetName, PetLv, Key, floor, x, y, tm1.tm_hour, tm1.tm_min, ucode);}#ifdef _ANGEL_SUMMONvoid LogAngel( char *msg) {	struct tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1)); 	printl( LOG_ANGEL, "%s (%d:%d) ", msg, tm1.tm_hour, tm1.tm_min);}#endif#ifdef _LOG_OTHERvoid LogOther(	char *CharName,	char *CharID,	char *message){	struct  tm tm1;	memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1)); 	printl( LOG_OTHER, "%s\t%s\t(%d:%d)\t%s" , CharName, CharID, tm1.tm_hour, tm1.tm_min, message);}#endif

⌨️ 快捷键说明

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