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

📄 ladder.c

📁 打魔兽战网的都知道他是什么
💻 C
📖 第 1 页 / 共 5 页
字号:
  ladder_update_accounts(&STAR_active_rating, &account_set_ladder_active_rank, &account_get_ladder_active_rank);  ladder_update_accounts(&STAR_active_wins,   NULL,                      NULL);  ladder_update_accounts(&STAR_active_games,  NULL,                      NULL);  ladder_update_accounts(&SEXP_active_rating, &account_set_ladder_active_rank, &account_get_ladder_active_rank);  ladder_update_accounts(&SEXP_active_wins,   NULL,                      NULL);  ladder_update_accounts(&SEXP_active_games,  NULL,                      NULL);  ladder_update_accounts(&W2BN_current_rating,&account_set_ladder_rank, &account_get_ladder_rank);  ladder_update_accounts(&W2BN_current_wins,  NULL,                      NULL);  ladder_update_accounts(&W2BN_current_games, NULL,                      NULL);  ladder_update_accounts(&W2BN_active_rating, &account_set_ladder_rank, &account_get_ladder_rank);  ladder_update_accounts(&W2BN_active_wins,   NULL,                      NULL);  ladder_update_accounts(&W2BN_active_games,  NULL,                      NULL);  ladder_update_accounts(&W2BN_current_rating_ironman, &account_set_ladder_rank, &account_get_ladder_rank);  ladder_update_accounts(&W2BN_current_wins_ironman,  NULL,                      NULL);  ladder_update_accounts(&W2BN_current_games_ironman, NULL,                      NULL);  ladder_update_accounts(&W2BN_active_rating_ironman, &account_set_ladder_rank, &account_get_ladder_rank);  ladder_update_accounts(&W2BN_active_wins_ironman,  NULL,                      NULL);  ladder_update_accounts(&W2BN_active_games_ironman, NULL,                      NULL);  eventlog(eventlog_level_info,__FUNCTION__,"finished updating ranking for all accounts");  return 0;}t_binary_ladder_load_result binary_load(t_binary_ladder_types type){  t_binary_ladder_load_result result;  t_ladder * ladder;  result = binary_ladder_load(type,4,&ladder_put_into_ladder);  if (result == illegal_checksum)  {    t_clienttag clienttag;	t_ladder_id ladder_id;    ladder = binary_ladder_types_to_w3_ladder(type);	clienttag = ladder_get_clienttag(ladder);	ladder_id = ladder->ladder_id;    ladder_destroy(ladder);    ladder_init(ladder,type,clienttag,ladder_id);  }    return result;}extern void ladders_load_accounts_to_ladderlists(void){  t_entry   * curr;  t_account * account;  int xp;  t_binary_ladder_load_result war3_solo_res, war3_team_res, war3_ffa_res, war3_at_res;  t_binary_ladder_load_result w3xp_solo_res, w3xp_team_res, w3xp_ffa_res, w3xp_at_res;  t_binary_ladder_load_result star_ar_res, star_aw_res, star_ag_res, star_cr_res, star_cw_res, star_cg_res;  t_binary_ladder_load_result sexp_ar_res, sexp_aw_res, sexp_ag_res, sexp_cr_res, sexp_cw_res, sexp_cg_res;  t_binary_ladder_load_result w2bn_cr_res, w2bn_cw_res, w2bn_cg_res, w2bn_cri_res, w2bn_cwi_res, w2bn_cgi_res;  t_binary_ladder_load_result w2bn_ar_res, w2bn_aw_res, w2bn_ag_res, w2bn_ari_res, w2bn_awi_res, w2bn_agi_res;  war3_solo_res = binary_load(WAR3_SOLO);  war3_team_res = binary_load(WAR3_TEAM);  war3_ffa_res  = binary_load(WAR3_FFA);  war3_at_res   = load_success; // binary_load(WAR3_AT);  w3xp_solo_res = binary_load(W3XP_SOLO);  w3xp_team_res = binary_load(W3XP_TEAM);  w3xp_ffa_res  = binary_load(W3XP_FFA);  w3xp_at_res   = load_success; // binary_load(W3XP_AT);  star_ar_res   = binary_load(STAR_AR);  star_aw_res   = binary_load(STAR_AW);  star_ag_res   = binary_load(STAR_AG);  star_cr_res   = binary_load(STAR_CR);  star_cw_res   = binary_load(STAR_CW);  star_cg_res   = binary_load(STAR_CG);  sexp_ar_res   = binary_load(SEXP_AR);  sexp_aw_res   = binary_load(SEXP_AW);  sexp_ag_res   = binary_load(SEXP_AG);  sexp_cr_res   = binary_load(SEXP_CR);  sexp_cw_res   = binary_load(SEXP_CW);  sexp_cg_res   = binary_load(SEXP_CG);  w2bn_cr_res   = binary_load(W2BN_CR);  w2bn_cw_res   = binary_load(W2BN_CW);  w2bn_cg_res   = binary_load(W2BN_CG);  w2bn_cri_res  = binary_load(W2BN_CRI);  w2bn_cwi_res  = binary_load(W2BN_CWI);  w2bn_cgi_res  = binary_load(W2BN_CGI);  w2bn_ar_res   = binary_load(W2BN_AR);  w2bn_aw_res   = binary_load(W2BN_AW);  w2bn_ag_res   = binary_load(W2BN_AG);  w2bn_ari_res  = binary_load(W2BN_ARI);  w2bn_awi_res  = binary_load(W2BN_AWI);  w2bn_agi_res  = binary_load(W2BN_AGI);  if ((war3_solo_res + war3_team_res + war3_ffa_res + war3_at_res +       w3xp_solo_res + w3xp_team_res + w3xp_ffa_res + w3xp_at_res +       star_ar_res   + star_aw_res   + star_ag_res  + star_cr_res + star_cw_res + star_cg_res +       sexp_ar_res   + sexp_aw_res   + sexp_ag_res  + sexp_cr_res + sexp_cw_res + sexp_cg_res +       w2bn_cr_res   + w2bn_cw_res   + w2bn_cg_res  +        w2bn_cri_res  + w2bn_cwi_res  + w2bn_cgi_res +       w2bn_ar_res   + w2bn_aw_res   + w2bn_ag_res  +        w2bn_ari_res  + w2bn_awi_res  + w2bn_agi_res ) == load_success)  {    eventlog(eventlog_level_trace,__FUNCTION__,"everything went smooth... taking shortcut");    return;  }  eventlog(eventlog_level_warn, __FUNCTION__, "binary ladders missing or incomplete, going to load all accounts to rebuild them");  if (accountlist_load_all(ST_FORCE)) {    eventlog(eventlog_level_error, __FUNCTION__, "error loading all accounts");    return;  }  HASHTABLE_TRAVERSE(accountlist(),curr)    {      if ((account=((t_account *)entry_get_data(curr))))	  {	      int rating, wins;	      int uid = account_get_uid(account);	      if ((war3_solo_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_solo))))		  {		  war3_ladder_add(&WAR3_solo_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_solo),				  account,0,CLIENTTAG_WARCRAFT3_UINT);		  }	      if ((war3_team_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_team))))		  {		  war3_ladder_add(&WAR3_team_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_team),				  account,0,CLIENTTAG_WARCRAFT3_UINT);		  }	      if ((war3_ffa_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_ffa))))		  {		  war3_ladder_add(&WAR3_ffa_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WARCRAFT3_UINT,ladder_id_ffa),				  account,0,CLIENTTAG_WARCRAFT3_UINT);		  }	      // user is part of a team	      /*	      if ((war3_at_res!=load_success) && ((teamcount = account_get_atteamcount(account,CLIENTTAG_WARCRAFT3_UINT))))		  {		  int counter;		  for (counter=1; counter<=teamcount; counter++)		    {		      if ((xp = account_get_atteamxp(account,counter,CLIENTTAG_WARCRAFT3_UINT)) && 				   account_get_atteammembers(account,counter,CLIENTTAG_WARCRAFT3_UINT))			  {			  war3_ladder_add(&WAR3_at_ladder,					  uid, xp,					  account_get_atteamlevel(account,counter,CLIENTTAG_WARCRAFT3_UINT),					  account,					  counter,CLIENTTAG_WARCRAFT3_UINT);			  }		    }	   		  }		  */	      if ((w3xp_solo_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WAR3XP_UINT,ladder_id_solo))))		  {		  war3_ladder_add(&W3XP_solo_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WAR3XP_UINT,ladder_id_solo),				  account,0,CLIENTTAG_WAR3XP_UINT);		  }	      if ((w3xp_team_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WAR3XP_UINT,ladder_id_team))))		  {		  war3_ladder_add(&W3XP_team_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WAR3XP_UINT,ladder_id_team),				  account,0,CLIENTTAG_WAR3XP_UINT);		  }	      if ((w3xp_ffa_res!=load_success) && ((xp = account_get_ladder_xp(account,CLIENTTAG_WAR3XP_UINT,ladder_id_ffa))))		  {		  war3_ladder_add(&W3XP_ffa_ladder,				  uid, xp,				  account_get_ladder_level(account,CLIENTTAG_WAR3XP_UINT,ladder_id_ffa),				  account,0,				  CLIENTTAG_WAR3XP_UINT);		  }	      // user is part of a team	      /*	      if ((w3xp_at_res!=load_success) && ((teamcount = account_get_atteamcount(account,CLIENTTAG_WAR3XP_UINT))))	 	  {		  int counter;		  for (counter=1; counter<=teamcount; counter++)		    {		      if ((xp = account_get_atteamxp(account,counter,CLIENTTAG_WAR3XP_UINT)) && 				   account_get_atteammembers(account,counter,CLIENTTAG_WAR3XP_UINT))			  {			  war3_ladder_add(&W3XP_at_ladder,					  uid, xp,					  account_get_atteamlevel(account,counter,CLIENTTAG_WAR3XP_UINT),					  account,					  counter,CLIENTTAG_WAR3XP_UINT);			  }		    }	   		  }		  */		  		  if ((rating = account_get_ladder_rating(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal))>0)		  {		    wins   = account_get_ladder_wins(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal);		    		    if (star_cr_res!=load_success)	     	    {		       war3_ladder_add(&STAR_current_rating, uid,wins,rating,account,0,CLIENTTAG_STARCRAFT_UINT);	 	    }		    		    if (star_cw_res!=load_success)	     	    {	 	       war3_ladder_add(&STAR_current_wins, uid,rating,wins,account,0,CLIENTTAG_STARCRAFT_UINT);	 	    }		    		    if (star_cg_res!=load_success)	     	    {	 	      int games = wins +		                  account_get_ladder_losses(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal)+	                          account_get_ladder_disconnects(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal);	 	      war3_ladder_add(&STAR_current_games, uid,rating,games,account,0,CLIENTTAG_STARCRAFT_UINT);	     	    }		  }		  if ((rating = account_get_ladder_active_rating(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal))>0)		  {		    wins   = account_get_ladder_active_wins(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal);		    	 	    if (star_ar_res!=load_success)	 	    {		      war3_ladder_add(&STAR_active_rating, uid,wins,rating,account,0,CLIENTTAG_STARCRAFT_UINT);	 	    }		    		    if (star_aw_res!=load_success)	     	    {		      war3_ladder_add(&STAR_active_wins, uid,rating,wins,account,0,CLIENTTAG_STARCRAFT_UINT);	 	    }		    		    if (star_ag_res!=load_success)	     	    {		      int games = wins +			     	  account_get_ladder_active_losses(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal)+	                     	  account_get_ladder_active_disconnects(account,CLIENTTAG_STARCRAFT_UINT,ladder_id_normal);	 	      war3_ladder_add(&STAR_active_games, uid,rating,games,account,0,CLIENTTAG_STARCRAFT_UINT);	     	    }		  }		  if ((rating = account_get_ladder_rating(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal))>0)		  {		    wins = account_get_ladder_wins(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal);		    		    if (sexp_cr_res!=load_success)	     	    {		      war3_ladder_add(&SEXP_current_rating, uid,wins,rating,account,0,CLIENTTAG_BROODWARS_UINT);	 	    }		    		    if (sexp_cw_res!=load_success)	     	    {	 	      war3_ladder_add(&SEXP_current_wins, uid,rating,wins,account,0,CLIENTTAG_BROODWARS_UINT);	 	    }		    		    if (sexp_cg_res!=load_success)	     	    {	 	      int games = wins +		 		  account_get_ladder_losses(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal)+	         	          account_get_ladder_disconnects(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal);	 	      war3_ladder_add(&SEXP_current_games, uid,rating,games,account,0,CLIENTTAG_BROODWARS_UINT);	     	    }		  }		  if ((rating = account_get_ladder_active_rating(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal))>0)		  {		    wins = account_get_ladder_active_wins(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal);		    	 	    if (sexp_ar_res!=load_success)	 	    {		      war3_ladder_add(&SEXP_active_rating, uid,wins,rating,account,0,CLIENTTAG_BROODWARS_UINT);	 	    }		    		    if (sexp_aw_res!=load_success)	     	    {		      war3_ladder_add(&SEXP_active_wins, uid,rating,wins,account,0,CLIENTTAG_BROODWARS_UINT);	 	    }		    		    if (sexp_ag_res!=load_success)	     	    {		      int games = wins +			     	  account_get_ladder_active_losses(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal)+	                     	  account_get_ladder_active_disconnects(account,CLIENTTAG_BROODWARS_UINT,ladder_id_normal);	 	       war3_ladder_add(&SEXP_active_games, uid,rating,games,account,0,CLIENTTAG_BROODWARS_UINT);	     	    }		  }		  if ((rating = account_get_ladder_rating(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal))>0)		  {		    wins = account_get_ladder_wins(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal);		    		    if (w2bn_cr_res!=load_success)	     	    {		      war3_ladder_add(&W2BN_current_rating, uid,wins,rating,account,0,CLIENTTAG_WARCIIBNE_UINT);	 	    }		    		    if (w2bn_cw_res!=load_success)	     	    {	 	      war3_ladder_add(&W2BN_current_wins, uid,rating,wins,account,0,CLIENTTAG_WARCIIBNE_UINT);	 	    }		    		    if (w2bn_cg_res!=load_success)	     	    {	 	      int games = wins +		 		  account_get_ladder_losses(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal)+	         	          account_get_ladder_disconnects(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal);	 	      war3_ladder_add(&W2BN_current_games, uid,rating,games,account,0,CLIENTTAG_WARCIIBNE_UINT);	     	    }		  }		  if ((rating = account_get_ladder_active_rating(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal))>0)		  {		    wins = account_get_ladder_active_wins(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal);		    		    if (w2bn_ar_res!=load_success)	     	    {		      war3_ladder_add(&W2BN_active_rating, uid,wins,rating,account,0,CLIENTTAG_WARCIIBNE_UINT);	 	    }		    		    if (w2bn_aw_res!=load_success)	     	    {	 	      war3_ladder_add(&W2BN_active_wins, uid,rating,wins,account,0,CLIENTTAG_WARCIIBNE_UINT);	 	    }		    		    if (w2bn_ag_res!=load_success)	     	    {	 	      int games = wins +		 		  account_get_ladder_active_losses(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal)+	         	          account_get_ladder_active_disconnects(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_normal);	 	      war3_ladder_add(&W2BN_active_games, uid,rating,games,account,0,CLIENTTAG_WARCIIBNE_UINT);	     	    }		  }		  if ((rating = account_get_ladder_rating(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_ironman))>0)		  {	            wins = account_get_ladder_wins(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_ironman);		    		    if (w2bn_cri_res!=load_success)	     	    {		      war3_ladder_add(&W2BN_current_rating_ironman, uid,wins,rating,account,0,CLIENTTAG_WARCIIBNE_UINT);		 	    }		    		    if (w2bn_cwi_res!=load_success)	     	    {	 	      war3_ladder_add(&W2BN_current_wins_ironman, uid,rating,wins,account,0,CLIENTTAG_WARCIIBNE_UINT);	 	    }		    		    if (w2bn_cgi_res!=load_success)	     	    {	 	      int games = wins +		 		  account_get_ladder_losses(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_ironman)+	         	          account_get_ladder_disconnects(account,CLIENTTAG_WARCIIBNE_UINT,ladder_id_ironman);	 	      war3_ladder_add(&W2BN_current_games_ironman, uid,rating,games,account,0,CLIENTTAG_WARCIIBNE_UINT);	     	    }		  }

⌨️ 快捷键说明

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