#include "StdAfx.h" //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #include #include #ifdef _NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND #include #endif #ifdef _NA_006607_20130402_ADD_QUESTTYPE #include "QuestManager.h" #include "QuestManager_Concrete.h" #endif BattleGroundPlayerInfo::BattleGroundPlayerInfo(Player* player) : player_(player), team_key_(kChaosZoneTeamNone), player_state_(kPlayerStateNone), battle_ground_record_(NULL), series_kill_(0), max_series_kill_(0) { #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND ZeroMemory(false_name, sizeof(false_name)); false_name[0] = '\0'; name_index_ = 0; #endif //_NA_008679_20160202_REWORK_BATTLEGROUND } void BattleGroundPlayerInfo::Init(BattleGroundRecord* const record) { battle_ground_record_ = record; WORD series_kill_ = 0; WORD max_series_kill_ =0; } void BattleGroundPlayerInfo::Release() { } void BattleGroundPlayerInfo::IncreasePlayTimes() { if(battle_ground_record_) battle_ground_record_->total_count++; } void BattleGroundPlayerInfo::IncreaseWinTimes() { if(battle_ground_record_) battle_ground_record_->win_count++; #ifdef _NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND player_->GetACManager()->IncConditionValue(ACHIEVEMENT_OBJECT_BATTLEGROUND_WIN, battle_ground_record_->GetMapCode()); #endif //_NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND #ifdef _NA_006607_20130402_ADD_QUESTTYPE QUEST_MISSION_CLEAR_MSG quest_msg; quest_msg.mission_code = battle_ground_record_->GetMapCode(); player_->GetQuestManager()->Event(QUEST_EVENT_MISSION_CLEAR, &quest_msg); #endif //_NA_006607_20130402_ADD_QUESTTYPE } void BattleGroundPlayerInfo::IncreaseDrawTimes() { if(battle_ground_record_) battle_ground_record_->draw_count++; } void BattleGroundPlayerInfo::IncreaseLoseTimes() { if(battle_ground_record_) battle_ground_record_->lose_count++; } void BattleGroundPlayerInfo::IncreaseDisTimes() { if(battle_ground_record_) battle_ground_record_->dis_count++; } void BattleGroundPlayerInfo::DecreaseDisTimes() { if(battle_ground_record_) { if (battle_ground_record_->dis_count > 0) battle_ground_record_->dis_count--; } } void BattleGroundPlayerInfo::IncreaseKill(const WORD kill_point) { if(battle_ground_record_ == NULL) { return; } battle_ground_record_->kill_count += kill_point; ++series_kill_; if (max_series_kill_ < series_kill_) { max_series_kill_ = series_kill_; } if (battle_ground_record_->max_series_kill < max_series_kill_) { battle_ground_record_->max_series_kill = max_series_kill_; } } void BattleGroundPlayerInfo::IncreaseDeath() { series_kill_ = 0; if(battle_ground_record_) battle_ground_record_->death_count++; } void BattleGroundPlayerInfo::IncreaseStrongpointAttack() { if(battle_ground_record_) battle_ground_record_->strongpoint_attack++; #ifdef _NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND player_->GetACManager()->IncConditionValue(ACHIEVEMENT_OBJECT_BATTLEGROUND_STRONGPOINT_ATTACK, battle_ground_record_->GetMapCode()); #endif } void BattleGroundPlayerInfo::IncreaseStrongpointDefense() { if(battle_ground_record_) battle_ground_record_->strongpoint_defense++; #ifdef _NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND player_->GetACManager()->IncConditionValue(ACHIEVEMENT_OBJECT_BATTLEGROUND_STRONGPOINT_DEFENSE, battle_ground_record_->GetMapCode()); #endif } void BattleGroundPlayerInfo::ClearScore() { if(battle_ground_record_) ZeroMemory(battle_ground_record_, sizeof(BattleGroundRecord)); } #ifdef _NA_006633_20130415_ADD_BATTLEGROUND_ASSIST void BattleGroundPlayerInfo::IncreaseAssistTimes() { if(battle_ground_record_) battle_ground_record_->assist_count++; } #endif //_NA_006633_20130415_ADD_BATTLEGROUND_ASSIST #ifdef _NA_006801_20130814_RENEWAL_RANKINGSYSTEM_MINOR WORD BattleGroundPlayerInfo::GetKillTimes() { return battle_ground_record_->kill_count; } WORD BattleGroundPlayerInfo::GetAssistTimes() { return battle_ground_record_->assist_count; } WORD BattleGroundPlayerInfo::GetWintimes() { return battle_ground_record_->win_count; } #endif //_NA_006801_20130814_RENEWAL_RANKINGSYSTEM_MINOR INT BattleGroundPlayerInfo::GetWinRatio() { return (INT)(((FLOAT)battle_ground_record_->win_count / (FLOAT)battle_ground_record_->total_count) * 100.0f); } #ifdef _NA_008679_20160202_REWORK_BATTLEGROUND VOID BattleGroundPlayerInfo::SetFalseName(const ChaosZoneTeam& team_index, const BYTE& player_index) { if(team_index == kRed) { _sntprintf(false_name, MAX_CHARNAME_LENGTH, _T("·¹µå%d"),player_index); } else // if (team_index == kblue) { _sntprintf(false_name, MAX_CHARNAME_LENGTH, _T("ºí·ç%d"),player_index); } false_name[MAX_CHARNAME_LENGTH]='\0'; name_index_ = player_index; } VOID BattleGroundPlayerInfo::SetFalseName( const BYTE& player_index ) { ChaosZoneTeam team_index = GetTeamKey(); if(team_index == kRed) { _sntprintf(false_name, MAX_CHARNAME_LENGTH, _T("·¹µå%d"),player_index); } else // if (team_index == kblue) { _sntprintf(false_name, MAX_CHARNAME_LENGTH, _T("ºí·ç%d"),player_index); } false_name[MAX_CHARNAME_LENGTH]='\0'; name_index_ = player_index; } #endif //_NA_008679_20160202_REWORK_BATTLEGROUND