📄 chrtacquest.cpp
字号:
// ChrTacQuest.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "ChrTacQuest.h"
#include "CharacterView.h"
//#include "dbstruct.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChrTacQuest dialog
CChrTacQuest::CChrTacQuest(CWnd* pParent /*=NULL*/)
: CDialog(CChrTacQuest::IDD, pParent)
{
//{{AFX_DATA_INIT(CChrTacQuest)
m_dwExp0 = 0;
m_dwExp1 = 0;
m_dwExp2 = 0;
m_dwExp3 = 0;
m_dwExp4 = 0;
m_dwExp5 = 0;
m_dwExp6 = 0;
m_dwExp7 = 0;
m_dwExp8 = 0;
m_dwExp9 = 0;
m_dwExp10 = 0;
m_dwExp11 = 0;
m_dwExp12 = 0;
m_dwExpMax0 = 0;
m_dwExpMax1 = 0;
m_dwExpMax2 = 0;
m_dwExpMax3 = 0;
m_dwExpMax4 = 0;
m_dwExpMax5 = 0;
m_dwExpMax6 = 0;
m_dwExpMax7 = 0;
m_dwExpMax8 = 0;
m_dwExpMax9 = 0;
m_dwExpMax10 = 0;
m_dwExpMax11 = 0;
m_dwExpMax12 = 0;
m_nStep0 = 0;
m_nStep1 = 0;
m_nStep2 = 0;
m_nStep3 = 0;
m_nStep4 = 0;
m_nStep5 = 0;
m_nStep6 = 0;
m_nStep7 = 0;
m_nStep8 = 0;
m_nStep9 = 0;
m_nStep10 = 0;
m_nStep11 = 0;
m_nStep12 = 0;
m_nQuestNo = 0;
m_nQuestValue = 0;
//}}AFX_DATA_INIT
}
void CChrTacQuest::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChrTacQuest)
DDX_Control(pDX, IDC_QUEST_VALUE, c_QuestValue);
DDX_Control(pDX, IDC_QUEST, c_Quest);
DDX_Control(pDX, IDC_COMBO_LEVEL_0, c_Level0);
DDX_Control(pDX, IDC_COMBO_LEVEL_1, c_Level1);
DDX_Control(pDX, IDC_COMBO_LEVEL_2, c_Level2);
DDX_Control(pDX, IDC_COMBO_LEVEL_3, c_Level3);
DDX_Control(pDX, IDC_COMBO_LEVEL_4, c_Level4);
DDX_Control(pDX, IDC_COMBO_LEVEL_5, c_Level5);
DDX_Control(pDX, IDC_COMBO_LEVEL_6, c_Level6);
DDX_Control(pDX, IDC_COMBO_LEVEL_7, c_Level7);
DDX_Control(pDX, IDC_COMBO_LEVEL_8, c_Level8);
DDX_Control(pDX, IDC_COMBO_LEVEL_9, c_Level9);
DDX_Control(pDX, IDC_COMBO_LEVEL_10, c_Level10);
DDX_Control(pDX, IDC_COMBO_LEVEL_11, c_Level11);
DDX_Control(pDX, IDC_COMBO_LEVEL_12, c_Level12);
DDX_Text(pDX, IDC_EXP_0, m_dwExp0);
DDX_Text(pDX, IDC_EXP_1, m_dwExp1);
DDX_Text(pDX, IDC_EXP_2, m_dwExp2);
DDX_Text(pDX, IDC_EXP_3, m_dwExp3);
DDX_Text(pDX, IDC_EXP_4, m_dwExp4);
DDX_Text(pDX, IDC_EXP_5, m_dwExp5);
DDX_Text(pDX, IDC_EXP_6, m_dwExp6);
DDX_Text(pDX, IDC_EXP_7, m_dwExp7);
DDX_Text(pDX, IDC_EXP_8, m_dwExp8);
DDX_Text(pDX, IDC_EXP_9, m_dwExp9);
DDX_Text(pDX, IDC_EXP_10, m_dwExp10);
DDX_Text(pDX, IDC_EXP_11, m_dwExp11);
DDX_Text(pDX, IDC_EXP_12, m_dwExp12);
DDX_Text(pDX, IDC_EXP_MAX_0, m_dwExpMax0);
DDX_Text(pDX, IDC_EXP_MAX_1, m_dwExpMax1);
DDX_Text(pDX, IDC_EXP_MAX_2, m_dwExpMax2);
DDX_Text(pDX, IDC_EXP_MAX_3, m_dwExpMax3);
DDX_Text(pDX, IDC_EXP_MAX_4, m_dwExpMax4);
DDX_Text(pDX, IDC_EXP_MAX_5, m_dwExpMax5);
DDX_Text(pDX, IDC_EXP_MAX_6, m_dwExpMax6);
DDX_Text(pDX, IDC_EXP_MAX_7, m_dwExpMax7);
DDX_Text(pDX, IDC_EXP_MAX_8, m_dwExpMax8);
DDX_Text(pDX, IDC_EXP_MAX_9, m_dwExpMax9);
DDX_Text(pDX, IDC_EXP_MAX_10, m_dwExpMax10);
DDX_Text(pDX, IDC_EXP_MAX_11, m_dwExpMax11);
DDX_Text(pDX, IDC_EXP_MAX_12, m_dwExpMax12);
DDX_Text(pDX, IDC_STEP_0, m_nStep0);
DDX_Text(pDX, IDC_STEP_1, m_nStep1);
DDX_Text(pDX, IDC_STEP_2, m_nStep2);
DDX_Text(pDX, IDC_STEP_3, m_nStep3);
DDX_Text(pDX, IDC_STEP_4, m_nStep4);
DDX_Text(pDX, IDC_STEP_5, m_nStep5);
DDX_Text(pDX, IDC_STEP_6, m_nStep6);
DDX_Text(pDX, IDC_STEP_7, m_nStep7);
DDX_Text(pDX, IDC_STEP_8, m_nStep8);
DDX_Text(pDX, IDC_STEP_9, m_nStep9);
DDX_Text(pDX, IDC_STEP_10, m_nStep10);
DDX_Text(pDX, IDC_STEP_11, m_nStep11);
DDX_Text(pDX, IDC_STEP_12, m_nStep12);
DDX_Text(pDX, IDC_QUEST_NO, m_nQuestNo);
DDX_Text(pDX, IDC_QUEST_VALUE, m_nQuestValue);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChrTacQuest, CDialog)
//{{AFX_MSG_MAP(CChrTacQuest)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_0, OnSelchangeComboLevel0)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_1, OnSelchangeComboLevel1)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_2, OnSelchangeComboLevel2)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_3, OnSelchangeComboLevel3)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_4, OnSelchangeComboLevel4)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_5, OnSelchangeComboLevel5)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_6, OnSelchangeComboLevel6)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_7, OnSelchangeComboLevel7)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_8, OnSelchangeComboLevel8)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_9, OnSelchangeComboLevel9)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_10, OnSelchangeComboLevel10)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_11, OnSelchangeComboLevel11)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_12, OnSelchangeComboLevel12)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_0, OnEditchangeComboLevel0)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_1, OnEditchangeComboLevel1)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_10, OnEditchangeComboLevel10)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_11, OnEditchangeComboLevel11)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_12, OnEditchangeComboLevel12)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_2, OnEditchangeComboLevel2)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_3, OnEditchangeComboLevel3)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_4, OnEditchangeComboLevel4)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_5, OnEditchangeComboLevel5)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_6, OnEditchangeComboLevel6)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_7, OnEditchangeComboLevel7)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_8, OnEditchangeComboLevel8)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_9, OnEditchangeComboLevel9)
ON_BN_CLICKED(IDC_MOVE_0, OnMove0)
ON_BN_CLICKED(IDC_MOVE_1, OnMove1)
ON_BN_CLICKED(IDC_MOVE_2, OnMove2)
ON_BN_CLICKED(IDC_MOVE_3, OnMove3)
ON_BN_CLICKED(IDC_MOVE_4, OnMove4)
ON_BN_CLICKED(IDC_MOVE_5, OnMove5)
ON_BN_CLICKED(IDC_MOVE_6, OnMove6)
ON_BN_CLICKED(IDC_MOVE_7, OnMove7)
ON_BN_CLICKED(IDC_MOVE_8, OnMove8)
ON_BN_CLICKED(IDC_MOVE_9, OnMove9)
ON_BN_CLICKED(IDC_MOVE_10, OnMove10)
ON_BN_CLICKED(IDC_MOVE_11, OnMove11)
ON_BN_CLICKED(IDC_MOVE_12, OnMove12)
ON_NOTIFY(NM_CLICK, IDC_QUEST, OnClickQuest)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChrTacQuest message handlers
BOOL CChrTacQuest::OnInitDialog()
{
CDialog::OnInitDialog();
m_pApp = (CRMToolApp*)AfxGetApp();
//傈眉 急琶 登绰 可记
c_Quest.SetExtendedStyle(LVS_EX_FULLROWSELECT);
c_Quest.SetExtendedStyle(LVS_EX_FULLROWSELECT);
//ComboBox 檬扁拳 饭骇 255鳖瘤..
CComboBox *temp_lv = &c_Level0; //Lev 哪焊冠胶 牧飘费 函荐 器牢磐
char temp[0xff];
for(int j=1 ; j<MAX_TATIC_LEVEL ; j++)
{
for( int i=0; i<13; i++)
{
(temp_lv+i)->AddString(_itoa(j,temp,10));
}
}
//ListView 牧飘费 檬扁拳.. 漠烦汲沥
LV_COLUMN col;
col.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_FMT;
col.fmt = LVCFMT_LEFT;
col.cx = 50;
col.pszText = "No";
col.cchTextMax = 100;
col.iSubItem = 0;
c_Quest.InsertColumn(0, &col);
col.cx = 100;
col.iSubItem = 1;
col.pszText = "Value";
c_Quest.InsertColumn(1, &col);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CChrTacQuest::RefreshData()
{
CCharacterView* pView = (CCharacterView*)GetParent();
DWORD *pMaxExp = &m_dwExpMax0;
DWORD *pExp = &m_dwExp0;
int *pStep = &m_nStep0;
CComboBox *pLevel = &c_Level0;
DWORD dwLevel = 0;
char szTemp[ 16 ];
for(int i=0; i<13; i++)
{
*(pStep + i) = (int)pView->m_ChrInfo.guildname[ 3 + i ];
*(pExp + i) = (int)pView->m_ChrInfoEtc.tac_skillexp[ i ];
GetLevelFromTacticExp(*(pExp + i), *(pStep + i),
*(pMaxExp + i), dwLevel);
//toa(dwLevel,szTemp, 10);
_itoa(dwLevel+1,szTemp, 10); //角力 霸烙俊辑绰 +1茄 蔼栏肺 焊咯柳促. 弊贰辑 砒俊辑档 度鞍捞 焊捞霸 茄促.
(pLevel + i)->SetWindowText(szTemp);
}
c_Quest.DeleteAllItems();
//Quest ListBox 盲快扁
char temp[0xff];
LVITEM item;
for(i=0; i<300; i++)
{
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = _itoa(i, temp, 10);
item.iItem = i;
item.iSubItem = 0;
item.lParam = i;
c_Quest.InsertItem(&item);
item.mask = LVIF_TEXT;
item.iSubItem = 1;
item.pszText = _itoa(pView->m_ChrInfoEtc.script_var[i], temp, 10);
c_Quest.SetItem(&item);
}
UpdateData(FALSE);
}
//nExp客 nStep 蔼栏肺 琶平 饭骇苞 MaxExp 蔼阑 备秦辰促.
BOOL CChrTacQuest::GetLevelFromTacticExp(int nExp, int nStep, DWORD &dwMaxExp, DWORD &dwLevel)
{
CCharacterView* pView = (CCharacterView*)GetParent();
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
LevelFromTacticExp Data;
sprintf(szQuery, "select top 1 lv,exp_max from NPC_Lv2Exp where step=%d and "
"exp_min<=%d order by lv desc",nStep,nExp);
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->OpenRecord(wszQuery, &Data, 1, (BYTE)CON);
if(ret < 1)
{
MessageBox("Fail to query GetLevelFromTacticExp!");
return FALSE;
}
dwMaxExp = Data.dwMaxExp;
dwLevel = Data.dwLevel;
return TRUE;
}
BOOL CChrTacQuest::GetExpFromTacticLevel(int nLevel, DWORD &dwMaxExp, int &nStep)
{
CCharacterView* pView = (CCharacterView*)GetParent();
ExpFromTacticLevel Data;
char szQuery[ 0xff ];
WCHAR wszQuery[ 0xff ];
sprintf(szQuery, "select exp_max, step from NPC_Lv2Exp where lv=%d" ,nLevel);
g_pDb->KSCToUnicode(szQuery,wszQuery);
int ret = g_pDb->OpenRecord(wszQuery, &Data, 1, (BYTE)CON);
if(ret < 1)
{
MessageBox("Fail to query GetExpFromTacticLevel!");
return FALSE;
}
dwMaxExp = Data.dwMaxExp;
nStep = Data.dwStep;
return TRUE;
}
void CChrTacQuest::OnSelchangeComboLevel0()
{
// TODO: Add your control notification handler code here
char szTemp[ 16 ];
int nIndex = c_Level0.GetCurSel();
c_Level0.GetLBText( nIndex, szTemp );
GetExpFromTacticLevel(atoi(szTemp), m_dwExpMax0, m_nStep0);
UpdateData( FALSE );
}
void CChrTacQuest::OnSelchangeComboLevel1()
{
// TODO: Add your control notification handler code here
char szTemp[ 16 ];
int nIndex = c_Level1.GetCurSel();
c_Level1.GetLBText( nIndex, szTemp );
GetExpFromTacticLevel(atoi(szTemp), m_dwExpMax1, m_nStep1);
UpdateData( FALSE );
}
void CChrTacQuest::OnSelchangeComboLevel2()
{
// TODO: Add your control notification handler code here
char szTemp[ 16 ];
int nIndex = c_Level2.GetCurSel();
c_Level2.GetLBText( nIndex, szTemp );
GetExpFromTacticLevel(atoi(szTemp), m_dwExpMax2, m_nStep2);
UpdateData( FALSE );
}
void CChrTacQuest::OnSelchangeComboLevel3()
{
// TODO: Add your control notification handler code here
char szTemp[ 16 ];
int nIndex = c_Level3.GetCurSel();
c_Level3.GetLBText( nIndex, szTemp );
GetExpFromTacticLevel(atoi(szTemp), m_dwExpMax3, m_nStep3);
UpdateData( FALSE );
}
void CChrTacQuest::OnSelchangeComboLevel4()
{
// TODO: Add your control notification handler code here
char szTemp[ 16 ];
int nIndex = c_Level4.GetCurSel();
c_Level4.GetLBText( nIndex, szTemp );
GetExpFromTacticLevel(atoi(szTemp), m_dwExpMax4, m_nStep4);
UpdateData( FALSE );
}
void CChrTacQuest::OnSelchangeComboLevel5()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -