Restructure repository to include all source folders
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>
This commit is contained in:
206
Server/ToolProject/GameDBTool/Admin.cpp
Normal file
206
Server/ToolProject/GameDBTool/Admin.cpp
Normal file
@@ -0,0 +1,206 @@
|
||||
// Admin.cpp : 구현 파일입니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "GameDBTool.h"
|
||||
#include "Admin.h"
|
||||
|
||||
#include "GameDBTool.h"
|
||||
#include "GameDBToolDlg.h"
|
||||
#include ".\admin.h"
|
||||
|
||||
// CAdmin 대화 상자입니다.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CAdmin, CDialog)
|
||||
CAdmin::CAdmin(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CAdmin::IDD, pParent)
|
||||
, m_UserID(_T(""))
|
||||
, m_SIP(_T(""))
|
||||
, m_EIP(_T(""))
|
||||
{
|
||||
}
|
||||
|
||||
CAdmin::~CAdmin()
|
||||
{
|
||||
}
|
||||
|
||||
void CAdmin::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Text(pDX, IDC_UID, m_UserID);
|
||||
DDX_Control(pDX, IDC_LEVEL, m_Level);
|
||||
DDX_Text(pDX, IDC_S_IP, m_SIP);
|
||||
DDX_Text(pDX, IDC_E_IP, m_EIP);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAdmin, CDialog)
|
||||
ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
|
||||
ON_EN_CHANGE(IDC_S_IP, OnEnChangeSIp)
|
||||
ON_WM_CTLCOLOR()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CAdmin 메시지 처리기입니다.
|
||||
BOOL CAdmin::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: 여기에 추가 초기화 작업을 추가합니다.
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
ADMIN Admin = {0,};
|
||||
|
||||
char Query[256] = "";
|
||||
sprintf(Query, "SELECT * FROM AdminList WHERE UID='%d'", m_UID);
|
||||
|
||||
int Rows = 0;
|
||||
if(!CDBSingleObject::GetInstance().Select( Query, (void **)&Admin, sizeof(ADMIN), 0, 1, &Rows))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[영자] 영자 정보 읽기중에 오류가 발생. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
if(0 == Rows)
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[영자] 영자 정보 읽기중에 오류가 발생. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
m_UserID.Format("%d", m_UID);
|
||||
|
||||
m_Level.InsertString(0, "None");
|
||||
m_Level.InsertString(1, "Admin LV1");
|
||||
m_Level.InsertString(2, "Admin LV2");
|
||||
m_Level.InsertString(3, "Admin LV3");
|
||||
|
||||
|
||||
// 운영자 정보 창 띄었을때 현재 레벨 표시
|
||||
switch(Admin.Level)
|
||||
{
|
||||
case 0: m_Level.SetCurSel(0); break;
|
||||
case 1: m_Level.SetCurSel(1); break;
|
||||
case 2: m_Level.SetCurSel(2); break;
|
||||
case 3: m_Level.SetCurSel(3); break;
|
||||
}
|
||||
// 운영자 정보 창 띄었을때 현재 아이피 셋팅 표시
|
||||
m_SIP = Admin.IP_S;
|
||||
m_EIP = Admin.IP_E;
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
|
||||
}
|
||||
|
||||
void CAdmin::OnBnClickedModify()
|
||||
{
|
||||
UpdateData();
|
||||
|
||||
CGameDBToolApp* pAppWnd = (CGameDBToolApp*)AfxGetApp();
|
||||
CGameDBToolDlg* pDlgWnd = (CGameDBToolDlg*)pAppWnd->m_pMainWnd;
|
||||
|
||||
IN_ADDR SAddr = {0,};
|
||||
IN_ADDR EAddr = {0,};
|
||||
|
||||
SAddr.S_un.S_addr = inet_addr(m_SIP.GetBuffer(0));
|
||||
EAddr.S_un.S_addr = inet_addr(m_EIP.GetBuffer(0));
|
||||
|
||||
if((SAddr.S_un.S_un_b.s_b1 != EAddr.S_un.S_un_b.s_b1) || (SAddr.S_un.S_un_b.s_b2 != EAddr.S_un.S_un_b.s_b2) ||
|
||||
(SAddr.S_un.S_un_b.s_b3 != EAddr.S_un.S_un_b.s_b3))
|
||||
{
|
||||
MessageBox("IP 대역이 잘못 되었습니다.");
|
||||
return;
|
||||
}
|
||||
|
||||
char Query[256] = "";
|
||||
switch(m_Level.GetCurSel())
|
||||
{
|
||||
case 0: // 일반
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
0, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
|
||||
case 1: // 운영자 LV1
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
1, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
|
||||
case 2: // 운영자 LV2
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
2, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
case 3: // 운영자 LV3
|
||||
{
|
||||
sprintf(Query, "UPDATE AdminList SET Level = '%d', IP_S = '%s', IP_E = '%s' WHERE UID = '%d'",
|
||||
3, m_SIP.GetBuffer(0), m_EIP.GetBuffer(0), m_UID);
|
||||
}break;
|
||||
}
|
||||
|
||||
int Rows = 0;
|
||||
if(!CDBSingleObject::GetInstance().ExecuteQuery(Query))
|
||||
{
|
||||
pDlgWnd->m_Log.LogPrint("[영자] 레벨 변환중에 오류가 발생. %s", CDBSingleObject::GetInstance().GetErrorString());
|
||||
}
|
||||
|
||||
CAdmin::OnOK();
|
||||
}
|
||||
|
||||
void CAdmin::OnEnChangeSIp()
|
||||
{
|
||||
UpdateData();
|
||||
m_EIP = m_SIP;
|
||||
UpdateData(FALSE);
|
||||
}
|
||||
|
||||
bool CAdminDB::Initialize(void)
|
||||
{
|
||||
char Query[256] = "";
|
||||
|
||||
memset(&m_AdminList, 0, sizeof(unsigned long) * MaxList);
|
||||
|
||||
sprintf(Query, "SELECT UID FROM AdminList");
|
||||
if(!CDBSingleObject::GetInstance().Select( Query, (void **)m_AdminList, sizeof(DWORD), 0, MaxList, &m_AdminNum))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
unsigned short CAdminDB::GetAdminLevel(unsigned long UID)
|
||||
{
|
||||
for(int Count = 0; Count < m_AdminNum; ++Count)
|
||||
if(m_AdminList[Count] == UID)
|
||||
{
|
||||
return Level::L1;
|
||||
}
|
||||
|
||||
return Level::None;
|
||||
}
|
||||
HBRUSH CAdmin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: 여기서 DC의 특성을 변경합니다.
|
||||
|
||||
HBRUSH m_hBrush;
|
||||
|
||||
m_hBrush = CreateSolidBrush(RGB( 255, 169, 128));
|
||||
|
||||
switch( nCtlColor ){
|
||||
case CTLCOLOR_DLG:
|
||||
pDC->SetBkColor(RGB( 255, 255, 255));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
case CTLCOLOR_STATIC:
|
||||
pDC->SetBkColor(RGB( 255, 169, 128));
|
||||
pDC->SetTextColor(RGB( 0, 0, 0));
|
||||
return m_hBrush;
|
||||
break;
|
||||
default:
|
||||
return hbr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user