#ifdef GLOBAL_RANKING_V2 void CClientManager::SendRank(CPeer* pkPeer, bool isManuel) { TPacketRankingGD p; for(DWORD j=0;j<10;j++){ p.m_ranking_l[j].empire = m_ranking_l[j].empire; p.m_ranking_l[j].value = m_ranking_l[j].value; strlcpy(p.m_ranking_l[j].name,m_ranking_l[j].name,sizeof(p.m_ranking_l[j].name)); p.m_ranking_d_s[j].empire = m_ranking_d_s[j].empire; p.m_ranking_d_s[j].value = m_ranking_d_s[j].value; strlcpy(p.m_ranking_d_s[j].name,m_ranking_d_s[j].name,sizeof(p.m_ranking_d_s[j].name)); p.m_ranking_k_b[j].empire = m_ranking_k_b[j].empire; p.m_ranking_k_b[j].value = m_ranking_k_b[j].value; strlcpy(p.m_ranking_k_b[j].name,m_ranking_k_b[j].name,sizeof(p.m_ranking_k_b[j].name)); p.m_ranking_p[j].empire = m_ranking_p[j].empire; p.m_ranking_p[j].value = m_ranking_p[j].value; strlcpy(p.m_ranking_p[j].name,m_ranking_p[j].name,sizeof(p.m_ranking_p[j].name)); p.m_ranking_a_1[j].empire = m_ranking_a_1[j].empire; p.m_ranking_a_1[j].value = m_ranking_a_1[j].value; strlcpy(p.m_ranking_a_1[j].name,m_ranking_a_1[j].name,sizeof(p.m_ranking_a_1[j].name)); p.m_ranking_a_2[j].empire = m_ranking_a_2[j].empire; p.m_ranking_a_2[j].value = m_ranking_a_2[j].value; strlcpy(p.m_ranking_a_2[j].name,m_ranking_a_2[j].name,sizeof(p.m_ranking_a_2[j].name)); p.m_ranking_a_3[j].empire = m_ranking_a_3[j].empire; p.m_ranking_a_3[j].value = m_ranking_a_3[j].value; strlcpy(p.m_ranking_a_3[j].name,m_ranking_a_3[j].name,sizeof(p.m_ranking_a_3[j].name)); p.m_ranking_a_4[j].empire = m_ranking_a_4[j].empire; p.m_ranking_a_4[j].value = m_ranking_a_4[j].value; strlcpy(p.m_ranking_a_4[j].name,m_ranking_a_4[j].name,sizeof(p.m_ranking_a_4[j].name)); p.m_ranking_a_5[j].empire = m_ranking_a_5[j].empire; p.m_ranking_a_5[j].value = m_ranking_a_5[j].value; strlcpy(p.m_ranking_a_5[j].name,m_ranking_a_5[j].name,sizeof(p.m_ranking_a_5[j].name)); p.m_ranking_c_1[j].empire = m_ranking_c_1[j].empire; p.m_ranking_c_1[j].value = m_ranking_c_1[j].value; strlcpy(p.m_ranking_c_1[j].name,m_ranking_c_1[j].name,sizeof(p.m_ranking_c_1[j].name)); p.m_ranking_c_2[j].empire = m_ranking_c_2[j].empire; p.m_ranking_c_2[j].value = m_ranking_c_2[j].value; strlcpy(p.m_ranking_c_2[j].name,m_ranking_c_2[j].name,sizeof(p.m_ranking_c_2[j].name)); p.m_ranking_c_3[j].empire = m_ranking_c_3[j].empire; p.m_ranking_c_3[j].value = m_ranking_c_3[j].value; strlcpy(p.m_ranking_c_3[j].name,m_ranking_c_3[j].name,sizeof(p.m_ranking_c_3[j].name)); p.m_ranking_c_4[j].empire = m_ranking_c_4[j].empire; p.m_ranking_c_4[j].value = m_ranking_c_4[j].value; strlcpy(p.m_ranking_c_4[j].name,m_ranking_c_4[j].name,sizeof(p.m_ranking_c_4[j].name)); } if(pkPeer != NULL && isManuel) { pkPeer->EncodeHeader(HEADER_DG_RANK_UPDATE, 0, sizeof(TPacketRankingGD)); pkPeer->Encode(&p, sizeof(TPacketRankingGD)); } else { ForwardPacket(HEADER_DG_RANK_UPDATE, &p, sizeof(TPacketRankingGD)); } } bool CClientManager::InitializeRank() { // LEVEL RANK \\* START std::unique_ptr pMsg(CDBManager::Instance().DirectQuery("SELECT account_id, name, level FROM player.player ORDER BY level DESC LIMIT 10")); int iLine = 0; MYSQL_ROW mRow; memset(m_ranking_l,0,sizeof(m_ranking_l)); while (NULL != (mRow = mysql_fetch_row(pMsg->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg2(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg2->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_l[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s level: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_l[iLine].name,mRow[iCur++],sizeof(m_ranking_l[iLine].name)); str_to_number(m_ranking_l[iLine].value, mRow[iCur++]); sys_err("Level_Rank: %d %s %d %d",iLine+1,m_ranking_l[iLine].name,m_ranking_l[iLine].empire,m_ranking_l[iLine].value); iLine++; } // LEVEL RANK \\* END // KILLED METIN RANK \\* BEGIN std::unique_ptr pMsg2(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_metin FROM player.player ORDER BY killed_metin DESC LIMIT 10")); iLine=0; memset(m_ranking_d_s,0,sizeof(m_ranking_d_s)); while (NULL != (mRow = mysql_fetch_row(pMsg2->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg2(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg2->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_d_s[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_metin: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_d_s[iLine].name,mRow[iCur++],sizeof(m_ranking_d_s[iLine].name)); str_to_number(m_ranking_d_s[iLine].value, mRow[iCur++]); sys_err("Killed_Metin_Rank: %d %s %d %d",iLine+1,m_ranking_d_s[iLine].name,m_ranking_d_s[iLine].empire,m_ranking_d_s[iLine].value); iLine++; } // KILLED METIN RANK \\* END // KILLED METIN1 RANK \\* BEGIN std::unique_ptr pMsg3(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_metin1 FROM player.player ORDER BY killed_metin1 DESC LIMIT 10")); iLine=0; memset(m_ranking_c_1,0,sizeof(m_ranking_c_1)); while (NULL != (mRow = mysql_fetch_row(pMsg3->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg3(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg3->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_c_1[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_metin1: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_c_1[iLine].name,mRow[iCur++],sizeof(m_ranking_c_1[iLine].name)); str_to_number(m_ranking_c_1[iLine].value, mRow[iCur++]); sys_err("killed_metin1_Rank: %d %s %d %d",iLine+1,m_ranking_c_1[iLine].name,m_ranking_c_1[iLine].empire,m_ranking_c_1[iLine].value); iLine++; } // KILLED METIN1 RANK \\* END // KILLED METIN2 RANK \\* BEGIN std::unique_ptr pMsg4(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_metin2 FROM player.player ORDER BY killed_metin2 DESC LIMIT 10")); iLine=0; memset(m_ranking_c_2,0,sizeof(m_ranking_c_2)); while (NULL != (mRow = mysql_fetch_row(pMsg4->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg4(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg4->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_c_2[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_metin2: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_c_2[iLine].name,mRow[iCur++],sizeof(m_ranking_c_2[iLine].name)); str_to_number(m_ranking_c_2[iLine].value, mRow[iCur++]); sys_err("killed_metin2_Rank: %d %s %d %d",iLine+1,m_ranking_c_2[iLine].name,m_ranking_c_2[iLine].empire,m_ranking_c_2[iLine].value); iLine++; } // KILLED METIN2 RANK \\* END // KILLED METIN3 RANK \\* BEGIN std::unique_ptr pMsg5(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_metin3 FROM player.player ORDER BY killed_metin3 DESC LIMIT 10")); iLine=0; memset(m_ranking_c_3,0,sizeof(m_ranking_c_3)); while (NULL != (mRow = mysql_fetch_row(pMsg5->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg5(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg5->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_c_3[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_metin3: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_c_3[iLine].name,mRow[iCur++],sizeof(m_ranking_c_3[iLine].name)); str_to_number(m_ranking_c_3[iLine].value, mRow[iCur++]); sys_err("killed_metin3_Rank: %d %s %d %d",iLine+1,m_ranking_c_3[iLine].name,m_ranking_c_3[iLine].empire,m_ranking_c_3[iLine].value); iLine++; } // KILLED METIN3 RANK \\* END // KILLED METIN4 RANK \\* BEGIN std::unique_ptr pMsg6(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_metin4 FROM player.player ORDER BY killed_metin4 DESC LIMIT 10")); iLine=0; memset(m_ranking_c_4,0,sizeof(m_ranking_c_4)); while (NULL != (mRow = mysql_fetch_row(pMsg6->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg6(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg6->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_c_4[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_metin4: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_c_4[iLine].name,mRow[iCur++],sizeof(m_ranking_c_4[iLine].name)); str_to_number(m_ranking_c_4[iLine].value, mRow[iCur++]); sys_err("killed_metin4_Rank: %d %s %d %d",iLine+1,m_ranking_c_4[iLine].name,m_ranking_c_4[iLine].empire,m_ranking_c_4[iLine].value); iLine++; } // KILLED METIN4 RANK \\* END // KILLED BOSS RANK \\* BEGIN std::unique_ptr pMsg7(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_boss FROM player.player ORDER BY killed_boss DESC LIMIT 10")); iLine=0; memset(m_ranking_k_b,0,sizeof(m_ranking_k_b)); while (NULL != (mRow = mysql_fetch_row(pMsg7->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg7(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg7->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_k_b[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_boss: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_k_b[iLine].name,mRow[iCur++],sizeof(m_ranking_k_b[iLine].name)); str_to_number(m_ranking_k_b[iLine].value, mRow[iCur++]); sys_err("Killed_Boss_Rank: %d %s %d %d",iLine+1,m_ranking_k_b[iLine].name,m_ranking_k_b[iLine].empire,m_ranking_k_b[iLine].value); iLine++; } // KILLED BOSS RANK \\* END // KILLED BOSS1 RANK \\* BEGIN std::unique_ptr pMsg8(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_boss1 FROM player.player ORDER BY killed_boss1 DESC LIMIT 10")); iLine=0; memset(m_ranking_a_1,0,sizeof(m_ranking_a_1)); while (NULL != (mRow = mysql_fetch_row(pMsg8->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg8(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg8->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_a_1[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_boss1: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_a_1[iLine].name,mRow[iCur++],sizeof(m_ranking_a_1[iLine].name)); str_to_number(m_ranking_a_1[iLine].value, mRow[iCur++]); sys_err("killed_boss1_Rank: %d %s %d %d",iLine+1,m_ranking_a_1[iLine].name,m_ranking_a_1[iLine].empire,m_ranking_a_1[iLine].value); iLine++; } // KILLED BOSS1 RANK \\* END // KILLED BOSS2 RANK \\* BEGIN std::unique_ptr pMsg9(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_boss2 FROM player.player ORDER BY killed_boss2 DESC LIMIT 10")); iLine=0; memset(m_ranking_a_2,0,sizeof(m_ranking_a_2)); while (NULL != (mRow = mysql_fetch_row(pMsg9->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg9(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg9->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_a_2[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_boss2: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_a_2[iLine].name,mRow[iCur++],sizeof(m_ranking_a_2[iLine].name)); str_to_number(m_ranking_a_2[iLine].value, mRow[iCur++]); sys_err("killed_boss2_Rank: %d %s %d %d",iLine+1,m_ranking_a_2[iLine].name,m_ranking_a_2[iLine].empire,m_ranking_a_2[iLine].value); iLine++; } // KILLED BOSS2 RANK \\* END // KILLED BOSS3 RANK \\* BEGIN std::unique_ptr pMsg10(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_boss3 FROM player.player ORDER BY killed_boss3 DESC LIMIT 10")); iLine=0; memset(m_ranking_a_3,0,sizeof(m_ranking_a_3)); while (NULL != (mRow = mysql_fetch_row(pMsg10->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg10(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg10->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_a_3[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_boss3: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_a_3[iLine].name,mRow[iCur++],sizeof(m_ranking_a_3[iLine].name)); str_to_number(m_ranking_a_3[iLine].value, mRow[iCur++]); sys_err("killed_boss3_Rank: %d %s %d %d",iLine+1,m_ranking_a_3[iLine].name,m_ranking_a_3[iLine].empire,m_ranking_a_3[iLine].value); iLine++; } // KILLED BOSS3 RANK \\* END // KILLED BOSS4 RANK \\* BEGIN std::unique_ptr pMsg11(CDBManager::Instance().DirectQuery("SELECT account_id, name, killed_boss4 FROM player.player ORDER BY killed_boss4 DESC LIMIT 10")); iLine=0; memset(m_ranking_a_4,0,sizeof(m_ranking_a_4)); while (NULL != (mRow = mysql_fetch_row(pMsg11->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg11(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg11->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_a_4[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s killed_boss4: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_a_4[iLine].name,mRow[iCur++],sizeof(m_ranking_a_4[iLine].name)); str_to_number(m_ranking_a_4[iLine].value, mRow[iCur++]); sys_err("killed_boss4_Rank: %d %s %d %d",iLine+1,m_ranking_a_4[iLine].name,m_ranking_a_4[iLine].empire,m_ranking_a_4[iLine].value); iLine++; } // KILLED BOSS4 RANK \\* END // PLAYTIME RANK \\* BEGIN std::unique_ptr pMsg12(CDBManager::Instance().DirectQuery("SELECT account_id, name, playtime FROM player.player ORDER BY playtime DESC LIMIT 10")); iLine=0; memset(m_ranking_p,0,sizeof(m_ranking_p)); while (NULL != (mRow = mysql_fetch_row(pMsg12->Get()->pSQLResult))) { int iCur = 0; DWORD account_id=0; str_to_number(account_id, mRow[iCur++]); char szQuery[256]; snprintf(szQuery, sizeof(szQuery), "SELECT empire FROM account.account WHERE id = '%d';", account_id); std::unique_ptr pMsg12(CDBManager::instance().DirectQuery(szQuery)); MYSQL_ROW row; if ((row = mysql_fetch_row(pMsg12->Get()->pSQLResult)) && row != NULL){ str_to_number(m_ranking_p[iLine].empire, row[0]); } else{ sys_err("null person!!! account_id: %s name: %s playtime: %s",mRow[0],mRow[1],mRow[2]); continue; } strlcpy(m_ranking_p[iLine].name,mRow[iCur++],sizeof(m_ranking_p[iLine].name)); str_to_number(m_ranking_p[iLine].value, mRow[iCur++]); sys_err("Playtime_Rank: %d %s %d %d",iLine+1,m_ranking_p[iLine].name,m_ranking_p[iLine].empire,m_ranking_p[iLine].value); iLine++; } // PLAYTIME RANK \\* END return true; } #endif