Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
285 lines
12 KiB
C++
285 lines
12 KiB
C++
// SetupPage4.cpp : 구현 파일입니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "SeverSetupDlg.h"
|
|
#include "ServerGroup.h"
|
|
#include "SetupPage4.h"
|
|
|
|
#include <Utility/Setup/ServerSetup.h>
|
|
#include <Network/Packet/PacketStruct/ServerInfo.h>
|
|
#include ".\setuppage4.h"
|
|
|
|
// CSetupPage4 대화 상자입니다.
|
|
IMPLEMENT_DYNAMIC(CSetupPage4, CPropertyPage)
|
|
CSetupPage4::CSetupPage4()
|
|
: CPropertyPage(CSetupPage4::IDD)
|
|
, m_bEnabled(FALSE)
|
|
, m_szDBAgentServerID(_T(""))
|
|
, m_szVersion(_T(""))
|
|
, m_szCheckSum(_T(""))
|
|
, m_szPatchAddress(_T(""))
|
|
, m_bPingCheck(FALSE)
|
|
, m_bBattleServer(FALSE)
|
|
, m_bAdminIPCheck(FALSE)
|
|
, m_szLoginServerAddr(_T(""))
|
|
, m_szUIDServerAddr(_T(""))
|
|
, m_szGameDBInfo(_T(""))
|
|
, m_szGameListenPort(_T(""))
|
|
, m_szAuthListenPort(_T(""))
|
|
, m_szChatListenPort(_T(""))
|
|
, m_szAdminToolListenPort(_T(""))
|
|
, m_szLimitServerGroupUserNum(_T(""))
|
|
, m_szLimitBattleGroundUserNum(_T(""))
|
|
, m_szLimitBattleGroundUserPer(_T(""))
|
|
, m_szPart1DBAgentAddr(_T(""))
|
|
, m_szRestrictedTransLevel(_T(""))
|
|
, m_szMaxTransCount(_T(""))
|
|
{
|
|
}
|
|
|
|
CSetupPage4::~CSetupPage4()
|
|
{
|
|
}
|
|
|
|
void CSetupPage4::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Text(pDX, IDC_DBAGENT_SERVER_ID, m_szDBAgentServerID);
|
|
DDX_Control(pDX, IDC_DBAGENT_SERVER_GROUP, m_cbDBAgentServerGroup);
|
|
DDX_Control(pDX, IDC_DBAGENT_SERVER_TYPE, m_cbDBAgentServerType);
|
|
DDX_Control(pDX, IDC_DBAGENT_NATION, m_cbDBAgentServiceNation);
|
|
DDX_Control(pDX, IDC_DBAGENT_BILLING_TYPE, m_cbDBAgentBillingType);
|
|
DDX_Text(pDX, IDC_DBAGENT_VERSION, m_szVersion);
|
|
DDX_Text(pDX, IDC_DBAGENT_CHECKSUM, m_szCheckSum);
|
|
DDX_Text(pDX, IDC_DBAGENT_PATCH_ADDR, m_szPatchAddress);
|
|
DDX_Check(pDX, IDC_DBAGENT_PING_CHECK, m_bPingCheck);
|
|
DDX_Check(pDX, IDC_DBAGENT_BATTLE_SERVER, m_bBattleServer);
|
|
DDX_Check(pDX, IDC_DBAGENT_ADMIN_IP_CHECK, m_bAdminIPCheck);
|
|
DDX_Text(pDX, IDC_DBAGENT_LOGIN_SERVER_ADDR, m_szLoginServerAddr);
|
|
DDX_Text(pDX, IDC_DBAGENT_UID_SERVER_ADDR, m_szUIDServerAddr);
|
|
DDX_Text(pDX, IDC_DBAGENT_EDT_DBSETTING, m_szGameDBInfo);
|
|
DDX_Text(pDX, IDC_DBAGENT_GAME_LISTEN_PORT, m_szGameListenPort);
|
|
DDX_Text(pDX, IDC_DBAGENT_AUTH_LISTEN_PORT, m_szAuthListenPort);
|
|
DDX_Text(pDX, IDC_DBAGENT_CHAT_LISTEN_PORT, m_szChatListenPort);
|
|
DDX_Text(pDX, IDC_DBAGENT_ADMINTOOL_LISTEN_PORT, m_szAdminToolListenPort);
|
|
DDX_Text(pDX, IDC_DBAGENT_LIMIT_SERVER_GROUP_USER_NUM, m_szLimitServerGroupUserNum);
|
|
DDX_Text(pDX, IDC_DBAGENT_LIMIT_BATTLEGROUND_USER_NUM, m_szLimitBattleGroundUserNum);
|
|
DDX_Text(pDX, IDC_DBAGENT_LIMIT_BATTLEGROUND_USER_PER, m_szLimitBattleGroundUserPer);
|
|
DDX_Text(pDX, IDC_DBAGENT_PART1UNI_AGENT_ADDR, m_szPart1DBAgentAddr);
|
|
DDX_Text(pDX, IDC_DBAGENT_RESTRICTEDLEVEL_P1TOP2, m_szRestrictedTransLevel);
|
|
DDX_Text(pDX, IDC_DBAGENT_MAX_TRANSFER_COUNT, m_szMaxTransCount);
|
|
DDX_Control(pDX, IDC_DBAGENT_PART2UNIFIED_SERVER_NUM, m_cbSelectableUnifiedServerNum);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CSetupPage4, CDialog)
|
|
ON_BN_CLICKED(IDC_DBAGENT_BTN_DBSETTING, OnBnClickedDbagentBtnDbsetting)
|
|
ON_CBN_SELCHANGE(IDC_DBAGENT_SERVER_GROUP, OnCbnSelchangeDbagentServerGroup)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CSetupPage4 메시지 처리기입니다.
|
|
BOOL CSetupPage4::OnInitDialog()
|
|
{
|
|
CPropertyPage::OnInitDialog();
|
|
|
|
m_szGameListenPort.Format(_T("%d"), CServerSetup::DBAgentServerGameServerListen);
|
|
m_szAuthListenPort.Format(_T("%d"), CServerSetup::DBAgentServerAuthServerListen);
|
|
m_szChatListenPort.Format(_T("%d"), CServerSetup::DBAgentServerChatServerListen);
|
|
m_szAdminToolListenPort.Format(_T("%d"), CServerSetup::DBAgentAdminToolServerListen);
|
|
|
|
SetServerGroup(m_cbDBAgentServerGroup);
|
|
SetDBAgentServerType(m_cbDBAgentServerType);
|
|
SetBillingType(m_cbDBAgentBillingType);
|
|
SetGameServerNation(m_cbDBAgentServiceNation);
|
|
|
|
CString szServerID;
|
|
CString szServerType;
|
|
CString szBillingType;
|
|
CString szNationType;
|
|
CString szPingCheck;
|
|
CString szAdminIPCheck;
|
|
CString szBattleServer;
|
|
CString szSelectableUnifiedServerNum;
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerID"), szServerID);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerType"), szServerType);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("BillingType"), szBillingType);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("NationType"), szNationType);
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ClientVersion"), m_szVersion);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("PatchAddress"), m_szPatchAddress);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LoginServerAddr"), m_szLoginServerAddr);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("UIDServerAddr"), m_szUIDServerAddr);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("CheckSum"), m_szCheckSum);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitServerGroupUserNum"), m_szLimitServerGroupUserNum);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUser"), m_szLimitBattleGroundUserNum);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUserPer"), m_szLimitBattleGroundUserPer);
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("PingCheck"), szPingCheck);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("AdminIPCheck"), szAdminIPCheck);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("BattleServer"), szBattleServer);
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBType"), m_GameDB.m_szDBData[DBSetting::DB_TYPE]);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBAddr"), m_GameDB.m_szDBData[DBSetting::DB_ADDR]);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBName"), m_GameDB.m_szDBData[DBSetting::DB_NAME]);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBUser"), m_GameDB.m_szDBData[DBSetting::DB_USER]);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBPass"), m_GameDB.m_szDBData[DBSetting::DB_PASS]);
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part1UnifiedAgentAddr"), m_szPart1DBAgentAddr);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("RestrictedPart1ToPart2Level"), m_szRestrictedTransLevel);
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("MaxTransferCharNum"), m_szMaxTransCount);
|
|
|
|
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part2SelectableUnifiedServerNum"), szSelectableUnifiedServerNum);
|
|
|
|
int nCount = 0;
|
|
|
|
CString nNum;
|
|
for(nCount = 0; nCount < UnifiedConst::Part1; ++nCount)
|
|
{
|
|
nNum.Format("%d", nCount);
|
|
m_cbSelectableUnifiedServerNum.InsertString(nCount, nNum);
|
|
}
|
|
|
|
m_cbSelectableUnifiedServerNum.SetCurSel(atol(szSelectableUnifiedServerNum));
|
|
|
|
SERVER_ID serverID = { 0, };
|
|
serverID.dwID = atol(szServerID);
|
|
|
|
m_szDBAgentServerID.Format("0x%08x", serverID.dwID);
|
|
m_cbDBAgentServerGroup.SetCurSel(serverID.GetGroup());
|
|
m_cbDBAgentBillingType.SetCurSel(atol(szBillingType));
|
|
m_cbDBAgentServiceNation.SetCurSel(atol(szNationType));
|
|
|
|
int nAgentServerType = atoi(szServerType);
|
|
int nMaxCount = m_cbDBAgentServerType.GetCount();
|
|
for(nCount = 0; nCount < nMaxCount; ++nCount)
|
|
{
|
|
if(m_cbDBAgentServerType.GetItemData(nCount) == nAgentServerType)
|
|
{
|
|
m_cbDBAgentServerType.SetCurSel(nCount);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(nCount == nMaxCount)
|
|
{
|
|
m_cbDBAgentServerType.SetCurSel(0);
|
|
}
|
|
|
|
m_bPingCheck = (1 == atol(szPingCheck));
|
|
m_bAdminIPCheck = (1 == atol(szAdminIPCheck));
|
|
m_bBattleServer = (1 == atol(szBattleServer));
|
|
|
|
CDBSetting::CreateDBInfoString(m_GameDB, m_szGameDBInfo);
|
|
|
|
UpdateData(FALSE);
|
|
UpdateServerID();
|
|
return TRUE;
|
|
}
|
|
|
|
void CSetupPage4::Save(void)
|
|
{
|
|
if(m_bEnabled)
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
CString szServerID;
|
|
CString szServerType;
|
|
CString szBillingType;
|
|
CString szNationType;
|
|
CString szSelectableUnifiedServerNum;
|
|
|
|
SERVER_ID serverID = {0,};
|
|
|
|
serverID.sID.ID = 0;
|
|
serverID.sID.Channel = 0;
|
|
serverID.sID.Type = CServerSetup::AgentServer;
|
|
serverID.sID.Group = m_cbDBAgentServerGroup.GetCurSel();
|
|
|
|
szServerID.Format(_T("%d"), serverID.dwID);
|
|
szBillingType.Format(_T("%d"), m_cbDBAgentBillingType.GetCurSel());
|
|
szNationType.Format(_T("%d"), m_cbDBAgentServiceNation.GetCurSel());
|
|
szSelectableUnifiedServerNum.Format(_T("%d"), m_cbSelectableUnifiedServerNum.GetCurSel());
|
|
|
|
szServerType.Format(_T("%d"),
|
|
m_cbDBAgentServerType.GetItemData(m_cbDBAgentServerType.GetCurSel()));
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerID"), szServerID);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerType"), szServerType);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("BillingType"), szBillingType);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("NationType"), szNationType);
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ClientVersion"), m_szVersion);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("PatchAddress"), m_szPatchAddress);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LoginServerAddr"), m_szLoginServerAddr);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("UIDServerAddr"), m_szUIDServerAddr);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("CheckSum"), m_szCheckSum);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitServerGroupUserNum"), m_szLimitServerGroupUserNum);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUser"), m_szLimitBattleGroundUserNum);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUserPer"), m_szLimitBattleGroundUserPer);
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("PingCheck"), BOOLToString(m_bPingCheck));
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("AdminIPCheck"), BOOLToString(m_bAdminIPCheck));
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("BattleServer"), BOOLToString(m_bBattleServer));
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBType"), m_GameDB.m_szDBData[DBSetting::DB_TYPE]);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBAddr"), m_GameDB.m_szDBData[DBSetting::DB_ADDR]);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBName"), m_GameDB.m_szDBData[DBSetting::DB_NAME]);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBUser"), m_GameDB.m_szDBData[DBSetting::DB_USER]);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBPass"), m_GameDB.m_szDBData[DBSetting::DB_PASS]);
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part1UnifiedAgentAddr"), m_szPart1DBAgentAddr);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("RestrictedPart1ToPart2Level"), m_szRestrictedTransLevel);
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("MaxTransferCharNum"), m_szMaxTransCount);
|
|
|
|
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part2SelectableUnifiedServerNum"), szSelectableUnifiedServerNum);
|
|
|
|
}
|
|
}
|
|
|
|
BOOL CSetupPage4::OnSetActive()
|
|
{
|
|
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
|
|
UpdateData(FALSE);
|
|
m_bEnabled = TRUE;
|
|
return CPropertyPage::OnSetActive();
|
|
}
|
|
|
|
void CSetupPage4::UpdateServerID()
|
|
{
|
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
|
|
|
UpdateData(TRUE);
|
|
|
|
SERVER_ID serverID = {0,};
|
|
|
|
serverID.sID.ID = 0;
|
|
serverID.sID.Channel = 0;
|
|
serverID.sID.Type = CServerSetup::AgentServer;
|
|
serverID.sID.Group = m_cbDBAgentServerGroup.GetCurSel();
|
|
|
|
m_szDBAgentServerID.Format(_T("0x%08x"), serverID.dwID);
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
void CSetupPage4::OnBnClickedDbagentBtnDbsetting()
|
|
{
|
|
UpdateData(TRUE);
|
|
|
|
if (CDBSetting::CreateDBSettingDlg(
|
|
_T("GameDB DBSetting"),
|
|
_T("* GameDB DBSetting \r\n"),
|
|
m_GameDB, m_szGameDBInfo))
|
|
{
|
|
UpdateData(FALSE);
|
|
}
|
|
}
|
|
|
|
void CSetupPage4::OnCbnSelchangeDbagentServerGroup()
|
|
{
|
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
|
UpdateServerID();
|
|
}
|