📄 ladder.c
字号:
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 + -