📄 characterdialog.cpp
字号:
// CharacterDialog.cpp: implementation of the CCharacterDialog class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CharacterDialog.h"
#include "ObjectManager.h"
#include "./Interface/CWindowManager.h"
#include "./Interface/cStatic.h"
#include "./Interface/cButton.h"
#include "WindowIDEnum.h"
#include "GuildManager.h"
#include "KyungGongManager.h"
#include "MunpaMarkDialog.h"
#include "SkillManager_Client.h"
#include "CheatMsgParser.h"
#include "GameIn.h"
#include "MainBarDialog.h"
#include "ChatManager.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCharacterDialog::CCharacterDialog()
{
m_type = WT_CHARINFODIALOG;
m_nocoriPoint = 0;
}
CCharacterDialog::~CCharacterDialog()
{
}
void CCharacterDialog::Linking()
{
m_pMunpaMarkDlg = (CMunpaMarkDialog*)GetWindowForID(CI_MUNPAMARK);
m_ppStatic.munpa = (cStatic *)GetWindowForID(CI_CHARMUNPA);
m_ppStatic.jikwe = (cStatic *)GetWindowForID(CI_CHARJIKWE);
m_ppStatic.fame = (cStatic *)GetWindowForID(CI_CHARFAME);
m_ppStatic.badfame = (cStatic *)GetWindowForID(CI_CHARBADFAME);
m_ppStatic.name = (cStatic *)GetWindowForID(CI_CHARNAME);
// m_ppStatic.stage = (cStatic *)GetWindowForID(CI_CHARSTAGE); // 版瘤
// m_ppStatic.job = (cStatic *)GetWindowForID(CI_CHARJOB); // 流诀
// m_ppStatic.ideology = (cStatic *)GetWindowForID(CI_CHARIDEOLOGY); // 啊摹包
m_ppStatic.genGoal = (cStatic *)GetWindowForID(CI_CHARGENGOAL);
m_ppStatic.simmak = (cStatic *)GetWindowForID(CI_CHARSIMMAK);
m_ppStatic.minchub = (cStatic *)GetWindowForID(CI_CHARDEX);
m_ppStatic.cheryuk = (cStatic *)GetWindowForID(CI_CHARSTA);
m_ppStatic.level = (cStatic *)GetWindowForID(CI_CHARLEVEL);
m_ppStatic.expPercent = (cStatic *)GetWindowForID(CI_CHAREXPPERCENT);
m_ppStatic.point = (cStatic *)GetWindowForID(CI_CHARPOINT); // 儡咯器牢飘
m_ppStatic.meleeattack = (cStatic *)GetWindowForID(CI_CHARATTACK); // 傍拜仿
m_ppStatic.rangeattack = (cStatic *)GetWindowForID(CI_LONGATTACK); // 傍拜仿
m_ppStatic.defense = (cStatic *)GetWindowForID(CI_CHARDEFENSE);
// m_ppStatic.kyeongkong = (cStatic *)GetWindowForID(CI_CHARKYEONGKONG);
// m_ppStatic.move = (cStatic *)GetWindowForID(CI_CHARMOVE);
m_ppStatic.life = (cStatic *)GetWindowForID(CI_CHARLIFE);
m_ppStatic.Shield = (cStatic *)GetWindowForID(CI_HOSINDEFENSE);
m_ppStatic.naeryuk = (cStatic *)GetWindowForID(CI_CHARNAERYUK);
m_ppStatic.spname = (cStatic *)GetWindowForID(CI_SPCHARNAME);
m_ppStatic.critical = (cStatic *)GetWindowForID(CI_CRITICAL);
m_ppStatic.attackdistance = (cStatic *)GetWindowForID(CI_DISTANCE);
// m_ppStatic.dok = (cStatic *)GetWindowForID(CI_CHARDOK);
m_pPointBtn[GENGOL_POINT] = (cButton *)GetWindowForID(CI_GENGOL_POINT);
m_pPointBtn[SIMMEK_POINT] = (cButton *)GetWindowForID(CI_SIMMEK_POINT);
m_pPointBtn[MINCHUB_POINT] = (cButton *)GetWindowForID(CI_MINCHUB_POINT);
m_pPointBtn[CHERYUK_POINT] = (cButton *)GetWindowForID(CI_CHERYUK_POINT);
for(int n=0;n<ATTR_MAX;++n)
{
m_AttrDefComponent.pStatic.SetElement_Val(ATTR_FIRE+n,(cStatic *)GetWindowForID(CI_CHARHWA+n));
m_AttrDefComponent.pGuage.SetElement_Val(ATTR_FIRE+n,(cGuagen *)GetWindowForID(CI_DEFENCE_HWA+n));
}
}
void CCharacterDialog::Init(LONG x, LONG y, WORD wid, WORD hei, cImage * basicImage, LONG ID)
{
cDialog::Init(x,y,wid,hei,basicImage,ID);
//m_type = WT_CHARINFODIALOG;
}
void CCharacterDialog::UpdateData()
{
BASEOBJECT_INFO ObjInfo;
CHARACTER_TOTALINFO ChaInfo;
HERO_TOTALINFO HeroInfo;
OBJECTMGR->GetHero()->GetBaseObjectInfo(&ObjInfo);
OBJECTMGR->GetHero()->GetCharacterTotalInfo(&ChaInfo);
OBJECTMGR->GetHero()->GetHeroTotalInfo(&HeroInfo);
m_ppStatic.fame->SetStaticValue(HeroInfo.Fame);
m_ppStatic.name->SetStaticText(ObjInfo.ObjectName);
m_ppStatic.badfame->SetStaticValue(ChaInfo.BadFame);
// m_ppStatic.stage->SetStaticValue(ChaInfo.Stage); // 版瘤
for(int n=0;n<ATTR_MAX;++n)
{
m_AttrDefComponent.SetValue(ATTR_FIRE+n,(WORD)(HERO->GetAttDefense(ATTR_FIRE+n)*100.5));
}
// 版傍 窜拌 钎矫
if( HeroInfo.KyungGongGrade == 0)
{
// 版傍 绝澜..
// m_ppStatic.kyeongkong->SetStaticText(" -");
}
else
{
CKyungGongInfo* pKyungGongInfo = KYUNGGONGMGR->GetKyungGongInfo(HeroInfo.KyungGongGrade);
// m_ppStatic.kyeongkong->SetStaticText(pKyungGongInfo->GetKyungGongName());
}
SetCritical();
SetAttackRange();
SetAttackRate();
SetDefenseRate();
// m_ppStatic.ideology->SetStaticValue(HeroInfo.wKarma); // 啊摹包karma
/*
m_ppStatic.attack->SetStaticValue(OBJECTMGR->GetHeroAttack()); // 傍拜仿
m_ppStatic.defense->SetStaticValue(OBJECTMGR->GetHeroDefense());
m_ppStatic.move->SetStaticValue(OBJECTMGR->GetHeroMove());
m_ppStatic.dok->SetStaticValue(OBJECTMGR->GetHeroDok());
*/
}
void CCharacterDialog::SetExpPointPercent(float perc)
{
static char buf[66];
sprintf(buf, "[%.2f%%]", perc);
#ifdef _CHEATENABLE_
if(CHEATMGR->IsCheatEnable())
{
char buf1[66];
wsprintf(buf1, " : %d/%d", HERO->GetExpPoint(), HERO->GetMaxExpPoint());
strcat(buf, buf1);
}
#endif
m_ppStatic.expPercent->SetStaticText(buf);
}
void CCharacterDialog::SetLevel(WORD level)
{
m_ppStatic.level->SetStaticValue(level);
}
void CCharacterDialog::SetLife(DWORD life)
{
//GuageOverCheck
if(life > HERO->GetMaxLife())
life = HERO->GetMaxLife();
#ifdef _DEBUG
char buf1[66];
wsprintf(buf1, "%d/%d", life, HERO->GetMaxLife());
m_ppStatic.life->SetStaticText(buf1);
#else
m_ppStatic.life->SetStaticValue(life);
#endif
}
void CCharacterDialog::SetShield(DWORD Shield)
{
//GuageOverCheck
if(Shield > HERO->GetMaxShield())
Shield = HERO->GetMaxShield();
#ifdef _DEBUG
char buf1[66];
wsprintf(buf1, "%d/%d", Shield, HERO->GetMaxShield());
m_ppStatic.Shield->SetStaticText(buf1);
#else
m_ppStatic.Shield->SetStaticValue(Shield);
#endif
}
void CCharacterDialog::SetNaeRyuk(DWORD naeryuk)
{
//GuageOverCheck
if(naeryuk > HERO->GetMaxNaeRyuk())
naeryuk = HERO->GetMaxNaeRyuk();
#ifdef _DEBUG
char buf1[66];
wsprintf(buf1, "%d/%d", naeryuk, HERO->GetMaxNaeRyuk());
m_ppStatic.naeryuk->SetStaticText(buf1);
#else
m_ppStatic.naeryuk->SetStaticValue(naeryuk);
#endif
}
void CCharacterDialog::SetGenGol()
{
WORD resVal = HERO->GetGenGol();
m_ppStatic.genGoal->SetStaticValue(resVal);
}
void CCharacterDialog::SetMinChub()
{
WORD resVal = HERO->GetMinChub();
m_ppStatic.minchub->SetStaticValue(resVal);
}
void CCharacterDialog::SetCheRyuk()
{
WORD resVal = HERO->GetCheRyuk();
m_ppStatic.cheryuk->SetStaticValue(resVal);
}
void CCharacterDialog::SetSimMek()
{
WORD resVal = HERO->GetSimMek();
m_ppStatic.simmak->SetStaticValue(resVal);
}
void CCharacterDialog::SetFame(FAMETYPE fame)
{
m_ppStatic.fame->SetStaticValue(fame);
}
void CCharacterDialog::SetBadFame(FAMETYPE badfame)
{
m_ppStatic.badfame->SetStaticValue(badfame);
}
void CCharacterDialog::SetAttackRate()
{
char buf1[66];
DWORD minv,maxv;
minv = HERO->GetPhyAttackPowerMin();
maxv = HERO->GetPhyAttackPowerMax();
wsprintf(buf1, "%d ~ %d", minv, maxv);
if( HERO->GetWeaponEquipType() != WP_GUNG &&
HERO->GetWeaponEquipType() != WP_AMGI )
{
m_ppStatic.rangeattack->SetStaticText("-");
m_ppStatic.meleeattack->SetStaticText(buf1);
}
else
{
m_ppStatic.meleeattack->SetStaticText("-");
m_ppStatic.rangeattack->SetStaticText(buf1);
}
}
void CCharacterDialog::SetDefenseRate()
{
m_ppStatic.defense->SetStaticValue(HERO->GetPhyDefense());
}
void CCharacterDialog::SetCritical()
{
DWORD resVal = HERO->GetCritical();
m_ppStatic.critical->SetStaticValue(resVal);
}
void CCharacterDialog::SetAttackRange()
{
float addRange = HERO->GetAddAttackRange();
float range;
if( HERO->GetWeaponEquipType() == WP_GUNG )
{
range = SKILLMGR->GetSkillInfo(COMBO_GUNG_MIN)->GetSkillRange();
m_ppStatic.attackdistance->SetStaticValue((LONG)(addRange + range));
}
else if(HERO->GetWeaponEquipType() == WP_AMGI)
{
range = SKILLMGR->GetSkillInfo(COMBO_AMGI_MIN)->GetSkillRange();
m_ppStatic.attackdistance->SetStaticValue((LONG)(addRange + range));
}
else
{
m_ppStatic.attackdistance->SetStaticText("-");
}
}
void CCharacterDialog::SetPointLeveling(BOOL val, WORD point)
{
m_nocoriPoint = point;
m_ppStatic.point->SetStaticValue(m_nocoriPoint);
for(int i = 0 ; i < MAX_BTN_POINT ; i++)
m_pPointBtn[i]->SetActive(val);
}
void CCharacterDialog::OnAddPoint(BYTE whatsPoint)
{
MSG_WORD msg;
msg.Category = MP_CHAR;
msg.Protocol = MP_CHAR_POINTADD_SYN;
msg.dwObjectID = HEROID;
msg.wData = whatsPoint;
if(--m_nocoriPoint <= 0)
{
SetPointLeveling(FALSE);
//return;
}
m_ppStatic.point->SetStaticValue(m_nocoriPoint);
NETWORK->Send(&msg,sizeof(MSG_WORD));
}
void CCharacterDialog::RefreshMunpaInfo()
{
BYTE rank = HERO->GetGuildMemberRank();
m_ppStatic.munpa->SetStaticText(HERO->GetMunpaName());
if(rank == GUILD_NOTMEMBER)
{
m_ppStatic.jikwe->SetStaticText("");
m_pMunpaMarkDlg->SetActive(FALSE);
}
else
{
m_pMunpaMarkDlg->SetActive(FALSE); //绝局具瘤...
m_ppStatic.jikwe->SetStaticText( GUILDMGR->GetRankName(HERO->GetGuildMemberRank()) );
}
m_ppStatic.fame->SetStaticValue(HERO->GetFame());
}
void CCharacterDialog::SetActive( BOOL val )
{
cDialog::SetActive( val );
//--- main bar icon
CMainBarDialog* pDlg = GAMEIN->GetMainInterfaceDialog();
if( pDlg )
{
// pDlg->SetPushBarIcon( OPT_CHARACTERDLGICON, m_bActive );
if( val == TRUE )
pDlg->SetAlram( OPT_CHARACTERDLGICON, FALSE );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -