⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chrtacquest.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// 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 + -