📄 deathcontend.c
字号:
return -1; } while( fgets( line, sizeof( line), fp) ) { if( strlen( line) <= 0 || line[0] == '#' ) continue; if( count >= maxteam )break; del_rn( line); log( "#"); easyGetTokenFromBuf( line, '|', 1, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ){ fprintf( efp,"TEAMNUM err:%s", line); continue; } PkTeamList[count].teamnum = atoi(buf1); if( PkTeamList[count].teamnum < 0 ) continue; easyGetTokenFromBuf( line, '|', 2, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; sprintf( PkTeamList[count].pathdir, "%s", buf1); easyGetTokenFromBuf( line, '|', 3, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ){ if( strlen( buf1) <= 0 ){ fprintf( efp,"TEAMNAME err:%s", line); continue; } continue; } sprintf( PkTeamList[count].teamname, "%s", buf1); easyGetTokenFromBuf( line, '|', 4, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ){ if( strlen( buf1) <= 0 ){ fprintf( efp,"MASTER err:%s", line); continue; } continue; } sprintf( PkTeamList[count].leadercdkey, "%s", buf1); easyGetTokenFromBuf( line, '|', 5, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].win = atoi(buf1); easyGetTokenFromBuf( line, '|', 6, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].lost = atoi(buf1); easyGetTokenFromBuf( line, '|', 7, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].battleplay = atoi(buf1); easyGetTokenFromBuf( line, '|', 8, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].score = atoi(buf1); easyGetTokenFromBuf( line, '|', 9, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].inside = atoi(buf1); easyGetTokenFromBuf( line, '|', 10, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; PkTeamList[count].updata = atoi(buf1); { FILE *ffp=NULL; char teamfilename[256], bufarg[256], buf2[256]; int readfirst = 1, k, bnum=0; sprintf( teamfilename, "%s/%s/team_%d.txt", "pklist", PkTeamList[count].pathdir, PkTeamList[count].teamnum ); if( (ffp=fopen( teamfilename, "r") ) == NULL ) continue; while( fgets( bufarg, sizeof( bufarg), ffp) ) { if( strlen( bufarg) <= 0 || bufarg[0] == '#' ) continue; del_rn( bufarg); if( readfirst == 1 ){ for( k=0; k<MAXTEAMMANNUM; k++){ easyGetTokenFromBuf( bufarg, '|', k+1, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; easyGetTokenFromBuf( buf1, ',', 1, buf2, sizeof( buf2 )); if( strlen( buf2) <= 0 ){ if( strlen( buf1) <= 0 ){ fprintf( efp,"TEAMMAN err:%s", line); continue; } continue; } sprintf( PkTeamList[count].MyTeamMans[k].cdkey, "%s", buf2); easyGetTokenFromBuf( buf1, ',', 2, buf2, sizeof( buf2 )); if( strlen( buf2) <= 0 ){ if( strlen( buf1) <= 0 ){ fprintf( efp,"TEAMMAN err:%s", line); continue; } continue; } sprintf( PkTeamList[count].MyTeamMans[k].name, "%s", buf2); PkTeamList[count].MyTeamMans[k].use = 1; } readfirst = 0; continue; } if( bnum >= MAXBATTLENUM )break;//超过战斗场次 for( k=0; k<10; k++){ easyGetTokenFromBuf( bufarg, '|', k+1, buf1, sizeof( buf1 )); if( strlen( buf1) <= 0 ) continue; easyGetTokenFromBuf( buf1, ',', 1, buf2, sizeof( buf2 )); if( strlen( buf2) <= 0 ) continue; PkTeamList[count].BHistory[bnum].teamnum = atoi( buf2); easyGetTokenFromBuf( buf1, ',', 2, buf2, sizeof( buf2 )); if( strlen( buf2) <= 0 ) continue; PkTeamList[count].BHistory[bnum].flg = atoi( buf2); PkTeamList[count].BHistory[bnum].use = 1; bnum++; } } fclose( ffp); } PkTeamList[count].use = 1; count++; } fclose( efp); fclose( fp); { int k; log( "\n"); for( i=0; i<maxteam; i++ ){ if( PkTeamList[i].use != 1 ) continue; log("PkTeamList[%d] [%d|%d|%s|%s|%s|%d|%d|%d|%d|%d] \n", i, PkTeamList[i].use, PkTeamList[i].teamnum, PkTeamList[i].teamname, PkTeamList[i].pathdir, PkTeamList[i].leadercdkey, PkTeamList[i].win, PkTeamList[i].lost, PkTeamList[i].battleplay, PkTeamList[i].score, PkTeamList[i].inside ); log( "\n"); for( k=0; k<MAXTEAMMANNUM; k++){ if( PkTeamList[i].MyTeamMans[k].use == 0 ) continue; log( "[%s,%s]," , PkTeamList[i].MyTeamMans[k].cdkey, PkTeamList[i].MyTeamMans[k].name ); } log( "\n"); for( k=0; k<MAXBATTLENUM; k++){ if( PkTeamList[i].BHistory[k].use == 0 ) continue; if( k!=0 && k%10 == 0 ) log( "\n"); log( "%d,%d|" , PkTeamList[i].BHistory[k].teamnum, PkTeamList[i].BHistory[k].flg ); } log( "\n"); } log( "\n"); } return 1;}//Backup档int PKLIST_BackupPkTeamListfromFile( char *dirpath, char *listfilename ){ char filename[256]; FILE *fp = NULL; int i; if( PkTeamList == NULL ) return -1; sprintf( filename, "%s/%s", dirpath, listfilename); log( "BackupPkTeamListfromFile( file:%s) \n", filename); remove( filename); if( (fp = fopen( filename, "w+" )) == NULL ){ log( "can't Backup file:%s !\n", filename); return -1; } for( i=0; i<maxteam; i++ ){ if( PkTeamList[i].use != 1 ) continue; fprintf( fp, "%d|%s|%s|%s|%d|%d|%d|%d|%d|%d\n", PkTeamList[i].teamnum, PkTeamList[i].pathdir, PkTeamList[i].teamname, PkTeamList[i].leadercdkey, PkTeamList[i].win, PkTeamList[i].lost, PkTeamList[i].battleplay, PkTeamList[i].score, PkTeamList[i].inside, PkTeamList[i].updata ); { FILE *ffp=NULL; char teamfilename[256], bufarg[512], buf2[256]; int k; sprintf( teamfilename, "%s/%s/team_%d.txt", "pklist", PkTeamList[i].pathdir, PkTeamList[i].teamnum ); remove( teamfilename); if( (ffp=fopen( teamfilename, "w+") ) == NULL ){ log( "can't Backup file:%s !\n", filename); continue; } memset( bufarg, 0, sizeof( bufarg)); for( k=0; k<MAXTEAMMANNUM; k++){ if( PkTeamList[i].MyTeamMans[k].use == 0 ) continue;// fprintf( ffp, "%s,%s\n",// PkTeamList[i].MyTeamMans[k].cdkey, PkTeamList[i].MyTeamMans[k].name); if( k!=0 ) strcat( bufarg, "|"); sprintf( buf2, "%s,%s", PkTeamList[i].MyTeamMans[k].cdkey, PkTeamList[i].MyTeamMans[k].name); strcat( bufarg, buf2); } fprintf( ffp, "%s\n", bufarg); memset( bufarg, 0, sizeof( bufarg)); for( k=0; k<MAXBATTLENUM; k++){ if( PkTeamList[i].BHistory[k].use == 0 ) continue; if( k!=0 ){ if( k%10 == 0 ){ fprintf( ffp, "%s\n", bufarg); memset( bufarg, 0, sizeof( bufarg)); }else{ strcat( bufarg, "|"); } } sprintf( buf2, "%d,%d" , PkTeamList[i].BHistory[k].teamnum, PkTeamList[i].BHistory[k].flg ); strcat( bufarg, buf2); // <-- check overflow!!! } if( strlen(bufarg) > 0 ) fprintf( ffp, "%s\n", bufarg); fclose( ffp); } } fclose( fp); return 1;}//PKListSort[1000]void PKLIST_SortTheCharts( int ti) //排行榜处理{extern gmsv gs[MAXCONNECTION]; int i, k, last=-1; if( PkTeamList[ti].use != 1 ) return; if( PkTeamList[ti].battleplay < 3 ) return; for( k=0; k<550; k++){ if( PKListSort[k] == -1 )continue; if( PKListSort[k] == ti ){ PKListSort[k] = -1; } } for( k=549; k>=0; k-- ){ if( PKListSort[k] == -1 ){ last = k; continue; } if( PkTeamList[ti].score > PkTeamList[PKListSort[k]].score ){ last = k; continue; } break; } if( last == -1 ) return; for( i=548; i>=last; i-- ){ PKListSort[i+1] = PKListSort[i]; } log( "\nPKListSort[%d]=%d \n", PKListSort[last], ti); PKListSort[last]=ti; //更新所有伺服器 for (i=0; i<MAXCONNECTION; i++) { if (gs[i].use && gs[i].name[0]) { PKLIST_TheCharts( i, 2, 1); } } { char filename[256]; FILE *fp=NULL; sprintf( filename, "%s/%s", "pklist", "Charts.txt" ); remove( filename); if( (fp=fopen( filename, "w+")) == NULL ) return; for( i=0; i<550; i++ ){ if( PKListSort[i] == -1 ) continue; fprintf( fp, "%d|%s|%s|%s|%d|%d|%d|%d|%d|%d\n", PkTeamList[PKListSort[i]].teamnum, PkTeamList[PKListSort[i]].pathdir, PkTeamList[PKListSort[i]].teamname, PkTeamList[PKListSort[i]].leadercdkey, PkTeamList[PKListSort[i]].win, PkTeamList[PKListSort[i]].lost, PkTeamList[PKListSort[i]].battleplay, PkTeamList[PKListSort[i]].score, PkTeamList[PKListSort[i]].inside, PkTeamList[PKListSort[i]].updata );/* fprintf( fp, "%dth 队伍:%-32s 胜:%-4d 负:%-4d 场数:%-4d 积分:%-4d\n", i, PkTeamList[PKListSort[i]].teamname, PkTeamList[PKListSort[i]].win, PkTeamList[PKListSort[i]].lost, PkTeamList[PKListSort[i]].battleplay, PkTeamList[PKListSort[i]].score );*/ } fclose( fp); }}void PKLIST_TheCharts( int fd, int type, int flg){ int i, first=1; char data[65535*3], buf[512];extern gmsv gs[MAXCONNECTION]; //andy_log log("PKLIST_TheCharts( %d, %d) \n", type, flg); switch( type){ case 1: for( i=0 ; i < MAXCONNECTION ; i ++ ) { //送del到game server if ( gs[i].use && gs[i].name[0] ) { PKLIST_GetPkTeamListDataOne( i, flg); } } break; case 2: //排行榜 memset( data, 0, sizeof(data)); for( i=0; i<550; i++){ if( PKListSort[i] == -1 ) continue; sprintf( buf, "%s|%d|%d|%d|%d", PkTeamList[PKListSort[i]].teamname, PkTeamList[PKListSort[i]].win, PkTeamList[PKListSort[i]].lost, PkTeamList[PKListSort[i]].battleplay, PkTeamList[PKListSort[i]].score ); if( first == 0 ) strcat( data, " "); first = 0; strcat( data, buf); } if( strlen(data) > 0 ) saacproto_PKLISTCHARTS_send( fd, data, type, flg ); break; case 3: { char filename[256]; FILE *fp=NULL; PKLIST_Sort_PKListSort(); sprintf( filename, "%s/%s", "pklist", "hero.txt" ); remove( filename); if( (fp=fopen( filename, "w+")) == NULL ) return; for( i=0; i<550; i++ ){ if( PKListSort[i] == -1 ) continue; fprintf( fp, "%d|%s|%s|%s|%d|%d|%d|%d|%d|%d\n", PkTeamList[PKListSort[i]].teamnum, PkTeamList[PKListSort[i]].pathdir, PkTeamList[PKListSort[i]].teamname, PkTeamList[PKListSort[i]].leadercdkey, PkTeamList[PKListSort[i]].win, PkTeamList[PKListSort[i]].lost, PkTeamList[PKListSort[i]].battleplay, PkTeamList[PKListSort[i]].score, PkTeamList[PKListSort[i]].inside, PkTeamList[PKListSort[i]].updata ); } fclose( fp); } break; }}//备份存档//load档int PKLIST_LoadUserfromFile( char *dirpath, char *listfilename ){ char line[512], filename[256], buf1[64]; FILE *fp = NULL, *tfp=NULL, *bfp=NULL; int i, count=0, teamn = 1; if( PkTeamList == NULL ) return -1; sprintf( filename, "%s/%s", dirpath, listfilename); log( "PKLIST_LoadUserfromFile( file:%s) \n", filename); if( (fp = fopen( filename, "r" )) == NULL ){ log( "can't load file:%s !\n", filename); return -1; } sprintf( filename, "%s/%s", dirpath, "d.txt"); if( (tfp = fopen( filename, "a+" )) == NULL ){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -