📄 taticinitdlg.cpp
字号:
// TaticInitDlg.cpp : implementation file
//
#include "stdafx.h"
#include "rmtool.h"
#include "TaticInitDlg.h"
#include "CharMgrView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTaticInitDlg dialog
CTaticInitDlg::CTaticInitDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTaticInitDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTaticInitDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTaticInitDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
// 阿 牧飘费阑 秦寸 函荐俊 拱赴促.
UINT ComboLevelID = IDC_COMBO_LEVEL_0;
UINT ButtonID = IDC_MOVE_0;
UINT ExpmaxID = IDC_EXP_MAX_0;
UINT ExpID = IDC_EXP_0;
UINT StepID = IDC_STEP_0;
for(int i = 0; i < MAX_TACTICS; i++)
{
DDX_Control(pDX, ComboLevelID + i, m_ctrlComboLevel[i]); // 霓焊 牧飘费阑 ID俊 拱府扁
DDX_Control(pDX, ButtonID + i, m_ctrlBtnMove[i]); // 滚瓢 牧飘费阑 ID俊 拱府扁
DDX_Text(pDX, ExpmaxID + i, m_dwExpMax[i]); // EXP_MAX 咆胶飘甫 ID俊 拱府扁
DDX_Text(pDX, ExpID + i, m_dwExp[i]); // EXP 咆胶飘甫 ID俊 拱府扁
DDX_Text(pDX, StepID + i, m_nStep[i]); // EXP_STEP 咆胶飘甫 ID俊 拱府扁
}
//{{AFX_DATA_MAP(CTaticInitDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTaticInitDlg, CDialog)
//{{AFX_MSG_MAP(CTaticInitDlg)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_0, OnSelchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_0, OnEditchangeComboLevel)
ON_BN_CLICKED(IDC_MOVE_0, OnMove)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_1, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_2, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_3, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_4, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_5, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_6, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_7, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_8, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_9, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_10, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_11, OnSelchangeComboLevel)
ON_CBN_SELCHANGE(IDC_COMBO_LEVEL_12, OnSelchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_1, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_2, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_3, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_4, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_5, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_6, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_7, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_8, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_9, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_10, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_11, OnEditchangeComboLevel)
ON_CBN_EDITCHANGE(IDC_COMBO_LEVEL_12, OnEditchangeComboLevel)
ON_BN_CLICKED(IDC_MOVE_1, OnMove)
ON_BN_CLICKED(IDC_MOVE_2, OnMove)
ON_BN_CLICKED(IDC_MOVE_3, OnMove)
ON_BN_CLICKED(IDC_MOVE_4, OnMove)
ON_BN_CLICKED(IDC_MOVE_5, OnMove)
ON_BN_CLICKED(IDC_MOVE_6, OnMove)
ON_BN_CLICKED(IDC_MOVE_7, OnMove)
ON_BN_CLICKED(IDC_MOVE_8, OnMove)
ON_BN_CLICKED(IDC_MOVE_9, OnMove)
ON_BN_CLICKED(IDC_MOVE_10, OnMove)
ON_BN_CLICKED(IDC_MOVE_11, OnMove)
ON_BN_CLICKED(IDC_MOVE_12, OnMove)
ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTaticInitDlg message handlers
BOOL CTaticInitDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitCombo(); // ComboBox 檬扁拳
for(int i = 0; i < MAX_TACTICS; i++)
{
m_nStep[i] = 0;
m_dwExpMax[i] = DEFAULT_TACTIC_VALUE;
m_dwExp[i] = 0;
}
UpdateData( FALSE );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTaticInitDlg::InitCombo()
{
// 阿 霓焊冠胶狼 檬扁拳
char temp[0xff];
for(int i = 0; i < MAX_TACTICS; i++)
{
for(int j = 1; j < MAX_TACTIC_LEVEL; j++) // 1何磐 199鳖瘤 蜡瓤窍促 200 篮 X
{
m_ctrlComboLevel[i].AddString(_itoa(j,temp,10));
}
m_ctrlComboLevel[i].SetCurSel(0);
}
}
// 咯矾 霓焊冠胶狼 急琶捞 官拆锭 龋免
void CTaticInitDlg::OnSelchangeComboLevel()
{
// TODO: Add your control notification handler code here
// 器目胶绰 霓焊冠胶狼 酒捞袍捞骨肺 掘篮 器目胶狼 何葛绰 捞亥飘甫 蜡惯茄 霓焊冠胶
CComboBox * pCombo = (CComboBox *)GetFocus()->GetParent();
// 龋免等 仇狼 牢郸胶甫 茫绰促
int nComboIndex = -1;
for( int i = 0; i < MAX_TACTICS; i++)
{
if(pCombo == &m_ctrlComboLevel[i])
{
// i锅掳啊 捞仇捞 龋免等 仇捞促
nComboIndex = i;
break;
}
}
// 弊凡府具 绝摆瘤父 窃 八荤茄促
if(nComboIndex < 0) return;
char szTemp[ 16 ];
int nIndex = m_ctrlComboLevel[nComboIndex].GetCurSel();
m_ctrlComboLevel[nComboIndex].GetLBText( nIndex, szTemp );
if(!strcmp(szTemp,"")) return;
int nLevel = atoi(szTemp);
if(nLevel > 255 || nLevel < 1) // 涝仿蔼狼 捞惑蜡公甫 八荤
{
MessageBox("Not a Range In this Level");
return;
}
// 捞惑绝捞 茫疽促 捞力 牢郸胶肺 公攫啊甫 且荐 乐促
if(!GetExpFromTacticLevel(nLevel, m_dwExpMax[nComboIndex], m_nStep[nComboIndex]))
{
MessageBox("Can't Get Max Exp");
}
UpdateData( FALSE );
}
// 咯矾 霓焊冠胶狼 臂磊啊 官拆锭 龋免
void CTaticInitDlg::OnEditchangeComboLevel()
{
// TODO: Add your control notification handler code here
// 器目胶绰 霓焊冠胶狼 酒捞袍捞骨肺 掘篮 器目胶狼 何葛绰 捞亥飘甫 蜡惯茄 霓焊冠胶
CComboBox * pCombo = (CComboBox *)GetFocus()->GetParent();
// 龋免等 仇狼 牢郸胶甫 茫绰促
int nComboIndex = -1;
for( int i = 0; i < MAX_TACTICS; i++)
{
if(pCombo == &m_ctrlComboLevel[i])
{
// i锅掳啊 捞仇捞 龋免等 仇捞促
nComboIndex = i;
break;
}
}
// 弊凡府具 绝摆瘤父 窃 八荤茄促
if(nComboIndex < 0) return;
char szTemp[ 16 ];
m_ctrlComboLevel[i].GetWindowText(szTemp,16);
if(!strcmp(szTemp,"")) return;
int nLevel = atoi(szTemp);
if(nLevel > 255 || nLevel < 1) // 涝仿蔼狼 捞惑蜡公甫 八荤
{
MessageBox("Not a Range In this Level");
return;
}
// 捞惑绝捞 茫疽促 捞力 牢郸胶肺 公攫啊甫 且荐 乐促
if(!GetExpFromTacticLevel(nLevel, m_dwExpMax[nComboIndex], m_nStep[nComboIndex]))
{
MessageBox("Can't Get Max Exp");
}
UpdateData( FALSE );
}
// 咯矾 滚瓢狼 努腐矫 龋免
void CTaticInitDlg::OnMove()
{
// TODO: Add your control notification handler code here
// 捞亥飘甫 蜡惯茄 滚瓢阑 茫绰促
CButton * pCombo = (CButton *)GetFocus();
// 龋免等 仇狼 牢郸胶甫 茫绰促
int nComboIndex = -1;
for( int i = 0; i < MAX_TACTICS; i++)
{
if(pCombo == &m_ctrlBtnMove[i])
{
// i锅掳啊 捞仇捞 龋免等 仇捞促
nComboIndex = i;
break;
}
}
// 弊凡府具 绝摆瘤父 窃 八荤茄促
if(nComboIndex < 0) return;
m_dwExp[nComboIndex] = m_dwExpMax[nComboIndex];
UpdateData( FALSE );
}
// charTacQuest.h俊辑 垛绢吭促.
bool CTaticInitDlg::GetExpFromTacticLevel(int nLevel, DWORD &dwMaxExp, int &nStep)
{
CCharMgrView* pView = (CCharMgrView*)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 CTaticInitDlg::OnBtnSave()
{
// TODO: Add your control notification handler code here
if( !RIGHT(MASK_19) ) return;
if( MessageBox( "Do you want to Save Tactic", "Tactic", MB_YESNO ) != IDYES) return;
CCharMgrView* pView = (CCharMgrView*)GetParent();
if( strcmp(g_CurDbName[ pView->m_nCurDbIndex ], g_NationAccount.szDragon_DB_DefaultName[pView->m_nCurDbIndex]) )
{
MessageBox("Don't Change In Backup DB Data!");
return;
}
UpdateData();
// 悸泼且 单捞鸥甸阑 啊廉柯促
TACTICANDSTEP data;
::memset(&data, 0L, sizeof(data));
for(int i = 0; i < MAX_TACTICS; i++)
{
data.TacticExp[i] = m_dwExp[i];
data.guildname[i+3] = m_nStep[i] + 1; // 胶跑篮 1何磐 矫累
}
// 傈眉 捞抚阑 倒哥 累诀俊 甸绢埃促
CString Str; // 某腐磐 捞抚
char szQuery[0xff]; // 舅瘤? 孽府巩捞具
WCHAR wszQuery[0xff]; // 捞巴档 孽府巩
char questdata[20]; // 鞘靛疙篮 guildname捞瘤父 荤角篮 questdata客 咆平 胶跑
::memset(&questdata, 0L, sizeof(questdata));
DBBINDING* pBinding = 0L;
for( i = 0; i < pView->m_vChrNames.size(); i++)
{
// 辨靛 单捞鸥甫 啊廉客 官差搁 臼瞪 郴侩阑 汗荤秦柯促
Str = pView->m_vChrNames[i];
sprintf(szQuery, "Select [guildname] from chr_info where name = '%s'", Str.GetBuffer(Str.GetLength()));
g_pDb->KSCToUnicode(szQuery, wszQuery);
int result = g_pDb->OpenRecord( wszQuery, &questdata, 1, (BYTE)DRAGON_DB[ pView->m_nCurDbIndex ]);
if(!result) //ret==0
{
// Have no Charater! 颇老肺 肺弊甫 巢辨鳖唱?
//MessageBox("Have no Charater!");
// return;
}
else if(result < 0)
{
// fail to update chr_info_binary! //捞巴档 颇老肺 巢辨鳖?
//MessageBox("fail to update chr_info_binary!");
return;
}
char * point = &questdata[0];
memcpy(&data.guildname[0], point, 3); // 胶跑狼 菊率 data 汗荤
point = &questdata[16];
memcpy(&data.guildname[16], point, 4); // 胶跑狼 菊率 data 汗荤
// 函荐官牢爹 矫累
int nColumn = 2;
DWORD dwParamOffset = 0;
pBinding = g_pDb->CreateParamInfo( (BYTE)nColumn, (BYTE)DRAGON_DB[pView->m_nCurDbIndex]);
if(!pBinding) { MessageBox("Failed CreateParamInfo"); return; }
pBinding[0].obValue = dwParamOffset;
pBinding[0].cbMaxLen = sizeof(data.TacticExp);
pBinding[0].wType = DBTYPE_BYTES;
dwParamOffset += sizeof(data.TacticExp);
pBinding[1].obValue = dwParamOffset;
pBinding[1].cbMaxLen = sizeof(data.guildname);
pBinding[1].wType = DBTYPE_BYTES;
dwParamOffset += sizeof(data.guildname);
// UPDATE 角青阑 窍磊
sprintf(szQuery, "Update chr_info set tac_skillexp=?, guildname=? "
"where [name]='%s'", Str.GetBuffer(Str.GetLength()));
g_pDb->KSCToUnicode(szQuery, wszQuery);
result = g_pDb->ExecuteSQLByParam(wszQuery, pBinding, &data, (BYTE)nColumn, (BYTE)DRAGON_DB[pView->m_nCurDbIndex]);
if(!result) //ret==0
{
// Have no Charater! 颇老肺 肺弊甫 巢辨鳖唱?
//MessageBox("Have no Charater!");
// return;
}
else if(result < 0)
{
// fail to update chr_info_binary! //捞巴档 颇老肺 巢辨鳖?
//MessageBox("fail to update chr_info_binary!");
return;
}
}
}
int CTaticInitDlg::GetStep(DWORD dwExp)
{
// 捞窃荐绰 父靛绰吝
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -