208 lines
5.5 KiB
C++
208 lines
5.5 KiB
C++
#include "StdAfx.h"
|
|
|
|
//_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND
|
|
#include <Player.h>
|
|
#include <World/ChaosZoneSystem/BattleGroundPlayerInfo.h>
|
|
|
|
#ifdef _NA_006593_20130327_ADD_ACHIEVEMENT_BATTLEGROUND
|
|
#include <AreaConquestCommonHeader.h>
|
|
#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
|