Files
wnmj/Servers/服务器组件/模块管理/DlgServerWizard.cpp

2563 lines
74 KiB
C++
Raw Normal View History

2026-02-13 14:34:15 +08:00
#include "StdAfx.h"
#include "Resource.h"
#include "DlgServerWizard.h"
#include "ModuleDBParameter.h"
#include ".\dlgserverwizard.h"
//////////////////////////////////////////////////////////////////////////////////
//ҳ<><EFBFBD><E6B6A8>
#define ITEM_SERVER_OPTION_1 0 //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#define ITEM_SERVER_OPTION_2 1 //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#define ITEM_SERVER_OPTION_3 2 //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
#define ITEM_SERVER_OPTION_4 3
#define ITEM_SERVER_OPTION_CUSTOM 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SUB_GP_GET_PARAMETER 100 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
#define SUB_GP_ADD_PARAMETER 101 //<2F><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
#define SUB_GP_MODIFY_PARAMETER 102 //<2F>޸IJ<DEB8><C4B2><EFBFBD>
#define SUB_GP_DELETE_PARAMETER 103 //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MIN_INOUTINTERVAL 30*60 //<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
#define MAX_INOUTINTERVAL 24*3600 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDlgServerOptionItem, CDialog)
ON_WM_SIZE()
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerWizardItem, CDialog)
ON_WM_SIZE()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDlgServerOptionItem1, CDlgServerOptionItem)
ON_CBN_SELCHANGE(IDC_SERVER_TYPE, OnSelchangeServerType)
ON_BN_CLICKED(IDC_REVENUE_RADIO, OnBnClickedRevenueRadio)
ON_BN_CLICKED(IDC_SERVICE_RADIO, OnBnClickedServiceRadio)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerOptionItem2, CDlgServerOptionItem)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerOptionItem3, CDlgServerOptionItem)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerOptionItem4, CDlgServerOptionItem)
ON_BN_CLICKED(IDC_BT_ADD, OnBnClickedBtAdd)
ON_BN_CLICKED(IDC_BT_MODIFY, OnBnClickedBtModify)
ON_BN_CLICKED(IDC_BT_DELETE, OnBnClickedBtDelete)
ON_NOTIFY(LVN_DELETEITEM, IDC_LIST_PARAMETER, OnLvnListParameterDeleteitem)
ON_NOTIFY(NM_CLICK, IDC_LIST_PARAMETER, OnHdnListParameterItemclick)
ON_NOTIFY(LVN_KEYDOWN, IDC_LIST_PARAMETER, OnLvnKeydownListParameter)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerOptionItemCustom, CDlgServerOptionItem)
ON_WM_SETFOCUS()
ON_WM_NCDESTROY()
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CDlgServerWizardItem1, CDlgServerWizardItem)
ON_NOTIFY(NM_DBLCLK, IDC_MODULE_LIST, OnNMDblclkModuleList)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerWizardItem2, CDlgServerWizardItem)
ON_WM_SETFOCUS()
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_CTRL, OnTcnSelchangeTabCtrl)
END_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CDlgServerWizard, CDialog)
ON_BN_CLICKED(IDC_LAST, OnBnClickedLast)
ON_BN_CLICKED(IDC_NEXT, OnBnClickedNext)
ON_BN_CLICKED(IDC_FINISH, OnBnClickedFinish)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItem::CDlgServerOptionItem(UINT nIDTemplate) : CDialog(nIDTemplate)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_pDlgServerWizard=NULL;
m_pGameServiceAttrib=NULL;
m_pGameServiceOption=NULL;
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem::~CDlgServerOptionItem()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItem::SaveItemData()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_hWnd!=NULL)&&(SaveInputInfo()==false))
{
return false;
}
return true;
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
bool CDlgServerOptionItem::ShowOptionItem(const CRect & rcRect, CWnd * pParentWnd)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_hWnd==NULL)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Create(m_lpszTemplateName,pParentWnd);
SetWindowPos(NULL,rcRect.left,rcRect.top,rcRect.Width(),rcRect.Height(),SWP_NOZORDER|SWP_NOACTIVATE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(NULL));
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
ShowWindow(SW_SHOW);
return true;
}
//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem::OnOK()
{
//Ͷ<><CDB6><EFBFBD><EFBFBD>Ϣ
m_pDlgServerWizard->PostMessage(WM_COMMAND,MAKELONG(IDOK,0),0);
return;
}
//ȡ<><C8A1><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerOptionItem::OnCancel()
{
//Ͷ<><CDB6><EFBFBD><EFBFBD>Ϣ
m_pDlgServerWizard->PostMessage(WM_COMMAND,MAKELONG(IDCANCEL,0),0);
return;
}
//λ<><CEBB><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerOptionItem::OnSize(UINT nType, INT cx, INT cy)
{
__super::OnSize(nType, cx, cy);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
RectifyControl(cx,cy);
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItem1::CDlgServerOptionItem1() : CDlgServerOptionItem(IDD_SERVER_OPTION_1)
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem1::~CDlgServerOptionItem1()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerOptionItem1::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
InitCtrlWindow();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pServerType=(CComboBox *)GetDlgItem(IDC_SERVER_TYPE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->szServerName[0]==0)
{
SetDlgItemText(IDC_SERVER_NAME,m_pGameServiceAttrib->szGameName);
}
else SetDlgItemText(IDC_SERVER_NAME,m_pGameServiceOption->szServerName);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
if (m_pGameServiceOption->wTableCount!=0)
{
SetDlgItemInt(IDC_TABLE_COUNT,m_pGameServiceOption->wTableCount);
}
else if (m_pGameServiceAttrib->wChairCount >= MAX_CHAIR)
{
SetDlgItemInt(IDC_TABLE_COUNT,1);
}
else
{
SetDlgItemInt(IDC_TABLE_COUNT,60);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
if (m_pGameServiceOption->wServerPort!=0)
{
SetDlgItemInt(IDC_SERVER_PORT,m_pGameServiceOption->wServerPort);
}
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
if (m_pGameServiceOption->szDataBaseName[0]!=0)
{
SetDlgItemText(IDC_DATABASE_NAME,m_pGameServiceOption->szDataBaseName);
}
else SetDlgItemText(IDC_DATABASE_NAME,m_pGameServiceAttrib->szDataBaseName);
//<2F><><EFBFBD>ӵ<EFBFBD>ַ
if (m_pGameServiceOption->szDataBaseAddr[0]!=0)
{
DWORD dwDataBaseAddr=inet_addr(CT2CA(m_pGameServiceOption->szDataBaseAddr));
((CIPAddressCtrl *)GetDlgItem(IDC_DATABASE_ADDR))->SetAddress(htonl(dwDataBaseAddr));
}
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
for (INT i=0;i<pServerType->GetCount();i++)
{
if (pServerType->GetItemData(i)==m_pGameServiceOption->wServerType)
{
pServerType->SetCurSel(i);
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->lCellScore!=0) SetDlgItemInt(IDC_CELL_SCORE,(LONG)m_pGameServiceOption->lCellScore);
if (m_pGameServiceOption->wMaxPlayer!=0) SetDlgItemInt(IDC_MAX_PLAYER,(LONG)m_pGameServiceOption->wMaxPlayer);
if (m_pGameServiceOption->lRestrictScore!=0) SetDlgItemInt(IDC_RESTRICT_SCORE,(LONG)m_pGameServiceOption->lRestrictScore);
if (m_pGameServiceOption->wRevenueRatio!=0)
{
OnBnClickedRevenueRadio();
SetDlgItemInt(IDC_SERVICE_REVENUE,(LONG)m_pGameServiceOption->wRevenueRatio);
((CButton*)GetDlgItem(IDC_REVENUE_RADIO))->SetCheck(BST_CHECKED);
((CButton*)GetDlgItem(IDC_SERVICE_RADIO))->SetCheck(BST_UNCHECKED);
}
else if(m_pGameServiceOption->lServiceScore != 0)
{
OnBnClickedServiceRadio();
SetDlgItemInt(IDC_SERVICE_REVENUE,(LONG)m_pGameServiceOption->lServiceScore);
((CButton*)GetDlgItem(IDC_SERVICE_RADIO))->SetCheck(BST_CHECKED);
((CButton*)GetDlgItem(IDC_REVENUE_RADIO))->SetCheck(BST_UNCHECKED);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>޵׷<DEB5><D7B7><EFBFBD><EFBFBD><EFBFBD>
if(m_pGameServiceAttrib->wChairCount >= MAX_CHAIR)
{
GetDlgItem(IDC_CELL_SCORE)->EnableWindow(FALSE);
}
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
WORD wGameKindID=m_pGameServiceOption->wKindID;
WORD wAttribKindID=m_pGameServiceAttrib->wKindID;
if (m_pGameServiceOption->wNodeID!=0) SetDlgItemInt(IDC_NODE_ID,m_pGameServiceOption->wNodeID);
if (m_pGameServiceOption->wSortID!=0) SetDlgItemInt(IDC_SORT_ID,m_pGameServiceOption->wSortID);
if ((wGameKindID!=0)&&(wGameKindID!=wAttribKindID)) SetDlgItemInt(IDC_KIND_ID,m_pGameServiceOption->wKindID);
//Ĭ<><C4AC>ѡ<EFBFBD><D1A1>
if (pServerType->GetCurSel()==LB_ERR)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
TCHAR szDataBase[32]=TEXT("");
GetDlgItemText(IDC_DATABASE_NAME,szDataBase,CountArray(szDataBase));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServerType=0;
bool bGoldDataBase=(lstrcmpi(szDataBase,szTreasureDB)==0);
bool bDefaultDataBase=(lstrcmpi(szDataBase,m_pGameServiceAttrib->szDataBaseName)==0);
//<2F><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
if ((wServerType==0)&&(bGoldDataBase==true)) wServerType=GAME_GENRE_GOLD;
if ((wServerType==0)&&(bGoldDataBase==false)&&(bDefaultDataBase==true)) wServerType=GAME_GENRE_SCORE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_pGameServiceAttrib->wSupporType&wServerType)!=0L)
{
for (INT i=0;i<pServerType->GetCount();i++)
{
if (pServerType->GetItemData(i)==wServerType)
{
pServerType->SetCurSel(i);
break;
}
}
}
}
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItem1::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pServerType=(CComboBox *)GetDlgItem(IDC_SERVER_TYPE);
CIPAddressCtrl * pIPAddressCtrl=(CIPAddressCtrl *)GetDlgItem(IDC_DATABASE_ADDR);
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
m_pGameServiceOption->wKindID=GetDlgItemInt(IDC_KIND_ID);
m_pGameServiceOption->wNodeID=GetDlgItemInt(IDC_NODE_ID);
m_pGameServiceOption->wSortID=GetDlgItemInt(IDC_SORT_ID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pGameServiceOption->wMaxPlayer=GetDlgItemInt(IDC_MAX_PLAYER);
m_pGameServiceOption->lCellScore=GetDlgItemInt(IDC_CELL_SCORE);
m_pGameServiceOption->lRestrictScore=GetDlgItemInt(IDC_RESTRICT_SCORE);
if(((CButton*)GetDlgItem(IDC_REVENUE_RADIO))->GetCheck()==BST_CHECKED)
{
m_pGameServiceOption->wRevenueRatio=GetDlgItemInt(IDC_SERVICE_REVENUE);
m_pGameServiceOption->lServiceScore=0L;
}
else
{
m_pGameServiceOption->lServiceScore=GetDlgItemInt(IDC_SERVICE_REVENUE);
m_pGameServiceOption->wRevenueRatio=0L;
}
//ѡ<><D1A1><EFBFBD>ؼ<EFBFBD>
m_pGameServiceOption->wServerType=(WORD)pServerType->GetItemData(pServerType->GetCurSel());
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pGameServiceOption->wTableCount=GetDlgItemInt(IDC_TABLE_COUNT);
m_pGameServiceOption->wServerPort=GetDlgItemInt(IDC_SERVER_PORT);
GetDlgItemText(IDC_SERVER_NAME,m_pGameServiceOption->szServerName,CountArray(m_pGameServiceOption->szServerName));
GetDlgItemText(IDC_DATABASE_NAME,m_pGameServiceOption->szDataBaseName,CountArray(m_pGameServiceOption->szDataBaseName));
//<2F><><EFBFBD>ӵ<EFBFBD>ַ
DWORD dwDataBaseAddr=INADDR_NONE;
pIPAddressCtrl->GetAddress(dwDataBaseAddr);
_sntprintf_s(m_pGameServiceOption->szDataBaseAddr,CountArray(m_pGameServiceOption->szDataBaseAddr),TEXT("%d.%d.%d.%d"),
*(((BYTE *)&dwDataBaseAddr)+3),*(((BYTE *)&dwDataBaseAddr)+2),*(((BYTE *)&dwDataBaseAddr)+1),*((BYTE *)&dwDataBaseAddr));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->szServerName[0]==0)
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if (m_pGameServiceOption->wServerType==0)
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
if (m_pGameServiceOption->szDataBaseName[0]==0)
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><><EFBFBD>ӵ<EFBFBD>ַ
if (INVALID_IP_ADDRESS(dwDataBaseAddr))
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD>ַ"),MB_ICONERROR);
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
if ((m_pGameServiceOption->wTableCount==0)||(m_pGameServiceOption->wTableCount>MAX_TABLE))
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ΧΪ 1 - 512"),MB_ICONERROR);
return false;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem1::RectifyControl(INT nWidth, INT nHeight)
{
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem1::InitCtrlWindow()
{
//<2F>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>
((CEdit *)GetDlgItem(IDC_KIND_ID))->LimitText(5);
((CEdit *)GetDlgItem(IDC_NODE_ID))->LimitText(5);
((CEdit *)GetDlgItem(IDC_SORT_ID))->LimitText(5);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
((CEdit *)GetDlgItem(IDC_MAX_PLAYER))->LimitText(3);
((CEdit *)GetDlgItem(IDC_CELL_SCORE))->LimitText(6);
((CEdit *)GetDlgItem(IDC_SERVICE_REVENUE))->LimitText(3);
((CButton*)GetDlgItem(IDC_REVENUE_RADIO))->SetCheck(BST_CHECKED);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
((CEdit *)GetDlgItem(IDC_TABLE_COUNT))->LimitText(3);
((CEdit *)GetDlgItem(IDC_SERVER_PORT))->LimitText(5);
((CEdit *)GetDlgItem(IDC_SERVER_NAME))->LimitText(31);
((CEdit *)GetDlgItem(IDC_DATABASE_NAME))->LimitText(31);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pComboBox=(CComboBox *)GetDlgItem(IDC_SERVER_TYPE);
WORD wServerType[4]={GAME_GENRE_GOLD,GAME_GENRE_SCORE,GAME_GENRE_MATCH,GAME_GENRE_EDUCATE};
LPCTSTR pszServerType[4]={TEXT("<EFBFBD>Ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),TEXT("<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),TEXT("˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (INT i=0;i<CountArray(wServerType);i++)
{
if ((m_pGameServiceAttrib->wSupporType&wServerType[i])==0) continue;
pComboBox->SetItemData(pComboBox->AddString(pszServerType[i]),wServerType[i]);
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem1::UpdateDataBaseName()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pServerType=(CComboBox *)GetDlgItem(IDC_SERVER_TYPE);
//<2F><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>
int nSelIndex = pServerType->GetCurSel();
DWORD_PTR wServerType = pServerType->GetItemData(nSelIndex);
switch (wServerType)
{
case GAME_GENRE_GOLD: //<2F>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD><EFBFBD>
case GAME_GENRE_EDUCATE: //˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
{
SetDlgItemText(IDC_DATABASE_NAME,szTreasureDB);
break;
}
case GAME_GENRE_SCORE: //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
{
SetDlgItemText(IDC_DATABASE_NAME,m_pGameServiceAttrib->szDataBaseName);
break;
}
default:
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
TCHAR szDataBase[32]=TEXT("");
GetDlgItemText(IDC_DATABASE_NAME,szDataBase,CountArray(szDataBase));
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if (lstrcmpi(szDataBase,szTreasureDB)==0) SetDlgItemText(IDC_DATABASE_NAME,TEXT(""));
if (lstrcmpi(szDataBase,m_pGameServiceAttrib->szDataBaseName)==0) SetDlgItemText(IDC_DATABASE_NAME,TEXT(""));
break;
}
}
return;
}
//ѡ<><D1A1><EFBFBD>ı<EFBFBD>
VOID CDlgServerOptionItem1::OnSelchangeServerType()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UpdateDataBaseName();
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItem2::CDlgServerOptionItem2() : CDlgServerOptionItem(IDD_SERVER_OPTION_2)
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem2::~CDlgServerOptionItem2()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerOptionItem2::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
InitCtrlWindow();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pMinMember=(CComboBox *)GetDlgItem(IDC_MIN_ENTER_MEMBER);
CComboBox * pMaxMember=(CComboBox *)GetDlgItem(IDC_MAX_ENTER_MEMBER);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->lMinEnterScore!=0) SetDlgItemInt(IDC_MIN_ENTER_SCORE,(LONG)m_pGameServiceOption->lMinEnterScore);
if (m_pGameServiceOption->lMaxEnterScore!=0) SetDlgItemInt(IDC_MAX_ENTER_SCORE,(LONG)m_pGameServiceOption->lMaxEnterScore);
if (m_pGameServiceOption->lMinTableScore!=0) SetDlgItemInt(IDC_MIN_TABLE_SCORE,(LONG)m_pGameServiceOption->lMinTableScore);
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
//if (m_pGameServiceOption->cbMaxEnterMember!=0)
{
//<2F><><EFBFBD>ͻ<EFBFBD>Ա
for (INT i=0;i<pMinMember->GetCount();i++)
{
if (pMinMember->GetItemData(i)==m_pGameServiceOption->cbMinEnterMember)
{
pMinMember->SetCurSel(i);
break;
}
}
//<2F><><EFBFBD>߻<EFBFBD>Ա
for (INT i=0;i<pMaxMember->GetCount();i++)
{
if (pMaxMember->GetItemData(i)==m_pGameServiceOption->cbMaxEnterMember)
{
pMaxMember->SetCurSel(i);
break;
}
}
}
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendGameChat=CServerRule::IsForfendGameChat(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_GAME_CHAT))->SetCheck((bForfendGameChat==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendRoomChat=CServerRule::IsForfendRoomChat(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_ROOM_CHAT))->SetCheck((bForfendRoomChat==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ˽<D6B9><CBBD>
bool bForfendWisperChat=CServerRule::IsForfendWisperChat(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_WISPER_CHAT))->SetCheck((bForfendWisperChat==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ˽<D6B9><CBBD>
bool bForfendWisperOnGame=CServerRule::IsForfendWisperOnGame(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_WISPER_ON_GAME))->SetCheck((bForfendWisperOnGame==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendRoomEnter=CServerRule::IsForfendRoomEnter(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_ROOM_ENTER))->SetCheck((bForfendRoomEnter==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendGameEnter=CServerRule::IsForfendGameEnter(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_GAME_ENTER))->SetCheck((bForfendGameEnter==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD>Թ<EFBFBD>
bool bForfendGameLookon=CServerRule::IsForfendGameLookon(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_GAME_LOOKON))->SetCheck((bForfendGameLookon==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendGameRule=CServerRule::IsForfendGameRule(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_GAME_RULE))->SetCheck((bForfendGameRule==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
bool bForfendLockTable=CServerRule::IsForfendLockTable(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_LOCK_TABLE))->SetCheck((bForfendLockTable==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
bool bRecordGameScore=CServerRule::IsRecordGameScore(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_RECORD_GAME_SCORE))->SetCheck((bRecordGameScore==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
//bool bRecordGameTrack=CServerRule::IsRecordGameTrack(m_pGameServiceOption->dwServerRule);
//((CButton *)GetDlgItem(IDC_RECORD_GAME_TRACK))->SetCheck((bRecordGameTrack==TRUE)?BST_CHECKED:BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_RECORD_GAME_TRACK))->SetCheck(BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_RECORD_GAME_TRACK))->EnableWindow(FALSE);
//<2F><><EFBFBD>вƸ<D0B2><C6B8><EFBFBD>Ϸ<EFBFBD><CFB7>ÿ<EFBFBD>ּ<EFBFBD>ʱд<CAB1>֣<EFBFBD><D6A3><EFBFBD>¼ÿ<C2BC>ֳɼ<D6B3><C9BC><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊֱ<CEAA>ӹ<EFBFBD>ѡ<EFBFBD><D1A1>ɫ״̬
if(m_pGameServiceOption->wServerType == GAME_GENRE_GOLD)
{
CServerRule::SetImmediateWriteScore(m_pGameServiceOption->dwServerRule,true);
GetDlgItem(IDC_IMMEDIATE_WRITE_SCORE)->EnableWindow(FALSE);
}
//<2F><>ʱд<CAB1><D0B4>
bool bImmediateWriteScore=CServerRule::IsImmediateWriteScore(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_IMMEDIATE_WRITE_SCORE))->SetCheck((bImmediateWriteScore==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>̬<EFBFBD>׷<EFBFBD>
//bool bDynamicCellScore=CServerRule::IsDynamicCellScore(m_pGameServiceOption->dwServerRule);
//((CButton *)GetDlgItem(IDC_DYNAMIC_CELL_SCORE))->SetCheck((bDynamicCellScore==TRUE)?BST_CHECKED:BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_DYNAMIC_CELL_SCORE))->SetCheck(BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_DYNAMIC_CELL_SCORE))->EnableWindow(FALSE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
bool bAllowAvertCheatMode=CServerRule::IsAllowAvertCheatMode(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_ALLOW_AVERT_CHEAT_MODE))->SetCheck((bAllowAvertCheatMode==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9>Ǯ
bool bForfendSaveInRoom=CServerRule::IsForfendSaveInRoom(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_SAVE_IN_ROOM))->SetCheck((bForfendSaveInRoom==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ֹ<EFBFBD><D6B9>Ǯ
bool bForfendSaveInGame=CServerRule::IsForfendSaveInGame(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_FORFEND_SAVE_IN_GAME))->SetCheck((bForfendSaveInGame==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><><EFBFBD><EFBFBD>ռλ
bool bAllowAndroidSimulate=CServerRule::IsAllowAndroidSimulate(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_ALLOW_ANDROID_SIMULATE))->SetCheck((bAllowAndroidSimulate==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
if (m_pGameServiceAttrib->cbDynamicJoin==TRUE)
{
bool bAllowDynamicJoin=CServerRule::IsAllowDynamicJoin(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_ALLOW_DYNAMIC_JOIN))->SetCheck((bAllowDynamicJoin==TRUE)?BST_CHECKED:BST_UNCHECKED);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceAttrib->cbAndroidUser==TRUE)
{
bool bAllowAndroidAttend=CServerRule::IsAllowAndroidAttend(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_ALLOW_ANDROID_ATTEND))->SetCheck((bAllowAndroidAttend==TRUE)?BST_CHECKED:BST_UNCHECKED);
}
//<2F><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
if (m_pGameServiceAttrib->cbOffLineTrustee==TRUE)
{
bool bAllowOffLineTrustee=CServerRule::IsAllowOffLineTrustee(m_pGameServiceOption->dwServerRule);
((CButton *)GetDlgItem(IDC_ALLOW_OFFLINE_TRUSTEE))->SetCheck((bAllowOffLineTrustee==TRUE)?BST_CHECKED:BST_UNCHECKED);
}
//((CButton *)GetDlgItem(IDC_ALLOW_OFFLINE_TRUSTEE))->SetCheck(BST_UNCHECKED);
//((CButton *)GetDlgItem(IDC_ALLOW_OFFLINE_TRUSTEE))->EnableWindow(FALSE);
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItem2::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CComboBox * pMinMember=(CComboBox *)GetDlgItem(IDC_MIN_ENTER_MEMBER);
CComboBox * pMaxMember=(CComboBox *)GetDlgItem(IDC_MAX_ENTER_MEMBER);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pGameServiceOption->cbMinEnterMember=0;
m_pGameServiceOption->cbMaxEnterMember=0;
m_pGameServiceOption->lMinEnterScore=GetDlgItemInt(IDC_MIN_ENTER_SCORE);
m_pGameServiceOption->lMaxEnterScore=GetDlgItemInt(IDC_MAX_ENTER_SCORE);
m_pGameServiceOption->lMinTableScore=GetDlgItemInt(IDC_MIN_TABLE_SCORE);
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
if (pMinMember->GetCurSel()!=LB_ERR)
{
INT nCurSelect=pMinMember->GetCurSel();
m_pGameServiceOption->cbMinEnterMember=(BYTE)pMinMember->GetItemData(nCurSelect);
}
//<2F><><EFBFBD>߻<EFBFBD>Ա
if (pMaxMember->GetCurSel()!=LB_ERR)
{
INT nCurSelect=pMaxMember->GetCurSel();
m_pGameServiceOption->cbMaxEnterMember=(BYTE)pMaxMember->GetItemData(nCurSelect);
}
//<2F><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
if ((m_pGameServiceOption->lMaxEnterScore!=0L)&&(m_pGameServiceOption->lMaxEnterScore<m_pGameServiceOption->lMinEnterScore))
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD>뷿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
if ((m_pGameServiceOption->cbMaxEnterMember!=0L)&&(m_pGameServiceOption->cbMaxEnterMember<m_pGameServiceOption->cbMinEnterMember))
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD>뷿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>𻹸ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendGameChat=(CButton *)GetDlgItem(IDC_FORFEND_GAME_CHAT);
CServerRule::SetForfendGameChat(m_pGameServiceOption->dwServerRule,(pForfendGameChat->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendRoomChat=(CButton *)GetDlgItem(IDC_FORFEND_ROOM_CHAT);
CServerRule::SetForfendRoomChat(m_pGameServiceOption->dwServerRule,(pForfendRoomChat->GetCheck()==BST_CHECKED));
//<2F><>ֹ˽<D6B9><CBBD>
CButton * pForfendWisperChat=(CButton *)GetDlgItem(IDC_FORFEND_WISPER_CHAT);
CServerRule::SetForfendWisperChat(m_pGameServiceOption->dwServerRule,(pForfendWisperChat->GetCheck()==BST_CHECKED));
//<2F><>ֹ˽<D6B9><CBBD>
CButton * pForfendWisperOnGame=(CButton *)GetDlgItem(IDC_FORFEND_WISPER_ON_GAME);
CServerRule::SetForfendWisperOnGame(m_pGameServiceOption->dwServerRule,(pForfendWisperOnGame->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendRoomEnter=(CButton *)GetDlgItem(IDC_FORFEND_ROOM_ENTER);
CServerRule::SetForfendRoomEnter(m_pGameServiceOption->dwServerRule,(pForfendRoomEnter->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendGameEnter=(CButton *)GetDlgItem(IDC_FORFEND_GAME_ENTER);
CServerRule::SetForfendGameEnter(m_pGameServiceOption->dwServerRule,(pForfendGameEnter->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD>Թ<EFBFBD>
CButton * pForfendGameLookon=(CButton *)GetDlgItem(IDC_FORFEND_GAME_LOOKON);
CServerRule::SetForfendGameLookon(m_pGameServiceOption->dwServerRule,(pForfendGameLookon->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendGameRule=(CButton *)GetDlgItem(IDC_FORFEND_GAME_RULE);
CServerRule::SetForfendGameRule(m_pGameServiceOption->dwServerRule,(pForfendGameRule->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
CButton * pForfendLockTable=(CButton *)GetDlgItem(IDC_FORFEND_LOCK_TABLE);
CServerRule::SetForfendLockTable(m_pGameServiceOption->dwServerRule,(pForfendLockTable->GetCheck()==BST_CHECKED));
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
CButton * pRecordGameScore=(CButton *)GetDlgItem(IDC_RECORD_GAME_SCORE);
CServerRule::SetRecordGameScore(m_pGameServiceOption->dwServerRule,(pRecordGameScore->GetCheck()==BST_CHECKED));
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
CButton * pRecordGameTrack=(CButton *)GetDlgItem(IDC_RECORD_GAME_TRACK);
CServerRule::SetRecordGameTrack(m_pGameServiceOption->dwServerRule,(pRecordGameTrack->GetCheck()==BST_CHECKED));
//<2F><>ʱд<CAB1><D0B4>
CButton * pImmediateWriteScore=(CButton *)GetDlgItem(IDC_IMMEDIATE_WRITE_SCORE);
CServerRule::SetImmediateWriteScore(m_pGameServiceOption->dwServerRule,(pImmediateWriteScore->GetCheck()==BST_CHECKED));
//<2F><>̬<EFBFBD>׷<EFBFBD>
CButton * pDynamicCellScore=(CButton *)GetDlgItem(IDC_DYNAMIC_CELL_SCORE);
CServerRule::SetDynamicCellScore(m_pGameServiceOption->dwServerRule,(pDynamicCellScore->GetCheck()==BST_CHECKED));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
CButton * pAvertCheatMode=(CButton *)GetDlgItem(IDC_ALLOW_AVERT_CHEAT_MODE);
CServerRule::SetAllowAvertCheatMode(m_pGameServiceOption->dwServerRule,(pAvertCheatMode->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9>Ǯ
CButton * pForfendSaveInRoom=(CButton *)GetDlgItem(IDC_FORFEND_SAVE_IN_ROOM);
CServerRule::SetForfendSaveInRoom(m_pGameServiceOption->dwServerRule,(pForfendSaveInRoom->GetCheck()==BST_CHECKED));
//<2F><>ֹ<EFBFBD><D6B9>Ǯ
CButton * pForfendSaveInGame=(CButton *)GetDlgItem(IDC_FORFEND_SAVE_IN_GAME);
CServerRule::SetForfendSaveInGame(m_pGameServiceOption->dwServerRule,(pForfendSaveInGame->GetCheck()==BST_CHECKED));
//<2F><><EFBFBD><EFBFBD>ռλ
CButton * pAllowAndroidSimulate=(CButton *)GetDlgItem(IDC_ALLOW_ANDROID_SIMULATE);
CServerRule::SetAllowAndroidSimulate(m_pGameServiceOption->dwServerRule,(pAllowAndroidSimulate->GetCheck()==BST_CHECKED));
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
if (m_pGameServiceAttrib->cbDynamicJoin==TRUE)
{
CButton * pAllowDynamicJoin=(CButton *)GetDlgItem(IDC_ALLOW_DYNAMIC_JOIN);
CServerRule::SetAllowDynamicJoin(m_pGameServiceOption->dwServerRule,(pAllowDynamicJoin->GetCheck()==BST_CHECKED));
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceAttrib->cbAndroidUser==TRUE)
{
CButton * pAllowAndroidUser=(CButton *)GetDlgItem(IDC_ALLOW_ANDROID_ATTEND);
CServerRule::SetAllowAndroidAttend(m_pGameServiceOption->dwServerRule,(pAllowAndroidUser->GetCheck()==BST_CHECKED));
}
//<2F><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
if (m_pGameServiceAttrib->cbOffLineTrustee==TRUE)
{
CButton * pAllowOffLineTrustee=(CButton *)GetDlgItem(IDC_ALLOW_OFFLINE_TRUSTEE);
CServerRule::SetAllowOffLineTrustee(m_pGameServiceOption->dwServerRule,(pAllowOffLineTrustee->GetCheck()==BST_CHECKED));
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem2::RectifyControl(INT nWidth, INT nHeight)
{
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem2::InitCtrlWindow()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
((CEdit *)GetDlgItem(IDC_MIN_ENTER_SCORE))->LimitText(8);
((CEdit *)GetDlgItem(IDC_MAX_ENTER_SCORE))->LimitText(8);
((CEdit *)GetDlgItem(IDC_MIN_TABLE_SCORE))->LimitText(8);
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
CComboBox * pMinMember=(CComboBox *)GetDlgItem(IDC_MIN_ENTER_MEMBER);
CComboBox * pMaxMember=(CComboBox *)GetDlgItem(IDC_MAX_ENTER_MEMBER);
LPCTSTR pszMember[]={TEXT("û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"),TEXT("VIP<EFBFBD><EFBFBD>Ա")};
//<2F><>Ա<EFBFBD><D4B1>Ϣ
for (INT i=0;i<CountArray(pszMember);i++)
{
pMinMember->SetItemData(pMinMember->AddString(pszMember[i]),i);
pMaxMember->SetItemData(pMaxMember->AddString(pszMember[i]),i);
}
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
GetDlgItem(IDC_ALLOW_DYNAMIC_JOIN)->EnableWindow((m_pGameServiceAttrib->cbDynamicJoin==TRUE)?TRUE:FALSE);
GetDlgItem(IDC_ALLOW_ANDROID_ATTEND)->EnableWindow((m_pGameServiceAttrib->cbAndroidUser==TRUE)?TRUE:FALSE);
GetDlgItem(IDC_ALLOW_OFFLINE_TRUSTEE)->EnableWindow((m_pGameServiceAttrib->cbOffLineTrustee==TRUE)?TRUE:FALSE);
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItem3::CDlgServerOptionItem3() : CDlgServerOptionItem(IDD_SERVER_OPTION_3)
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem3::~CDlgServerOptionItem3()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerOptionItem3::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->wMinDistributeUser!=0)
{
SetDlgItemInt(IDC_MIN_DISTRIBUTE_USER,m_pGameServiceOption->wMinDistributeUser);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->wMaxDistributeUser!=0)
{
SetDlgItemInt(IDC_MAX_DISTRIBUTE_USER,m_pGameServiceOption->wMaxDistributeUser);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->wDistributeTimeSpace!=0)
{
SetDlgItemInt(IDC_DISTRIBUTE_TIME_SPACE,m_pGameServiceOption->wDistributeTimeSpace);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pGameServiceOption->wDistributeDrawCount!=0)
{
SetDlgItemInt(IDC_DISTRIBUTE_DRAW_COUNT,m_pGameServiceOption->wDistributeDrawCount);
}
//<2F><>ʼ<EFBFBD><CABC>ʱ
if (m_pGameServiceOption->wDistributeStartDelay!=0)
{
SetDlgItemInt(IDC_DISTRIBUTE_START_DELAY,m_pGameServiceOption->wDistributeStartDelay);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bDistributeAllow=((m_pGameServiceOption->cbDistributeRule&DISTRIBUTE_ALLOW)!=0);
((CButton *)GetDlgItem(IDC_DISTRIBUTE_ALLOW))->SetCheck((bDistributeAllow==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
bool bDistributeImmediate=((m_pGameServiceOption->cbDistributeRule&DISTRIBUTE_IMMEDIATE)!=0);
((CButton *)GetDlgItem(IDC_DISTRIBUTE_IMMEDIATE))->SetCheck((bDistributeImmediate==TRUE)?BST_CHECKED:BST_UNCHECKED);
//ͬ<><CDAC>ѡ<EFBFBD><D1A1>
bool bDistributeLastTable=((m_pGameServiceOption->cbDistributeRule&DISTRIBUTE_LAST_TABLE)!=0);
((CButton *)GetDlgItem(IDC_DISTRIBUTE_LAST_TABLE))->SetCheck((bDistributeLastTable==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><>ַѡ<D6B7><D1A1>
bool bDistributeSameAddress=((m_pGameServiceOption->cbDistributeRule&DISTRIBUTE_SAME_ADDRESS)!=0);
((CButton *)GetDlgItem(IDC_DISTRIBUTE_SAME_ADDRESS))->SetCheck((bDistributeSameAddress==TRUE)?BST_CHECKED:BST_UNCHECKED);
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
bool bDistributeAdjacent = ((m_pGameServiceOption->cbDistributeRule&DISTRIBUTE_ADJACENT) != 0);
((CButton *)GetDlgItem(IDC_DISTRIBUTE_ADJACENT))->SetCheck((bDistributeAdjacent == TRUE) ? BST_CHECKED : BST_UNCHECKED);
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItem3::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pGameServiceOption->wMinDistributeUser=GetDlgItemInt(IDC_MIN_DISTRIBUTE_USER);
m_pGameServiceOption->wMaxDistributeUser=GetDlgItemInt(IDC_MAX_DISTRIBUTE_USER);
m_pGameServiceOption->wDistributeTimeSpace=GetDlgItemInt(IDC_DISTRIBUTE_TIME_SPACE);
m_pGameServiceOption->wDistributeDrawCount=GetDlgItemInt(IDC_DISTRIBUTE_DRAW_COUNT);
m_pGameServiceOption->wDistributeStartDelay=GetDlgItemInt(IDC_DISTRIBUTE_START_DELAY);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (((CButton *)GetDlgItem(IDC_DISTRIBUTE_ALLOW))->GetCheck()==BST_CHECKED)
{
m_pGameServiceOption->cbDistributeRule|=DISTRIBUTE_ALLOW;
}
else
{
m_pGameServiceOption->cbDistributeRule&=~DISTRIBUTE_ALLOW;
}
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
if (((CButton *)GetDlgItem(IDC_DISTRIBUTE_IMMEDIATE))->GetCheck()==BST_CHECKED)
{
m_pGameServiceOption->cbDistributeRule|=DISTRIBUTE_IMMEDIATE;
}
else
{
m_pGameServiceOption->cbDistributeRule&=~DISTRIBUTE_IMMEDIATE;
}
//ͬ<><CDAC>ѡ<EFBFBD><D1A1>
if (((CButton *)GetDlgItem(IDC_DISTRIBUTE_LAST_TABLE))->GetCheck()==BST_CHECKED)
{
m_pGameServiceOption->cbDistributeRule|=DISTRIBUTE_LAST_TABLE;
}
else
{
m_pGameServiceOption->cbDistributeRule&=~DISTRIBUTE_LAST_TABLE;
}
//<2F><>ַѡ<D6B7><D1A1>
if (((CButton *)GetDlgItem(IDC_DISTRIBUTE_SAME_ADDRESS))->GetCheck()==BST_CHECKED)
{
m_pGameServiceOption->cbDistributeRule|=DISTRIBUTE_SAME_ADDRESS;
}
else
{
m_pGameServiceOption->cbDistributeRule&=~DISTRIBUTE_SAME_ADDRESS;
}
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
if (((CButton *)GetDlgItem(IDC_DISTRIBUTE_ADJACENT))->GetCheck() == BST_CHECKED)
{
m_pGameServiceOption->cbDistributeRule |= DISTRIBUTE_ADJACENT;
}
else
{
m_pGameServiceOption->cbDistributeRule &= ~DISTRIBUTE_ADJACENT;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem3::RectifyControl(INT nWidth, INT nHeight)
{
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItem4::CDlgServerOptionItem4() : CDlgServerOptionItem(IDD_SERVER_OPTION_4)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_nSelectItem = -1;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem4::~CDlgServerOptionItem4()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::DoDataExchange(CDataExchange* pDX)
{
//<2F>󶨿ؼ<F3B6A8BF>
DDX_Control(pDX, IDC_COMBO_ENTER_HOUR, m_cbEnterHour);
DDX_Control(pDX, IDC_COMBO_ENTER_MINUTE, m_cbEnterMinute);
DDX_Control(pDX, IDC_COMBO_ENTER_SECOND, m_cbEnterSecond);
DDX_Control(pDX, IDC_COMBO_LEAVE_HOUR, m_cbLeaveHour);
DDX_Control(pDX, IDC_COMBO_LEAVE_MINUTE, m_cbLeaveMinute);
DDX_Control(pDX, IDC_COMBO_LEAVE_SECOND, m_cbLeaveSecond);
//<2F>󶨿ؼ<F3B6A8BF>
DDX_Control(pDX, IDC_EDIT_ANDROID_COUNT, m_edtAndroidCount);
DDX_Control(pDX, IDC_EDIT_TAKESCORE_MIN, m_edtTableScoreMin);
DDX_Control(pDX, IDC_EDIT_TAKESCORE_MAX, m_edtTableScoreMax);
DDX_Control(pDX, IDC_EDIT_ENTERINTERVAL_MIN, m_edtEnterIntervalMin);
DDX_Control(pDX, IDC_EDIT_ENTERINTERVAL_MAX, m_edtEnterIntervalMax);
DDX_Control(pDX, IDC_EDIT_LEAVEINTERVAL_MIN, m_edtLeaveIntervalMin);
DDX_Control(pDX, IDC_EDIT_LEAVEINTERVAL_MAX, m_edtLeaveIntervalMax);
DDX_Control(pDX, IDC_EDIT_SWITCHTABLE_MIN, m_edtSwitchTableMin);
DDX_Control(pDX, IDC_EDIT_SWITCHTABLE_MAX, m_edtSwitchTableMax);
//<2F>󶨿ؼ<F3B6A8BF>
DDX_Control(pDX, IDC_BT_ADD, m_btAddItem);
DDX_Control(pDX, IDC_BT_MODIFY, m_btModifyItem);
DDX_Control(pDX, IDC_BT_DELETE, m_btDeleteItem);
//<2F>󶨿ؼ<F3B6A8BF>
DDX_Control(pDX, IDC_LIST_PARAMETER, m_ParemeterList);
__super::DoDataExchange(pDX);
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerOptionItem4::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_edtAndroidCount.LimitText(3);
m_edtTableScoreMin.LimitText(16);
m_edtTableScoreMax.LimitText(16);
m_edtSwitchTableMin.LimitText(4);
m_edtSwitchTableMax.LimitText(4);
m_edtEnterIntervalMin.LimitText(4);
m_edtEnterIntervalMax.LimitText(4);
m_edtLeaveIntervalMin.LimitText(4);
m_edtLeaveIntervalMax.LimitText(4);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString strItemText;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
for (BYTE cbIndex = 0; cbIndex < 24; cbIndex++)
{
strItemText.Format(TEXT("%d"), cbIndex);
m_cbEnterHour.SetItemData(m_cbEnterHour.InsertString(cbIndex, strItemText), cbIndex);
m_cbLeaveHour.SetItemData(m_cbLeaveHour.InsertString(cbIndex, strItemText), cbIndex);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
for (BYTE cbIndex = 0; cbIndex < 60; cbIndex++)
{
strItemText.Format(TEXT("%d"), cbIndex);
m_cbEnterMinute.SetItemData(m_cbEnterMinute.InsertString(cbIndex, strItemText), cbIndex);
m_cbEnterSecond.SetItemData(m_cbEnterSecond.InsertString(cbIndex, strItemText), cbIndex);
m_cbLeaveMinute.SetItemData(m_cbLeaveMinute.InsertString(cbIndex, strItemText), cbIndex);
m_cbLeaveSecond.SetItemData(m_cbLeaveSecond.InsertString(cbIndex, strItemText), cbIndex);
}
//<2F><><EFBFBD>ÿؼ<C3BF>
DWORD dwExstyle = m_ParemeterList.GetExtendedStyle();
m_ParemeterList.SetExtendedStyle(dwExstyle | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | WS_EX_STATICEDGE);
//<2F>б<EFBFBD><D0B1>ؼ<EFBFBD>
m_ParemeterList.InsertColumn(0, TEXT("<EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>ʶ"), LVCFMT_CENTER, 60);
m_ParemeterList.InsertColumn(1, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ"), LVCFMT_CENTER, 60);
m_ParemeterList.InsertColumn(2, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ"), LVCFMT_CENTER, 60);
m_ParemeterList.InsertColumn(3, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>"), LVCFMT_CENTER, 60);
m_ParemeterList.InsertColumn(4, TEXT("<EFBFBD>뿪ʱ<EFBFBD><EFBFBD>"), LVCFMT_CENTER, 60);
m_ParemeterList.InsertColumn(5, TEXT("Я<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(6, TEXT("Я<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(7, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(8, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(9, TEXT("<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(10, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(11, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
m_ParemeterList.InsertColumn(12, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), LVCFMT_CENTER, 90);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
CWHArray<tagAndroidParameter> aryAndParameter;
CServerInfoManager ServerInfoManager;
ServerInfoManager.GetAndroidParameter(m_pGameServiceOption->wServerID, aryAndParameter);
OnEventAndroidParenter(SUB_GP_GET_PARAMETER, aryAndParameter.GetCount(), aryAndParameter.GetData());
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItem4::SaveInputInfo()
{
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItem4::RectifyControl(INT nWidth, INT nHeight)
{
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
VOID CDlgServerOptionItem4::AddModifyParameter(bool bModify)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szMessage[128] = TEXT("");
tagAndroidParameter AndroidParameter;
ZeroMemory(&AndroidParameter, sizeof(AndroidParameter));
//ѡ<><D1A1><EFBFBD>ж<EFBFBD>
if (bModify == true && m_nSelectItem == -1) return;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
AndroidParameter.dwAndroidCount = GetDlgItemInt(IDC_EDIT_ANDROID_COUNT);
//ͳ<>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwAndroidCount = 0;
tagAndroidParameter * pItemData = NULL;
for (int nIndex = 0; nIndex < m_ParemeterList.GetItemCount(); nIndex++)
{
pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(nIndex);
if (pItemData != NULL)
{
if (bModify == false || nIndex != m_nSelectItem)
{
dwAndroidCount += pItemData->dwAndroidCount;
}
}
}
if (AndroidParameter.dwAndroidCount <= 0 || AndroidParameter.dwAndroidCount + dwAndroidCount > MAX_ANDROID)
{
_sntprintf_s(szMessage, CountArray(szMessage), TEXT("<EFBFBD><EFBFBD>Ǹ,ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ϊ%d<><64>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MAX_ANDROID);
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(szMessage, TEXT("<EFBFBD><EFBFBD>ʾ"));
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
m_edtAndroidCount.SetFocus();
return;
}
//<2F><><EFBFBD><EFBFBD>ģʽ
AndroidParameter.dwServiceMode |= ((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE1))->GetCheck() == BST_CHECKED ? ANDROID_SIMULATE : 0;
AndroidParameter.dwServiceMode |= ((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE2))->GetCheck() == BST_CHECKED ? ANDROID_INITIATIVE : 0;
AndroidParameter.dwServiceMode |= ((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE3))->GetCheck() == BST_CHECKED ? ANDROID_PASSIVITY : 0;
if (AndroidParameter.dwServiceMode == 0)
{
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٹ<EFBFBD>ѡһ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
AndroidParameter.dwEnterTime = GetDlgItemInt(IDC_COMBO_ENTER_HOUR) * 3600 + GetDlgItemInt(IDC_COMBO_ENTER_MINUTE) * 60 + GetDlgItemInt(IDC_COMBO_ENTER_SECOND);
AndroidParameter.dwLeaveTime = GetDlgItemInt(IDC_COMBO_LEAVE_HOUR) * 3600 + GetDlgItemInt(IDC_COMBO_LEAVE_MINUTE) * 60 + GetDlgItemInt(IDC_COMBO_LEAVE_SECOND);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwIntervalTime = 0;
if (AndroidParameter.dwLeaveTime >= AndroidParameter.dwEnterTime)
{
dwIntervalTime = AndroidParameter.dwLeaveTime - AndroidParameter.dwEnterTime;
}
else
{
dwIntervalTime = AndroidParameter.dwLeaveTime + 24 * 3600 - AndroidParameter.dwEnterTime;
}
//<2F><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>
if (dwIntervalTime < MIN_INOUTINTERVAL)
{
_sntprintf_s(szMessage, CountArray(szMessage), TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBFAA>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>%d<><64><EFBFBD>ӣ<EFBFBD>"), MIN_INOUTINTERVAL / 60);
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(szMessage, TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>
if (dwIntervalTime > MAX_INOUTINTERVAL)
{
_sntprintf_s(szMessage, CountArray(szMessage), TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%dСʱ֮<CAB1>ڣ<EFBFBD>"), MAX_INOUTINTERVAL / 3600);
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(szMessage, TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szValue[32] = TEXT("");
//<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
GetDlgItemText(IDC_EDIT_TAKESCORE_MIN, szValue, CountArray(szValue));
AndroidParameter.lTakeMinScore = _tcstoi64(szValue, NULL, 10);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GetDlgItemText(IDC_EDIT_TAKESCORE_MAX, szValue, CountArray(szValue));
AndroidParameter.lTakeMaxScore = _tcstoi64(szValue, NULL, 10);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
if (AndroidParameter.lTakeMaxScore - AndroidParameter.lTakeMinScore < 0)
{
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Я<EFBFBD><D0AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AndroidParameter.dwEnterMinInterval = GetDlgItemInt(IDC_EDIT_ENTERINTERVAL_MIN);
AndroidParameter.dwEnterMaxInterval = GetDlgItemInt(IDC_EDIT_ENTERINTERVAL_MAX);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
if (AndroidParameter.dwEnterMaxInterval < AndroidParameter.dwEnterMinInterval)
{
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD>뷿<EFBFBD><EBB7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>
AndroidParameter.dwLeaveMinInterval = GetDlgItemInt(IDC_EDIT_LEAVEINTERVAL_MIN);
AndroidParameter.dwLeaveMaxInterval = GetDlgItemInt(IDC_EDIT_LEAVEINTERVAL_MAX);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
if (AndroidParameter.dwLeaveMaxInterval < AndroidParameter.dwLeaveMinInterval)
{
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>
AndroidParameter.dwSwitchMinInnings = GetDlgItemInt(IDC_EDIT_SWITCHTABLE_MIN);
AndroidParameter.dwSwitchMaxInnings = GetDlgItemInt(IDC_EDIT_SWITCHTABLE_MAX);
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
if (AndroidParameter.dwSwitchMaxInnings < AndroidParameter.dwSwitchMinInnings)
{
//<2F><>Ϣ<EFBFBD><CFA2>ʾ
MessageBox(TEXT("<EFBFBD><EFBFBD>Ǹ,<2C><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
if (m_pGameServiceOption == NULL || m_pGameServiceOption->wServerID == 0)
{
MessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>"));
return;
}
if (bModify == false)
{
//<2F><>Ŀ<EFBFBD>ж<EFBFBD>
if (m_ParemeterList.GetItemCount() >= MAX_BATCH)
{
_sntprintf_s(szMessage, CountArray(szMessage), TEXT("<EFBFBD><EFBFBD>Ǹ,ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>"), MAX_BATCH);
MessageBox(szMessage, TEXT("<EFBFBD><EFBFBD>ʾ"));
return;
}
//<2F><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD>
CServerInfoManager ServerInfoManager;
ServerInfoManager.AddAndroidParameter(m_pGameServiceOption->wServerID, &AndroidParameter);
OnEventAndroidParenter(SUB_GP_ADD_PARAMETER, 1, &AndroidParameter);
}
else
{
if (m_nSelectItem == -1) return;
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(m_nSelectItem);
if (pItemData == NULL) return;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
CServerInfoManager ServerInfoManager;
AndroidParameter.dwBatchID = pItemData->dwBatchID;
ServerInfoManager.ModifyAndroidParameter(m_pGameServiceOption->wServerID, &AndroidParameter);
OnEventAndroidParenter(SUB_GP_MODIFY_PARAMETER, 1, &AndroidParameter);
}
return;
}
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::SelectItem(int nIndex)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_nSelectItem = nIndex;
if (m_nSelectItem == -1) return;
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(m_nSelectItem);
if (pItemData == NULL) return;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
SetDlgItemInt(IDC_EDIT_ANDROID_COUNT, pItemData->dwAndroidCount);
//<2F><><EFBFBD><EFBFBD>ģʽ
((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE1))->SetCheck((pItemData->dwServiceMode&ANDROID_SIMULATE) ? BST_CHECKED : BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE2))->SetCheck((pItemData->dwServiceMode&ANDROID_INITIATIVE) ? BST_CHECKED : BST_UNCHECKED);
((CButton *)GetDlgItem(IDC_CHECK_SERVICE_MODE3))->SetCheck((pItemData->dwServiceMode&ANDROID_PASSIVITY) ? BST_CHECKED : BST_UNCHECKED);
//<2F><><EFBFBD><EFBFBD>Сʱ
int nHourIndex = pItemData->dwEnterTime / 3600;
m_cbEnterHour.SetCurSel(nHourIndex);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nMinuteIndex = (pItemData->dwEnterTime - nHourIndex * 3600) / 60;
m_cbEnterMinute.SetCurSel(nMinuteIndex);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nSecondIndex = pItemData->dwEnterTime - nHourIndex * 3600 - nMinuteIndex * 60;
m_cbEnterSecond.SetCurSel(nSecondIndex);
//<2F>Сʱ
nHourIndex = pItemData->dwLeaveTime / 3600;
m_cbLeaveHour.SetCurSel(nHourIndex);
//<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>
nMinuteIndex = (pItemData->dwLeaveTime - nHourIndex * 3600) / 60;
m_cbLeaveMinute.SetCurSel(nMinuteIndex);
//<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>
nSecondIndex = pItemData->dwLeaveTime - nHourIndex * 3600 - nMinuteIndex * 60;
m_cbLeaveSecond.SetCurSel(nSecondIndex);
//Я<><D0AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szTakeScore[32] = TEXT("");
_sntprintf_s(szTakeScore, CountArray(szTakeScore), SCORE_STRING, pItemData->lTakeMinScore);
m_edtTableScoreMin.SetWindowText(szTakeScore);
_sntprintf_s(szTakeScore, CountArray(szTakeScore), SCORE_STRING, pItemData->lTakeMaxScore);
m_edtTableScoreMax.SetWindowText(szTakeScore);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetDlgItemInt(IDC_EDIT_ENTERINTERVAL_MIN, pItemData->dwEnterMinInterval);
SetDlgItemInt(IDC_EDIT_ENTERINTERVAL_MAX, pItemData->dwEnterMaxInterval);
//<2F><EFBFBD><EBBFAA><EFBFBD><EFBFBD>
SetDlgItemInt(IDC_EDIT_LEAVEINTERVAL_MIN, pItemData->dwLeaveMinInterval);
SetDlgItemInt(IDC_EDIT_LEAVEINTERVAL_MAX, pItemData->dwLeaveMaxInterval);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetDlgItemInt(IDC_EDIT_SWITCHTABLE_MIN, pItemData->dwSwitchMinInnings);
SetDlgItemInt(IDC_EDIT_SWITCHTABLE_MAX, pItemData->dwSwitchMaxInnings);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::SetItemToParameterList(int nItemIndex, tagAndroidParameter * pAndroidParameter)
{
//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
ASSERT(nItemIndex != -1 && pAndroidParameter != NULL);
if (nItemIndex == -1 || pAndroidParameter == NULL) return;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szItemValue[32] = TEXT("");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwBatchID);
m_ParemeterList.SetItemText(nItemIndex, 0, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwAndroidCount);
m_ParemeterList.SetItemText(nItemIndex, 1, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwServiceMode);
m_ParemeterList.SetItemText(nItemIndex, 2, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwEnterTime);
m_ParemeterList.SetItemText(nItemIndex, 3, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwLeaveTime);
m_ParemeterList.SetItemText(nItemIndex, 4, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), SCORE_STRING, pAndroidParameter->lTakeMinScore);
m_ParemeterList.SetItemText(nItemIndex, 5, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), SCORE_STRING, pAndroidParameter->lTakeMaxScore);
m_ParemeterList.SetItemText(nItemIndex, 6, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwEnterMinInterval);
m_ParemeterList.SetItemText(nItemIndex, 7, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwEnterMaxInterval);
m_ParemeterList.SetItemText(nItemIndex, 8, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwLeaveMinInterval);
m_ParemeterList.SetItemText(nItemIndex, 9, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwLeaveMaxInterval);
m_ParemeterList.SetItemText(nItemIndex, 10, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwSwitchMinInnings);
m_ParemeterList.SetItemText(nItemIndex, 11, szItemValue);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_sntprintf_s(szItemValue, CountArray(szItemValue), TEXT("%d"), pAndroidParameter->dwSwitchMaxInnings);
m_ParemeterList.SetItemText(nItemIndex, 12, szItemValue);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnEventAndroidParenter(WORD wSubCommdID, WORD wParameterCount, tagAndroidParameter * pAndroidParameter)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if (wSubCommdID == SUB_GP_GET_PARAMETER)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nItemIndex = -1;
tagAndroidParameter * pTempParameter = NULL;
tagAndroidParameter * pItemData = NULL;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ParemeterList.DeleteAllItems();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LVITEM lVItem;
lVItem.mask = LVIF_TEXT;
lVItem.iSubItem = 0;
lVItem.pszText = TEXT("");
//ѭ<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (WORD wIndex = 0; wIndex < wParameterCount; wIndex++)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
pTempParameter = &pAndroidParameter[wIndex];
if (pTempParameter == NULL) continue;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
lVItem.iItem = wIndex;
nItemIndex = m_ParemeterList.InsertItem(&lVItem);
if (nItemIndex == -1) continue;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetItemToParameterList(nItemIndex, pTempParameter);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
pItemData = new tagAndroidParameter;
if (pItemData != NULL)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CopyMemory(pItemData, pTempParameter, sizeof(tagAndroidParameter));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ParemeterList.SetItemData(nItemIndex, (DWORD)pItemData);
}
}
return;
}
//<2F><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
if (wSubCommdID == SUB_GP_ADD_PARAMETER)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nItemIndex = -1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LVITEM lVItem;
lVItem.mask = LVIF_TEXT;
lVItem.iSubItem = 0;
lVItem.pszText = TEXT("");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
lVItem.iItem = m_ParemeterList.GetItemCount();
nItemIndex = m_ParemeterList.InsertItem(&lVItem);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetItemToParameterList(nItemIndex, pAndroidParameter);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
tagAndroidParameter * pItemData = new tagAndroidParameter;
if (pItemData != NULL)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CopyMemory(pItemData, pAndroidParameter, sizeof(tagAndroidParameter));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ParemeterList.SetItemData(nItemIndex, (DWORD)pItemData);
}
return;
}
//<2F>޸IJ<DEB8><C4B2><EFBFBD>
if (wSubCommdID == SUB_GP_MODIFY_PARAMETER)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nItemIndex = -1;
tagAndroidParameter * pItemData = NULL;
//<2F><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
for (int nIndex = 0; nIndex < m_ParemeterList.GetItemCount(); nIndex++)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(nIndex);
if (pItemData == NULL) continue;
if (pAndroidParameter->dwBatchID == pItemData->dwBatchID)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SetItemToParameterList(nIndex, pAndroidParameter);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CopyMemory(pItemData, pAndroidParameter, sizeof(tagAndroidParameter));
break;
}
}
return;
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (wSubCommdID == SUB_GP_DELETE_PARAMETER)
{
//<2F><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD>
for (int nIndex = 0; nIndex < m_ParemeterList.GetItemCount(); nIndex++)
{
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(nIndex);
if (pItemData == NULL) continue;
if (pAndroidParameter->dwBatchID == pItemData->dwBatchID)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ParemeterList.DeleteItem(nIndex);
break;
}
}
return;
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnHdnListParameterItemclick(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SelectItem(phdr->iItem);
*pResult = 0;
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnLvnListParameterDeleteitem(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(pNMLV->iItem);
if (pItemData != NULL)
{
SafeDelete(pItemData);
}
*pResult = 0;
}
//<2F><><EFBFBD>̰<EFBFBD><CCB0><EFBFBD>
VOID CDlgServerOptionItem4::OnLvnKeydownListParameter(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVKEYDOWN pLVKeyDow = reinterpret_cast<LPNMLVKEYDOWN>(pNMHDR);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int nItem = -1;
POSITION pos;
switch (pLVKeyDow->wVKey)
{
case VK_DOWN:
{
pos = m_ParemeterList.GetFirstSelectedItemPosition();
while (pos)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
nItem = m_ParemeterList.GetNextSelectedItem(pos);
if (nItem == -1) break;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nItem = __min(nItem + 1, m_ParemeterList.GetItemCount() - 1);
SelectItem(nItem);
break;
}
break;
}
case VK_UP:
{
pos = m_ParemeterList.GetFirstSelectedItemPosition();
while (pos)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
nItem = m_ParemeterList.GetNextSelectedItem(pos);
if (nItem == -1) break;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nItem = __max(nItem - 1, 0);
SelectItem(nItem);
break;
}
break;
}
}
*pResult = 0;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnBnClickedBtAdd()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AddModifyParameter(false);
}
//<2F><EFBFBD><E0BCAD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnBnClickedBtModify()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AddModifyParameter(true);
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerOptionItem4::OnBnClickedBtDelete()
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
if (m_nSelectItem == -1) return;
if (m_ParemeterList.GetItemCount() <= m_nSelectItem)
{
m_nSelectItem = -1;
return;
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
tagAndroidParameter * pItemData = (tagAndroidParameter *)m_ParemeterList.GetItemData(m_nSelectItem);
if (pItemData == NULL) return;
//<2F><>ȡʱ<C8A1><CAB1>
SYSTEMTIME SystemTime;
GetLocalTime(&SystemTime);
DWORD dwTodayTickCount = SystemTime.wHour * 3600 + SystemTime.wMinute * 60 + SystemTime.wSecond;
//ʱ<><CAB1><EFBFBD>ж<EFBFBD>
if (dwTodayTickCount >= pItemData->dwEnterTime && dwTodayTickCount <= pItemData->dwLeaveTime)
{
//ѡ<><D1A1><EFBFBD><EFBFBD>ʾ
INT nRetCode = MessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD>״̬,<2C><>ȷ<EFBFBD><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_YESNO);
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD>˳<EFBFBD>
if (nRetCode == IDNO) return;
}
if (m_pGameServiceOption==NULL||m_pGameServiceOption->wServerID == 0)
{
MessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>"));
return;
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CServerInfoManager ServerInfoManager;
ServerInfoManager.DeleteAndroidParameter(m_pGameServiceOption->wServerID, pItemData->dwBatchID);
OnEventAndroidParenter(SUB_GP_DELETE_PARAMETER, 1, pItemData);
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_nSelectItem = -1;
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerOptionItemCustom::CDlgServerOptionItemCustom() : CDlgServerOptionItem(IDD_SERVER_OPTION_6)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_hCustomRule=NULL;
m_pIGameServiceCustomRule=NULL;
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItemCustom::~CDlgServerOptionItemCustom()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerOptionItemCustom::OnInitDialog()
{
__super::OnInitDialog();
//<2F><>ȡλ<C8A1><CEBB>
CRect rcClient;
GetClientRect(&rcClient);
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_pIGameServiceCustomRule=m_pDlgServerWizard->m_pIGameServiceCustomRule;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wCustonSize=sizeof(m_pGameServiceOption->cbCustomRule);
m_hCustomRule=m_pIGameServiceCustomRule->CreateCustomRule(this,rcClient,m_pGameServiceOption->cbCustomRule,wCustonSize);
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerOptionItemCustom::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_hCustomRule!=NULL)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wCustonSize=sizeof(m_pGameServiceOption->cbCustomRule);
bool bSuccess=m_pIGameServiceCustomRule->SaveCustomRule(m_pGameServiceOption->cbCustomRule,wCustonSize);
return bSuccess;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerOptionItemCustom::RectifyControl(INT nWidth, INT nHeight)
{
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
if (m_hCustomRule!=NULL)
{
::SetWindowPos(m_hCustomRule,NULL,0,0,nWidth,nHeight,SWP_NOMOVE|SWP_NOZORDER);
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerOptionItemCustom::OnNcDestroy()
{
//<2F>رմ<D8B1><D5B4><EFBFBD>
if (m_hCustomRule!=NULL)
{
::DestroyWindow(m_hCustomRule);
}
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_hCustomRule=NULL;
m_pIGameServiceCustomRule=NULL;
__super::OnNcDestroy();
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerOptionItemCustom::OnSetFocus(CWnd * pNewWnd)
{
__super::OnSetFocus(pNewWnd);
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
if (m_hCustomRule!=NULL)
{
::SetFocus(m_hCustomRule);
}
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerWizardItem::CDlgServerWizardItem(UINT nIDTemplate) : CDialog(nIDTemplate)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_pDlgServerWizard=NULL;
m_pGameServiceAttrib=NULL;
m_pGameServiceOption=NULL;
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerWizardItem::~CDlgServerWizardItem()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizardItem::SaveItemData()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((m_hWnd!=NULL)&&(SaveInputInfo()==false))
{
return false;
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizardItem::ShowWizardItem(const CRect & rcRect, CWnd * pParentWnd)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_hWnd==NULL)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Create(m_lpszTemplateName,pParentWnd);
SetWindowPos(NULL,rcRect.left,rcRect.top,rcRect.Width(),rcRect.Height(),SWP_NOZORDER|SWP_NOACTIVATE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(NULL));
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
ShowWindow(SW_SHOW);
return true;
}
//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerWizardItem::OnOK()
{
//Ͷ<><CDB6><EFBFBD><EFBFBD>Ϣ
GetParent()->PostMessage(WM_COMMAND,MAKELONG(IDOK,0),0);
return;
}
//ȡ<><C8A1><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerWizardItem::OnCancel()
{
//Ͷ<><CDB6><EFBFBD><EFBFBD>Ϣ
GetParent()->PostMessage(WM_COMMAND,MAKELONG(IDCANCEL,0),0);
return;
}
//λ<><CEBB><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerWizardItem::OnSize(UINT nType, INT cx, INT cy)
{
__super::OnSize(nType, cx, cy);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
RectifyControl(cx,cy);
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerWizardItem1::CDlgServerWizardItem1() : CDlgServerWizardItem(IDD_SERVER_WIZARD_1)
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerWizardItem1::~CDlgServerWizardItem1()
{
}
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerWizardItem1::DoDataExchange(CDataExchange * pDX)
{
__super::DoDataExchange(pDX);
DDX_Control(pDX, IDC_PROMPT, m_StaticPrompt);
DDX_Control(pDX, IDC_MODULE_LIST, m_ModuleListControl);
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerWizardItem1::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
LoadDBModuleItem();
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizardItem1::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagGameModuleInfo * pGameModuleInfo=NULL;
POSITION Position=m_ModuleListControl.GetFirstSelectedItemPosition();
//<2F><>ȡѡ<C8A1><D1A1>
if (Position!=NULL)
{
INT nListItem=m_ModuleListControl.GetNextSelectedItem(Position);
pGameModuleInfo=(tagGameModuleInfo *)m_ModuleListControl.GetItemData(nListItem);
}
//ѡ<><D1A1><EFBFBD>ж<EFBFBD>
if (pGameModuleInfo==NULL)
{
AfxMessageBox(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),MB_ICONERROR);
return false;
}
//<2F><>Ϸģ<CFB7><C4A3>
m_GameServiceManager.CloseInstance();
m_GameServiceManager.SetModuleCreateInfo(pGameModuleInfo->szServerDLLName,GAME_SERVICE_CREATE_NAME);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if (pGameModuleInfo->dwNativeVersion==0L)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
TCHAR szString[512]=TEXT("");
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>а<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Ȱ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameModuleInfo->szGameName);
//<2F><>ʾ<EFBFBD><CABE>Ϣ
AfxMessageBox(szString,MB_ICONERROR);
return false;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if (pGameModuleInfo->dwNativeVersion!=pGameModuleInfo->dwServerVersion)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
TCHAR szString[512]=TEXT("");
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3>Ƿ񻹼<C7B7><F1BBB9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),pGameModuleInfo->szGameName);
//<2F><>ʾ<EFBFBD><CABE>Ϣ
if (AfxMessageBox(szString,MB_ICONWARNING|MB_YESNO|MB_DEFBUTTON2)!=IDYES) return false;
}
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
if (m_GameServiceManager.CreateInstance()==false)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
TCHAR szString[512]=TEXT("");
_sntprintf_s(szString,CountArray(szString),TEXT("[ %s ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"),pGameModuleInfo->szGameName);
//<2F><>ʾ<EFBFBD><CABE>Ϣ
AfxMessageBox(szString,MB_ICONERROR);
return false;
}
//<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
m_pDlgServerWizard->SetWizardParameter(m_GameServiceManager.GetInterface(),NULL);
//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
lstrcpyn(m_pGameServiceOption->szDataBaseName,pGameModuleInfo->szDataBaseName,CountArray(m_pGameServiceOption->szDataBaseName));
lstrcpyn(m_pGameServiceOption->szDataBaseAddr,pGameModuleInfo->szDataBaseAddr,CountArray(m_pGameServiceOption->szDataBaseAddr));
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerWizardItem1::RectifyControl(INT nWidth, INT nHeight)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
if (m_StaticPrompt.m_hWnd!=NULL)
{
m_StaticPrompt.SetWindowPos(NULL,5,8,nWidth-10,12,SWP_NOZORDER|SWP_NOCOPYBITS);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
if (m_ModuleListControl.m_hWnd!=NULL)
{
m_ModuleListControl.SetWindowPos(NULL,5,28,nWidth-10,nHeight-28,SWP_NOZORDER|SWP_NOCOPYBITS);
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
bool CDlgServerWizardItem1::LoadDBModuleItem()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if (m_ModuleInfoManager.LoadGameModuleInfo(m_ModuleInfoBuffer)==true)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
m_ModuleListControl.DeleteAllItems();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
POSITION Position=m_ModuleInfoBuffer.m_GameModuleInfoMap.GetStartPosition();
//ö<><C3B6>ģ<EFBFBD><C4A3>
while (Position!=NULL)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
WORD wModuleID=0L;
tagGameModuleInfo * pGameModuleInfo=NULL;
m_ModuleInfoBuffer.m_GameModuleInfoMap.GetNextAssoc(Position,wModuleID,pGameModuleInfo);
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
ASSERT(pGameModuleInfo!=NULL);
if (pGameModuleInfo!=NULL) m_ModuleListControl.InsertModuleInfo(pGameModuleInfo);
}
}
return false;
}
//˫<><CBAB><EFBFBD>б<EFBFBD>
VOID CDlgServerWizardItem1::OnNMDblclkModuleList(NMHDR * pNMHDR, LRESULT * pResult)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (((NMITEMACTIVATE *)pNMHDR)->iItem!=LB_ERR)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT nListItem=((NMITEMACTIVATE *)pNMHDR)->iItem;
tagGameModuleInfo * pGameModuleInfo=(tagGameModuleInfo *)m_ModuleListControl.GetItemData(nListItem);
//Ͷ<><CDB6><EFBFBD><EFBFBD>Ϣ
if (pGameModuleInfo->dwNativeVersion!=0L)
{
GetParent()->PostMessage(WM_COMMAND,MAKELONG(IDC_NEXT,0),0);
}
return;
}
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerWizardItem2::CDlgServerWizardItem2() : CDlgServerWizardItem(IDD_SERVER_WIZARD_2)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_wItemCount=0;
m_wActiveIndex=INVALID_WORD;
ZeroMemory(m_pOptionItem,sizeof(m_pOptionItem));
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerWizardItem2::~CDlgServerWizardItem2()
{
}
//<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerWizardItem2::DoDataExchange(CDataExchange * pDX)
{
__super::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB_CTRL, m_TabCtrl);
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerWizardItem2::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_wItemCount=0;
m_wActiveIndex=INVALID_WORD;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pOptionItem[m_wItemCount++]=&m_ServerOptionItem1;
m_TabCtrl.InsertItem(ITEM_SERVER_OPTION_1,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
m_pOptionItem[m_wItemCount++]=&m_ServerOptionItem2;
m_TabCtrl.InsertItem(ITEM_SERVER_OPTION_2,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>"));
//<2F><><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>
m_pOptionItem[m_wItemCount++]=&m_ServerOptionItem3;
m_TabCtrl.InsertItem(ITEM_SERVER_OPTION_3,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pOptionItem[m_wItemCount++] = &m_ServerOptionItem4;
m_TabCtrl.InsertItem(ITEM_SERVER_OPTION_4, TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pDlgServerWizard->m_pIGameServiceCustomRule!=NULL)
{
m_pOptionItem[m_wItemCount++]=&m_ServerOptionItemCustom;
m_TabCtrl.InsertItem(ITEM_SERVER_OPTION_CUSTOM,TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ActiveOptionItem(0);
return TRUE;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizardItem2::SaveInputInfo()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (INT i=0;i<m_wItemCount;i++)
{
if (m_pOptionItem[i]->SaveItemData()==false)
{
ActiveOptionItem(i);
return false;
}
}
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD>
VOID CDlgServerWizardItem2::RectifyControl(INT nWidth, INT nHeight)
{
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
if (m_TabCtrl.m_hWnd!=NULL)
{
m_TabCtrl.SetWindowPos(NULL,5,5,nWidth-10,nHeight-5,SWP_NOZORDER|SWP_NOCOPYBITS);
}
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
if ((m_TabCtrl.m_hWnd!=NULL)&&(m_wActiveIndex!=INVALID_WORD))
{
//<2F><>ȡλ<C8A1><CEBB>
CRect rcItemRect;
m_TabCtrl.GetWindowRect(&rcItemRect);
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
m_TabCtrl.ScreenToClient(&rcItemRect);
m_TabCtrl.AdjustRect(FALSE,&rcItemRect);
//<2F>ƶ<EFBFBD>λ<EFBFBD><CEBB>
m_pOptionItem[m_wActiveIndex]->MoveWindow(&rcItemRect);
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizardItem2::ActiveOptionItem(WORD wIndex)
{
//<2F>ж<EFBFBD>״̬
if (m_wActiveIndex==wIndex)
{
m_pOptionItem[m_wActiveIndex]->SetFocus();
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerOptionItem * pItemOption=NULL;
if (m_wActiveIndex<m_wItemCount) pItemOption=m_pOptionItem[m_wActiveIndex];
//<2F><>ȡλ<C8A1><CEBB>
CRect rcItemRect;
m_TabCtrl.GetWindowRect(&rcItemRect);
//<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
m_TabCtrl.ScreenToClient(&rcItemRect);
m_TabCtrl.AdjustRect(FALSE,&rcItemRect);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pOptionItem[wIndex]->m_pDlgServerWizard=m_pDlgServerWizard;
m_pOptionItem[wIndex]->m_pGameServiceAttrib=m_pGameServiceAttrib;
m_pOptionItem[wIndex]->m_pGameServiceOption=m_pGameServiceOption;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wActiveIndex=wIndex;
m_pOptionItem[m_wActiveIndex]->ShowOptionItem(rcItemRect,&m_TabCtrl);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pOptionItem[m_wActiveIndex]->SetFocus();
if (pItemOption!=NULL) pItemOption->ShowWindow(SW_HIDE);
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
if (m_TabCtrl.GetCurSel()!=wIndex) m_TabCtrl.SetCurSel(wIndex);
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
VOID CDlgServerWizardItem2::OnSetFocus(CWnd * pNewWnd)
{
__super::OnSetFocus(pNewWnd);
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>
if ((m_wActiveIndex!=INVALID_WORD)&&(m_pOptionItem[m_wActiveIndex]->m_hWnd!=NULL))
{
m_pOptionItem[m_wActiveIndex]->SetFocus();
}
return;
}
//ѡ<><D1A1><EFBFBD>ı<EFBFBD>
VOID CDlgServerWizardItem2::OnTcnSelchangeTabCtrl(NMHDR * pNMHDR, LRESULT * pResult)
{
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
switch (m_TabCtrl.GetCurSel())
{
case ITEM_SERVER_OPTION_1:{ ActiveOptionItem(0); break; }
case ITEM_SERVER_OPTION_2:{ ActiveOptionItem(1); break; }
case ITEM_SERVER_OPTION_3:{ ActiveOptionItem(2); break; }
case ITEM_SERVER_OPTION_4:{ ActiveOptionItem(3); break; }
case ITEM_SERVER_OPTION_CUSTOM:{ ActiveOptionItem(4); break; }
}
return;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CDlgServerWizard::CDlgServerWizard() : CDialog(IDD_SERVER_WIZARD_MAIN)
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_wActiveIndex=INVALID_WORD;
m_pWizardItem[0]=&m_ServerWizardItem1;
m_pWizardItem[1]=&m_ServerWizardItem2;
//<2F>ӿڱ<D3BF><DAB1><EFBFBD>
m_pIGameServiceManager=NULL;
m_pIGameServiceCustomRule=NULL;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ZeroMemory(&m_ModuleInitParameter,sizeof(m_ModuleInitParameter));
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerWizard::~CDlgServerWizard()
{
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CDlgServerWizard::OnInitDialog()
{
__super::OnInitDialog();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(NULL));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ActiveWizardItem((m_pIGameServiceManager==NULL)?0:1);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pIGameServiceManager!=NULL)
{
SetDlgItemInt(IDC_GAME_ID,m_ModuleInitParameter.GameServiceAttrib.wKindID);
SetDlgItemText(IDC_GAME_NAME,m_ModuleInitParameter.GameServiceAttrib.szGameName);
SetDlgItemInt(IDC_CHAIR_COUNT,m_ModuleInitParameter.GameServiceAttrib.wChairCount);
SetDlgItemText(IDC_DATABASE_NAME,m_ModuleInitParameter.GameServiceAttrib.szDataBaseName);
SetDlgItemText(IDC_CLIENT_EXE_NAME,m_ModuleInitParameter.GameServiceAttrib.szClientEXEName);
SetDlgItemText(IDC_SERVICE_DLL_NAME,m_ModuleInitParameter.GameServiceAttrib.szServerDLLName);
}
return FALSE;
}
//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VOID CDlgServerWizard::OnOK()
{
if ((m_wActiveIndex+1)<CountArray(m_pWizardItem))
{
OnBnClickedNext();
}
else
{
OnBnClickedFinish();
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizard::CreateGameServer()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
AfxSetResourceHandle(GetModuleHandle(MODULE_MANAGER_DLL_NAME));
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
if (DoModal()==IDOK)
{
return true;
}
return false;
}
//<2F><><EFBFBD>ýӿ<C3BD>
VOID CDlgServerWizard::SetWizardParameter(IGameServiceManager * pIGameServiceManager, tagGameServiceOption * pGameServiceOption)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (pGameServiceOption==NULL)
{
for (WORD i=1;i<CountArray(m_pWizardItem);i++)
{
if ((m_pWizardItem[i]!=NULL)&&(m_pWizardItem[i]->m_hWnd!=NULL))
{
m_pWizardItem[i]->DestroyWindow();
}
}
}
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
m_pIGameServiceCustomRule=NULL;
ZeroMemory(&m_ModuleInitParameter,sizeof(m_ModuleInitParameter));
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
ASSERT(pIGameServiceManager!=NULL);
pIGameServiceManager->GetServiceAttrib(m_ModuleInitParameter.GameServiceAttrib);
//<2F><><EFBFBD>ýӿ<C3BD>
m_pIGameServiceManager=pIGameServiceManager;
m_pIGameServiceCustomRule=QUERY_OBJECT_PTR_INTERFACE(m_pIGameServiceManager,IGameServiceCustomRule);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_hWnd!=NULL)
{
SetDlgItemInt(IDC_GAME_ID,m_ModuleInitParameter.GameServiceAttrib.wKindID);
SetDlgItemText(IDC_GAME_NAME,m_ModuleInitParameter.GameServiceAttrib.szGameName);
SetDlgItemInt(IDC_CHAIR_COUNT,m_ModuleInitParameter.GameServiceAttrib.wChairCount);
SetDlgItemText(IDC_DATABASE_NAME,m_ModuleInitParameter.GameServiceAttrib.szDataBaseName);
SetDlgItemText(IDC_CLIENT_EXE_NAME,m_ModuleInitParameter.GameServiceAttrib.szClientEXEName);
SetDlgItemText(IDC_SERVICE_DLL_NAME,m_ModuleInitParameter.GameServiceAttrib.szServerDLLName);
}
//<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
if (pGameServiceOption==NULL)
{
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
if (m_pIGameServiceCustomRule!=NULL)
{
WORD wCustomSize=sizeof(m_ModuleInitParameter.GameServiceOption.cbCustomRule);
m_pIGameServiceCustomRule->DefaultCustomRule(m_ModuleInitParameter.GameServiceOption.cbCustomRule,wCustomSize);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(m_pIGameServiceManager!=NULL);
m_pIGameServiceManager->RectifyParameter(m_ModuleInitParameter.GameServiceOption);
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CopyMemory(&m_ModuleInitParameter.GameServiceOption,pGameServiceOption,sizeof(tagGameServiceOption));
}
return;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgServerWizard::ActiveWizardItem(WORD wIndex)
{
//<2F>ж<EFBFBD>״̬
if (m_wActiveIndex==wIndex)
{
m_pWizardItem[m_wActiveIndex]->SetFocus();
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDlgServerWizardItem * pItemWizard=NULL;
if (m_wActiveIndex<CountArray(m_pWizardItem))
{
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
pItemWizard=m_pWizardItem[m_wActiveIndex];
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ((wIndex>m_wActiveIndex)&&(m_pWizardItem[m_wActiveIndex]->SaveItemData()==false)) return false;
}
//<2F><>ȡλ<C8A1><CEBB>
CRect rcItemRect;
GetDlgItem(IDC_ITEM_FRAME)->GetWindowRect(rcItemRect);
ScreenToClient(&rcItemRect);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pWizardItem[wIndex]->m_pDlgServerWizard=this;
m_pWizardItem[wIndex]->m_pGameServiceAttrib=&m_ModuleInitParameter.GameServiceAttrib;
m_pWizardItem[wIndex]->m_pGameServiceOption=&m_ModuleInitParameter.GameServiceOption;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wActiveIndex=wIndex;
m_pWizardItem[m_wActiveIndex]->ShowWizardItem(rcItemRect,this);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pWizardItem[m_wActiveIndex]->SetFocus();
if (pItemWizard!=NULL) pItemWizard->ShowWindow(SW_HIDE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CButton * pButtonLast=(CButton * )GetDlgItem(IDC_LAST);
CButton * pButtonNext=(CButton * )GetDlgItem(IDC_NEXT);
CButton * pButtonFinish=(CButton * )GetDlgItem(IDC_FINISH);
//<2F><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>
pButtonNext->EnableWindow(((m_wActiveIndex+1)<CountArray(m_pWizardItem))?TRUE:FALSE);
pButtonFinish->EnableWindow(((m_wActiveIndex+1)==CountArray(m_pWizardItem))?TRUE:FALSE);
pButtonLast->EnableWindow(((m_wActiveIndex>1)||((m_ModuleInitParameter.GameServiceOption.wServerID==0)&&(m_wActiveIndex>0)))?TRUE:FALSE);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TCHAR szTitle[128]=TEXT("");
_sntprintf_s(szTitle,CountArray(szTitle),TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --- [ <20><><EFBFBD><EFBFBD> %d ]"),m_wActiveIndex+1);
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>
SetWindowText(szTitle);
return true;
}
//<2F><>һ<EFBFBD><D2BB>
VOID CDlgServerWizard::OnBnClickedLast()
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(m_wActiveIndex>0);
ASSERT(m_wActiveIndex<CountArray(m_pWizardItem));
//<2F>л<EFBFBD>ҳ<EFBFBD><D2B3>
ActiveWizardItem(m_wActiveIndex-1);
return;
}
//<2F><>һ<EFBFBD><D2BB>
VOID CDlgServerWizard::OnBnClickedNext()
{
//Ч<><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT((m_wActiveIndex+1)<CountArray(m_pWizardItem));
//<2F><><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3>
ActiveWizardItem(m_wActiveIndex+1);
return;
}
//<2F><><EFBFBD>ɰ<EFBFBD>ť
VOID CDlgServerWizard::OnBnClickedFinish()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(m_wActiveIndex>=1);
if (m_pWizardItem[m_wActiveIndex]->SaveItemData()==false) return;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
tagGameServerCreate GameServerCreate;
ZeroMemory(&GameServerCreate,sizeof(GameServerCreate));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ASSERT(m_pIGameServiceManager!=NULL);
m_pIGameServiceManager->RectifyParameter(m_ModuleInitParameter.GameServiceOption);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.wGameID=m_ModuleInitParameter.GameServiceAttrib.wKindID;
GameServerCreate.wGameID=m_ModuleInitParameter.GameServiceAttrib.wKindID;
GameServerCreate.wServerID=m_ModuleInitParameter.GameServiceOption.wServerID;
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.wKindID=m_ModuleInitParameter.GameServiceOption.wKindID;
GameServerCreate.wNodeID=m_ModuleInitParameter.GameServiceOption.wNodeID;
GameServerCreate.wSortID=m_ModuleInitParameter.GameServiceOption.wSortID;
//˰<><CBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.lCellScore=m_ModuleInitParameter.GameServiceOption.lCellScore;
GameServerCreate.wRevenueRatio=m_ModuleInitParameter.GameServiceOption.wRevenueRatio;
GameServerCreate.lServiceScore=m_ModuleInitParameter.GameServiceOption.lServiceScore;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.lRestrictScore=m_ModuleInitParameter.GameServiceOption.lRestrictScore;
GameServerCreate.lMinTableScore=m_ModuleInitParameter.GameServiceOption.lMinTableScore;
GameServerCreate.lMinEnterScore=m_ModuleInitParameter.GameServiceOption.lMinEnterScore;
GameServerCreate.lMaxEnterScore=m_ModuleInitParameter.GameServiceOption.lMaxEnterScore;
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
GameServerCreate.cbMaxEnterMember=m_ModuleInitParameter.GameServiceOption.cbMaxEnterMember;
GameServerCreate.cbMaxEnterMember=m_ModuleInitParameter.GameServiceOption.cbMaxEnterMember;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.dwServerRule=m_ModuleInitParameter.GameServiceOption.dwServerRule;
GameServerCreate.dwAttachUserRight=m_ModuleInitParameter.GameServiceOption.dwAttachUserRight;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.wMaxPlayer=m_ModuleInitParameter.GameServiceOption.wMaxPlayer;
GameServerCreate.wTableCount=m_ModuleInitParameter.GameServiceOption.wTableCount;
GameServerCreate.wServerType=m_ModuleInitParameter.GameServiceOption.wServerType;
GameServerCreate.wServerPort=m_ModuleInitParameter.GameServiceOption.wServerPort;
lstrcpyn(GameServerCreate.szServerName,m_ModuleInitParameter.GameServiceOption.szServerName,CountArray(GameServerCreate.szServerName));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GameServerCreate.cbDistributeRule=m_ModuleInitParameter.GameServiceOption.cbDistributeRule;
GameServerCreate.wMinDistributeUser=m_ModuleInitParameter.GameServiceOption.wMinDistributeUser;
GameServerCreate.wMaxDistributeUser=m_ModuleInitParameter.GameServiceOption.wMaxDistributeUser;
GameServerCreate.wDistributeTimeSpace=m_ModuleInitParameter.GameServiceOption.wDistributeTimeSpace;
GameServerCreate.wDistributeDrawCount=m_ModuleInitParameter.GameServiceOption.wDistributeDrawCount;
GameServerCreate.wDistributeStartDelay=m_ModuleInitParameter.GameServiceOption.wDistributeStartDelay;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
lstrcpyn(GameServerCreate.szDataBaseName,m_ModuleInitParameter.GameServiceOption.szDataBaseName,CountArray(GameServerCreate.szDataBaseName));
lstrcpyn(GameServerCreate.szDataBaseAddr,m_ModuleInitParameter.GameServiceOption.szDataBaseAddr,CountArray(GameServerCreate.szDataBaseAddr));
//<2F><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
CWHService::GetMachineID(GameServerCreate.szServiceMachine);
CopyMemory(GameServerCreate.cbCustomRule,m_ModuleInitParameter.GameServiceOption.cbCustomRule,sizeof(GameServerCreate.cbCustomRule));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagGameServerInfo GameServerResult;
CServerInfoManager ServerInfoManager;
//<2F><><EFBFBD>뷿<EFBFBD><EBB7BF>
if (GameServerCreate.wServerID==0)
{
if (ServerInfoManager.InsertGameServer(&GameServerCreate,GameServerResult)==false) return;
//<2F><>ʾ<EFBFBD><CABE>Ϣ
CTraceService::TraceString(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"),TraceLevel_Normal);
}
//<2F>޸ķ<DEB8><C4B7><EFBFBD>
if (GameServerCreate.wServerID!=0)
{
//<2F>޸ķ<DEB8><C4B7><EFBFBD>
if (ServerInfoManager.ModifyGameServer(&GameServerCreate,GameServerResult)==false) return;
//<2F><>ʾ<EFBFBD><CABE>Ϣ
CTraceService::TraceString(TEXT("<EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>óɹ<EFBFBD>"),TraceLevel_Normal);
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.wServerID=GameServerResult.wServerID;
//<2F>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.wKindID=GameServerResult.wKindID;
m_ModuleInitParameter.GameServiceOption.wNodeID=GameServerResult.wNodeID;
m_ModuleInitParameter.GameServiceOption.wSortID=GameServerResult.wSortID;
//˰<><CBB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.lCellScore=GameServerResult.lCellScore;
m_ModuleInitParameter.GameServiceOption.wRevenueRatio=m_ModuleInitParameter.GameServiceOption.wRevenueRatio;
m_ModuleInitParameter.GameServiceOption.lServiceScore=m_ModuleInitParameter.GameServiceOption.lServiceScore;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.lRestrictScore=GameServerResult.lRestrictScore;
m_ModuleInitParameter.GameServiceOption.lMinTableScore=GameServerResult.lMinTableScore;
m_ModuleInitParameter.GameServiceOption.lMinEnterScore=GameServerResult.lMinEnterScore;
m_ModuleInitParameter.GameServiceOption.lMaxEnterScore=GameServerResult.lMaxEnterScore;
//<2F><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.cbMaxEnterMember=GameServerResult.cbMaxEnterMember;
m_ModuleInitParameter.GameServiceOption.cbMaxEnterMember=GameServerResult.cbMaxEnterMember;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.dwServerRule=GameServerResult.dwServerRule;
m_ModuleInitParameter.GameServiceOption.dwAttachUserRight=GameServerResult.dwAttachUserRight;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.wMaxPlayer=GameServerResult.wMaxPlayer;
m_ModuleInitParameter.GameServiceOption.wTableCount=GameServerResult.wTableCount;
m_ModuleInitParameter.GameServiceOption.wServerType=GameServerResult.wServerType;
m_ModuleInitParameter.GameServiceOption.wServerPort=GameServerResult.wServerPort;
lstrcpyn(m_ModuleInitParameter.GameServiceOption.szServerName,GameServerResult.szServerName,LEN_SERVER);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_ModuleInitParameter.GameServiceOption.cbDistributeRule=GameServerResult.cbDistributeRule;
m_ModuleInitParameter.GameServiceOption.wMinDistributeUser=GameServerResult.wMinDistributeUser;
m_ModuleInitParameter.GameServiceOption.wMaxDistributeUser=GameServerResult.wMaxDistributeUser;
m_ModuleInitParameter.GameServiceOption.wDistributeTimeSpace=GameServerResult.wDistributeTimeSpace;
m_ModuleInitParameter.GameServiceOption.wDistributeDrawCount=GameServerResult.wDistributeDrawCount;
m_ModuleInitParameter.GameServiceOption.wDistributeStartDelay=GameServerResult.wDistributeStartDelay;
//<2F><>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>
UINT uCustomRuleSize=sizeof(m_ModuleInitParameter.GameServiceOption.cbCustomRule);
CopyMemory(m_ModuleInitParameter.GameServiceOption.cbCustomRule,GameServerResult.cbCustomRule,uCustomRuleSize);
//<2F>رմ<D8B1><D5B4><EFBFBD>
EndDialog(IDOK);
return;
}
//////////////////////////////////////////////////////////////////////////////////
void CDlgServerOptionItem1::OnBnClickedRevenueRadio()
{
//
GetDlgItem(IDC_STATIC_REVENUE_SERVICE)->SetWindowText(TEXT("˰<EFBFBD>ձ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
((CEdit *)GetDlgItem(IDC_SERVICE_REVENUE))->SetWindowText(TEXT(""));
((CEdit *)GetDlgItem(IDC_SERVICE_REVENUE))->LimitText(3);
}
void CDlgServerOptionItem1::OnBnClickedServiceRadio()
{
//
GetDlgItem(IDC_STATIC_REVENUE_SERVICE)->SetWindowText(TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
((CEdit *)GetDlgItem(IDC_SERVICE_REVENUE))->SetWindowText(TEXT(""));
((CEdit *)GetDlgItem(IDC_SERVICE_REVENUE))->LimitText(9);
}