config.cpp
来自「国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国」· C++ 代码 · 共 456 行
CPP
456 行
#include "stdafx.h"
#include "config.h"
#include "resource.h"
#include "manager.h"
#include "MasterServer.h"
CConfig::CConfig()
{
}
CConfig::~CConfig()
{
}
CMSConfig::CMSConfig()
{
}
CMSConfig::~CMSConfig()
{
}
LRESULT CALLBACK CMSConfig::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
g_cMasterServer.GetManager()->m_cpConfig[M_MASTERSERVER]->LoadINI(hDlg);
SendMessage(GetDlgItem(hDlg, IDC_CM_DBLIST), LB_SETCURSEL, 0, 0);
break;
case WM_DESTROY:
g_cMasterServer.GetManager()->m_hDlg = NULL;
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
g_cMasterServer.GetManager()->m_cpConfig[M_MASTERSERVER]->SaveINI(hDlg);
break;
case IDCANCEL:
DestroyWindow(hDlg);
break;
case IDC_CM_BLOCKADD:
if(!SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKIP), IPM_ISBLANK, 0, 0))
{
DWORD dwAddr;
IN_ADDR in_addr;
char szBlock[LEN_BUFFER+1];
char szNote[LEN_BUFFER+1];
SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKIP), IPM_GETADDRESS, 0, (LPARAM)&dwAddr);
in_addr.s_net = FIRST_IPADDRESS(dwAddr);
in_addr.s_host = SECOND_IPADDRESS(dwAddr);
in_addr.s_lh = THIRD_IPADDRESS(dwAddr);
in_addr.s_impno = FOURTH_IPADDRESS(dwAddr);
if(GetDlgItemText(hDlg, IDC_CM_BLOCKNOTE, szNote, LEN_BUFFER))
sprintf(szBlock, "%s %s", inet_ntoa(in_addr), szNote);
else
strcpy(szBlock, inet_ntoa(in_addr));
SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKLIST), LB_ADDSTRING, 0, (LPARAM)szBlock);
}
break;
case IDC_CM_BLOCKDEL:
{
int iSelection = SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKLIST), LB_GETCURSEL, 0, 0);
if(iSelection == LB_ERR)
break;
SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKLIST), LB_DELETESTRING, iSelection, 0);
}
break;
case IDC_CM_DSN:
if(HIWORD(wParam) == 768)
{
HWND hListBox = GetDlgItem(hDlg, IDC_CM_DBLIST);
int iSelection = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
if(iSelection == LB_ERR)
break;
char id[LEN_ID+1];
char database[LEN_SVRNAME+1];
char line[LEN_BUFFER+1];
DWORD dwAddr;
SendMessage(GetDlgItem(hDlg, IDC_CM_DSN), IPM_GETADDRESS, 0, (LPARAM)&dwAddr);
GetDlgItemText(hDlg, IDC_CM_DSA, id, LEN_ID);
GetDlgItemText(hDlg, IDC_CM_DBN, database, LEN_SVRNAME);
id[LEN_ID] = NULL;
database[LEN_SVRNAME] = NULL;
IN_ADDR in_addr;
in_addr.s_net = FIRST_IPADDRESS(dwAddr);
in_addr.s_host = SECOND_IPADDRESS(dwAddr);
in_addr.s_lh = THIRD_IPADDRESS(dwAddr);
in_addr.s_impno = FOURTH_IPADDRESS(dwAddr);
sprintf(line, "%s %s %s", database, inet_ntoa(in_addr), id);
SendMessage(hListBox, LB_DELETESTRING, iSelection, 0);
SendMessage(hListBox, LB_INSERTSTRING, iSelection, (LPARAM)line);
SendMessage(hListBox, LB_SETCURSEL, iSelection, 0);
}
break;
case IDC_CM_DSP:
if(HIWORD(wParam) == EN_UPDATE)
{
HWND hPwdListBox = GetDlgItem(hDlg, IDC_CM_PWDLIST);
int iSelection = SendMessage(GetDlgItem(hDlg, IDC_CM_DBLIST), LB_GETCURSEL, 0, 0);
if(iSelection == LB_ERR)
break;
char pwd[LEN_PWD+1];
GetDlgItemText(hDlg, IDC_CM_DSP, pwd, LEN_PWD);
pwd[LEN_PWD] = NULL;
SendMessage(hPwdListBox, LB_DELETESTRING, iSelection, 0);
SendMessage(hPwdListBox, LB_INSERTSTRING, iSelection, (LPARAM)pwd);
SendMessage(hPwdListBox, LB_SETCURSEL, iSelection, 0);
}
break;
case IDC_CM_DSA:
case IDC_CM_DBN:
if(HIWORD(wParam) == EN_UPDATE)
{
HWND hListBox = GetDlgItem(hDlg, IDC_CM_DBLIST);
int iSelection = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
if(iSelection == LB_ERR)
break;
char id[LEN_ID+1];
char database[LEN_SVRNAME+1];
char line[LEN_BUFFER+1];
DWORD dwAddr;
SendMessage(GetDlgItem(hDlg, IDC_CM_DSN), IPM_GETADDRESS, 0, (LPARAM)&dwAddr);
GetDlgItemText(hDlg, IDC_CM_DSA, id, LEN_ID);
GetDlgItemText(hDlg, IDC_CM_DBN, database, LEN_SVRNAME);
id[LEN_ID] = NULL;
database[LEN_SVRNAME] = NULL;
IN_ADDR in_addr;
in_addr.s_net = FIRST_IPADDRESS(dwAddr);
in_addr.s_host = SECOND_IPADDRESS(dwAddr);
in_addr.s_lh = THIRD_IPADDRESS(dwAddr);
in_addr.s_impno = FOURTH_IPADDRESS(dwAddr);
sprintf(line, "%s %s %s", database, inet_ntoa(in_addr), id);
SendMessage(hListBox, LB_DELETESTRING, iSelection, 0);
SendMessage(hListBox, LB_INSERTSTRING, iSelection, (LPARAM)line);
SendMessage(hListBox, LB_SETCURSEL, iSelection, 0);
}
break;
}
break;
}
return FALSE;
}
BOOL CMSConfig::LoadINI(HWND hDlg)
{
CONFIG sConfig;
sConfig.sys_port_tcp = GetPrivateProfileInt("CONFIG", "TCP_PORT", 0, MSINIT);
sConfig.sys_port_udp = GetPrivateProfileInt("CONFIG", "UDP_PORT", 0, MSINIT);
sConfig.sys_maxuser = GetPrivateProfileInt("CONFIG", "MAX_USER", 0, MSINIT);
sConfig.sys_maxlocal = GetPrivateProfileInt("CONFIG", "MAX_LOCAL", 0, MSINIT);
sConfig.sys_cgiproc = GetPrivateProfileInt("CONFIG", "MAX_CGIPROC", 1, MSINIT);
sConfig.sys_frame = GetPrivateProfileInt("CONFIG", "FS_FRAME", 120, MSINIT);
sConfig.sys_block_cnt = GetPrivateProfileInt("CONFIG", "CNT_BLOCK_IP", 0, MSINIT);
sConfig.sys_version_hi = GetPrivateProfileInt("GAME", "VERSION_HI", 0, MSINIT);
sConfig.sys_version_lo = GetPrivateProfileInt("GAME", "VERSION_LO", 0, MSINIT);
SetDlgItemInt(hDlg, IDC_CM_TCPPORT, sConfig.sys_port_tcp, TRUE);
SetDlgItemInt(hDlg, IDC_CM_UDPPORT, sConfig.sys_port_udp, TRUE);
SetDlgItemInt(hDlg, IDC_CM_MAXCLIENT, sConfig.sys_maxuser, TRUE);
SetDlgItemInt(hDlg, IDC_CM_MAXLOCAL, sConfig.sys_maxlocal, TRUE);
SetDlgItemInt(hDlg, IDC_CM_FRAME, sConfig.sys_frame, TRUE);
char itemfile[LEN_FILENAME+1];
char version[8];
sprintf(version, "%03d.%03d", sConfig.sys_version_hi, sConfig.sys_version_lo);
SetDlgItemText(hDlg, IDC_CM_VERSION, version);
GetPrivateProfileString("GAME", "WEAPON_ITEMFILE", NULL, itemfile, sizeof(itemfile), MSINIT);
SetDlgItemText(hDlg, IDC_CM_WEAPONFILE, itemfile);
GetPrivateProfileString("GAME", "ASSIST_ITEMFILE", NULL, itemfile, sizeof(itemfile), MSINIT);
SetDlgItemText(hDlg, IDC_CM_ASSISTFILE, itemfile);
GetPrivateProfileString("GAME", "MECHANIC_ITEMFILE", NULL, itemfile, sizeof(itemfile), MSINIT);
SetDlgItemText(hDlg, IDC_CM_MECHANICFILE, itemfile);
int i;
char line[LEN_BUFFER+1];
char source[LEN_SVRNAME+1];
char database[LEN_SVRNAME+1];
char id[LEN_ID+1];
char pwd[LEN_PWD+1];
char ip[LEN_IP+1];
char note[LEN_TITLE+1];
IN_ADDR in_addr;
i=0;
while(i < MAX_CONNECTION_DB)
{
GetPrivateProfileString("LIST_CONNECTION_DB", itoa(i, id, 10), NULL, line, sizeof(line), MSINIT);
sscanf(line, "%s %s %s %s", database, source, id, pwd);
sprintf(line, "%s %s %s", database, source, id);
in_addr.s_addr = inet_addr(source);
SendMessage(GetDlgItem(hDlg, IDC_CM_DSN), IPM_SETADDRESS, 0, (LPARAM)MAKEIPADDRESS(in_addr.s_net, in_addr.s_host, in_addr.s_lh, in_addr.s_impno));
SendMessage(GetDlgItem(hDlg, IDC_CM_DBLIST), LB_ADDSTRING, 0, (LPARAM)line);
SendMessage(GetDlgItem(hDlg, IDC_CM_PWDLIST), LB_ADDSTRING, 0, (LPARAM)pwd);
SetDlgItemText(hDlg, IDC_CM_DSA, id);
SetDlgItemText(hDlg, IDC_CM_DSP, pwd);
SetDlgItemText(hDlg, IDC_CM_DBN, database);
++i;
}
i=0;
while(i < sConfig.sys_block_cnt)
{
GetPrivateProfileString("LIST_BLOCK_IP", itoa(i, id, 10), NULL, line, sizeof(line), MSINIT);
note[0] = NULL;
sscanf(line, "%s %s", ip, note);
if(note[0])
{
sprintf(line, "%s %s", ip, note);
SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKLIST), LB_ADDSTRING, 0, (LPARAM)line);
}
else
SendMessage(GetDlgItem(hDlg, IDC_CM_BLOCKLIST), LB_ADDSTRING, 0, (LPARAM)ip);
++i;
}
return TRUE;
}
BOOL CMSConfig::SaveINI(HWND hDlg)
{
char szLine[LEN_BUFFER+1];
char szWord[6];
char szFloat[8];
char szItemFile[LEN_FILENAME+1];
char szPwd[LEN_PWD+1];
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_TCPPORT, szWord, 6);
WritePrivateProfileString("CONFIG", "TCP_PORT", szWord, MSINIT);
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_UDPPORT, szWord, 6);
WritePrivateProfileString("CONFIG", "UDP_PORT", szWord, MSINIT);
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_MAXCLIENT, szWord, 6);
WritePrivateProfileString("CONFIG", "MAX_USER", szWord, MSINIT);
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_MAXLOCAL, szWord, 6);
WritePrivateProfileString("CONFIG", "MAX_LOCAL", szWord, MSINIT);
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_FRAME, szWord, 6);
WritePrivateProfileString("CONFIG", "FS_FRAME", szWord, MSINIT);
GetDlgItemText(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_VERSION, szFloat, 8);
char *pComma = strstr(szFloat, ".");
if(!pComma) return FALSE;
*pComma = NULL; ++pComma;
WritePrivateProfileString("GAME", "VERSION_HI", szFloat, MSINIT);
WritePrivateProfileString("GAME", "VERSION_LO", pComma, MSINIT);
GetDlgItemText(hDlg, IDC_CM_WEAPONFILE, szItemFile, LEN_FILENAME);
WritePrivateProfileString("GAME", "WEAPON_ITEMFILE", szItemFile, MSINIT);
GetDlgItemText(hDlg, IDC_CM_ASSISTFILE, szItemFile, LEN_FILENAME);
WritePrivateProfileString("GAME", "ASSIST_ITEMFILE", szItemFile, MSINIT);
GetDlgItemText(hDlg, IDC_CM_MECHANICFILE, szItemFile, LEN_FILENAME);
WritePrivateProfileString("GAME", "MECHANIC_ITEMFILE", szItemFile, MSINIT);
HWND hListBox = GetDlgItem(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_DBLIST);
HWND hPwdListBox = GetDlgItem(g_cMasterServer.GetManager()->m_hDlg, IDC_CM_PWDLIST);
int i=0;
while(i < MAX_CONNECTION_DB)
{
SendMessage(hListBox, LB_GETTEXT, i, (LPARAM)szLine);
SendMessage(hPwdListBox, LB_GETTEXT, i, (LPARAM)szPwd);
sprintf(szLine + strlen(szLine), " %s", szPwd);
WritePrivateProfileString("LIST_CONNECTION_DB", itoa(i, szWord, 10), szLine, MSINIT);
++i;
}
hListBox = GetDlgItem(hDlg, IDC_CM_BLOCKLIST);
int nCount = SendMessage(hListBox, LB_GETCOUNT, 0, 0);
WritePrivateProfileString("CONFIG", "CNT_BLOCK_IP", itoa(nCount, szWord, 10), MSINIT);
while(nCount--)
{
SendMessage(hListBox, LB_GETTEXT, nCount, (LPARAM)szLine);
WritePrivateProfileString("LIST_BLOCK_IP", itoa(nCount, szWord, 10), szLine, MSINIT);
++i;
}
return TRUE;
}
CLSConfig::CLSConfig()
{
}
CLSConfig::~CLSConfig()
{
}
LRESULT CALLBACK CLSConfig::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
g_cMasterServer.GetManager()->m_cpConfig[M_LOBBYSERVER]->LoadINI(hDlg);
break;
case WM_DESTROY:
g_cMasterServer.GetManager()->m_hDlg = NULL;
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
break;
}
return FALSE;
}
BOOL CLSConfig::LoadINI(HWND hDlg)
{
return TRUE;
}
BOOL CLSConfig::SaveINI(HWND hDlg)
{
return TRUE;
}
CGSConfig::CGSConfig()
{
}
CGSConfig::~CGSConfig()
{
}
LRESULT CALLBACK CGSConfig::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
g_cMasterServer.GetManager()->m_cpConfig[M_GAMESERVER]->LoadINI(hDlg);
break;
case WM_DESTROY:
g_cMasterServer.GetManager()->m_hDlg = NULL;
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
break;
}
return FALSE;
}
BOOL CGSConfig::LoadINI(HWND hDlg)
{
return TRUE;
}
BOOL CGSConfig::SaveINI(HWND hDlg)
{
return TRUE;
}
CPSConfig::CPSConfig()
{
}
CPSConfig::~CPSConfig()
{
}
LRESULT CALLBACK CPSConfig::DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
g_cMasterServer.GetManager()->m_cpConfig[M_PATCHSERVER]->LoadINI(hDlg);
break;
case WM_DESTROY:
g_cMasterServer.GetManager()->m_hDlg = NULL;
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
DestroyWindow(hDlg);
break;
}
break;
}
return FALSE;
}
BOOL CPSConfig::LoadINI(HWND hDlg)
{
return TRUE;
}
BOOL CPSConfig::SaveINI(HWND hDlg)
{
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?