Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CGlobalRankingManager::UpdateRanking(LPCHARACTER ch, BYTE bCategory, long long score)
- {
- if (!ch)
- return;
- DWORD dwPID = ch->GetPlayerID();
- if (bCategory >= GLOBAL_RANKING_CATEGORY_MAX_NUM)
- {
- sys_err("Unknown category %d", bCategory);
- return;
- }
- // Support for kills
- switch (bCategory)
- {
- case GLOBAL_RANKING_CATEGORY_KILL_BOSS:
- {
- if (next_update_cycle > ch->GetQuestFlag("global_ranking.killed_bosses_last"))
- ch->SetQuestFlag("global_ranking.killed_bosses", 1);
- else
- ch->SetQuestFlag("global_ranking.killed_bosses", ch->GetQuestFlag("global_ranking.killed_bosses")+1);
- ch->SetQuestFlag("global_ranking.killed_bosses_last", next_update_cycle);
- score = ch->GetQuestFlag("global_ranking.killed_bosses");
- }
- break;
- case GLOBAL_RANKING_CATEGORY_DESTROY_METIN:
- {
- if (next_update_cycle > ch->GetQuestFlag("global_ranking.destroyed_stones_last"))
- ch->SetQuestFlag("global_ranking.destroyed_stones", 1);
- else
- ch->SetQuestFlag("global_ranking.destroyed_stones", ch->GetQuestFlag("global_ranking.destroyed_stones")+1);
- ch->SetQuestFlag("global_ranking.destroyed_stones_last", next_update_cycle);
- score = ch->GetQuestFlag("global_ranking.destroyed_stones");
- }
- break;
- }
- const std::vector<SRankingElement> & Category = m_ranking_list[bCategory];
- if (Category.size() && score > Category[Category.size()-1].lScore)
- {
- TPacketRankingList pack;
- pack.header = 0;
- pack.bCategory = bCategory;
- pack.dwPID[0] = dwPID;
- pack.lScore[0] = score;
- db_clientdesc->DBPacket(HEADER_GD_GLOBAL_RANKING_UPDATE, 0, &pack, sizeof(pack));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement