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:
269
Server/AdminTool/AdminToolClient/GAdminManagementDlg.cpp
Normal file
269
Server/AdminTool/AdminToolClient/GAdminManagementDlg.cpp
Normal file
@@ -0,0 +1,269 @@
|
||||
// GAdminManagementDlg.cpp : 구현 파일입니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "GAdminManagementDlg.h"
|
||||
#include "GlobalFunctions.h"
|
||||
#include "WindowMgr.h"
|
||||
#include "PacketManager.h"
|
||||
#include "CharacterDoc.h"
|
||||
#include "GAdminInfoEditDlg.h"
|
||||
#include "ListCtrlSortClass.h"
|
||||
|
||||
|
||||
// CGAdminManagementDlg 대화 상자입니다.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CGAdminManagementDlg, CDialog)
|
||||
CGAdminManagementDlg::CGAdminManagementDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CGAdminManagementDlg::IDD, pParent)
|
||||
, m_strRegAdminUID(_T(""))
|
||||
, m_strSearchedGroup(_T(""))
|
||||
, m_bSortListAsc(false)
|
||||
{
|
||||
}
|
||||
|
||||
CGAdminManagementDlg::~CGAdminManagementDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_GADMINLIST, m_ctrlGAdminList);
|
||||
DDX_Control(pDX, IDC_GAM_SERVERCB1, m_ctrlGAMServerCb1);
|
||||
DDX_Control(pDX, IDC_GAM_SERVERCB2, m_ctrlGAMServerCb2);
|
||||
DDX_Text(pDX, IDC_GAM_UID_EDIT, m_strRegAdminUID);
|
||||
DDX_Control(pDX, IDC_GAM_LIMITIPSTART_IP, m_ctrlLimitStartIP);
|
||||
DDX_Control(pDX, IDC_GAM_LIMITIPEND_IP, m_ctrlLimitEndIP);
|
||||
DDX_Control(pDX, IDC_GAM_ADMINLV_CB, m_ctrlNewAdminLV);
|
||||
DDX_Text(pDX, IDC_GAM_SEARCHEDGROUP_EDIT, m_strSearchedGroup);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CGAdminManagementDlg, CDialog)
|
||||
ON_WM_CTLCOLOR()
|
||||
ON_WM_CONTEXTMENU()
|
||||
ON_WM_DESTROY()
|
||||
ON_BN_CLICKED(IDC_GAM_ADMINREG_BTN, OnBnClickedGamAdminregBtn)
|
||||
ON_BN_CLICKED(IDC_GAM_ADMINSEARCH_BTN, OnBnClickedGamAdminsearchBtn)
|
||||
ON_COMMAND(ID_GAM_ADMINEDIT, OnGamAdminedit)
|
||||
ON_COMMAND(ID_GAM_ADMINDEL, OnGamAdmindel)
|
||||
ON_NOTIFY(LVN_COLUMNCLICK, IDC_GAM_ADMIN_LIST, OnLvnColumnclickGamAdminList)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CGAdminManagementDlg 메시지 처리기입니다.
|
||||
|
||||
HBRUSH CGAdminManagementDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
return hbr;
|
||||
}
|
||||
|
||||
BOOL CGAdminManagementDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
INSERT_WINDOW(IDD_GADMINMANAGEMENTDLG, static_cast<CWnd*>(this));
|
||||
|
||||
m_ctrlGAdminList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
|
||||
|
||||
m_ctrlGAdminList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 110);
|
||||
m_ctrlGAdminList.InsertColumn(1, _T("Level"), LVCFMT_LEFT, 50);
|
||||
m_ctrlGAdminList.InsertColumn(2, GetLocalString("LIMIT_IP_START"), LVCFMT_LEFT, 120);
|
||||
m_ctrlGAdminList.InsertColumn(3, GetLocalString("LIMIT_IP_END"), LVCFMT_LEFT, 120);
|
||||
|
||||
ServerGroupComboSet(m_ctrlGAMServerCb1);
|
||||
ServerGroupComboSet(m_ctrlGAMServerCb2);
|
||||
|
||||
m_ctrlNewAdminLV.InsertString(0, _T("Supporter"));
|
||||
m_ctrlNewAdminLV.InsertString(1, _T("Admin LV1"));
|
||||
m_ctrlNewAdminLV.InsertString(2, _T("Admin LV2"));
|
||||
m_ctrlNewAdminLV.InsertString(3, _T("Admin LV3"));
|
||||
m_ctrlNewAdminLV.InsertString(4, _T("Developer"));
|
||||
|
||||
SetWindowText(GetLocalString("IDD_GADMINMANAGEMENTDLG"));
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_01, "IDC_GADMINMANEGE_01");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_02, "IDC_GADMINMANEGE_02");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_03, "IDC_GADMINMANEGE_03");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_04, "IDC_GADMINMANEGE_04");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_05, "IDC_GADMINMANEGE_05");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_06, "IDC_GADMINMANEGE_06");
|
||||
SetUIString(this->m_hWnd, IDC_GADMINMANEGE_07, "IDC_GADMINMANEGE_07");
|
||||
SetUIString(this->m_hWnd, IDC_GAM_ADMINSEARCH_BTN, "IDC_GAM_ADMINSEARCH_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_GAM_ADMINREG_BTN, "IDC_GAM_ADMINREG_BTN");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnContextMenu(CWnd* pWnd, CPoint point)
|
||||
{
|
||||
if(pWnd->GetSafeHwnd() == m_ctrlGAdminList.GetSafeHwnd()
|
||||
&& m_ctrlGAdminList.GetSelectedCount() == 1)
|
||||
{
|
||||
CMenu muTemp, *pContextMenu;
|
||||
muTemp.LoadMenu(IDR_CONTEXTMENU);
|
||||
pContextMenu = muTemp.GetSubMenu(9);
|
||||
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINEDIT, GetLocalString("MENU_028"));
|
||||
pContextMenu->ModifyMenu(1, MF_STRING | MF_BYPOSITION, ID_GAM_ADMINDEL, GetLocalString("MENU_029"));
|
||||
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnDestroy()
|
||||
{
|
||||
CDialog::OnDestroy();
|
||||
|
||||
ERASE_WINDOW(IDD_GADMINMANAGEMENTDLG);
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnBnClickedGamAdminregBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if((CB_ERR != m_ctrlGAMServerCb1.GetCurSel()) && (CB_ERR != m_ctrlNewAdminLV.GetCurSel()))
|
||||
{
|
||||
if(!m_strRegAdminUID.IsEmpty())
|
||||
{
|
||||
unsigned long dwServerGroup;
|
||||
CString strGroupName;
|
||||
m_ctrlGAMServerCb1.GetLBText(m_ctrlGAMServerCb1.GetCurSel(), strGroupName);
|
||||
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
|
||||
|
||||
TCHAR szStartIP[PktAdminMgr::MAX_IP], szEndIP[PktAdminMgr::MAX_IP];
|
||||
|
||||
if(m_ctrlLimitStartIP.IsBlank())
|
||||
_sntprintf(szStartIP, PktAdminMgr::MAX_IP, _T("NULL"));
|
||||
|
||||
if(m_ctrlLimitEndIP.IsBlank())
|
||||
_sntprintf(szEndIP, PktAdminMgr::MAX_IP, _T("NULL"));
|
||||
|
||||
if(!(m_ctrlLimitStartIP.IsBlank() && m_ctrlLimitEndIP.IsBlank()))
|
||||
{
|
||||
m_ctrlLimitStartIP.GetWindowText(szStartIP, PktAdminMgr::MAX_IP);
|
||||
m_ctrlLimitEndIP.GetWindowText(szEndIP, PktAdminMgr::MAX_IP);
|
||||
}
|
||||
|
||||
#ifdef _UNICODE
|
||||
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG,
|
||||
dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP);
|
||||
#endif
|
||||
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::REG,
|
||||
dwServerGroup, _ttol(m_strRegAdminUID), m_ctrlNewAdminLV.GetCurSel() + 1, szStartIP, szEndIP);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnBnClickedGamAdminsearchBtn()
|
||||
{
|
||||
if(CB_ERR != m_ctrlGAMServerCb2.GetCurSel())
|
||||
{
|
||||
m_ctrlGAdminList.DeleteAllItems();
|
||||
|
||||
unsigned long dwServerGroup;
|
||||
CString strGroupName;
|
||||
|
||||
m_ctrlGAMServerCb2.GetLBText(m_ctrlGAMServerCb2.GetCurSel(), strGroupName);
|
||||
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
|
||||
|
||||
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::SEARCH, dwServerGroup);
|
||||
|
||||
m_strSearchedGroup.Format(_T("%s"), strGroupName);
|
||||
UpdateData(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnGamAdminedit()
|
||||
{
|
||||
if(m_ctrlGAdminList.GetSelectedCount() == 1)
|
||||
{
|
||||
int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED);
|
||||
|
||||
CGAdminInfoEditDlg dlg(m_strSearchedGroup, m_ctrlGAdminList.GetItemText(Index, 0));
|
||||
dlg.DoModal();
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnGamAdmindel()
|
||||
{
|
||||
if(m_ctrlGAdminList.GetSelectedCount() == 1)
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
unsigned long dwServerGroup;
|
||||
CCharacterDoc::GetInstance().GetServerIndex(m_strSearchedGroup, dwServerGroup);
|
||||
|
||||
int Index = m_ctrlGAdminList.GetNextItem(-1, LVIS_SELECTED);
|
||||
unsigned long dwUID = _ttol(m_ctrlGAdminList.GetItemText(Index, 0));
|
||||
|
||||
CPacketMgr::GetInstance()->SendGameAdmin(PktAdminMgr::PktGameAdmin::DEL, dwServerGroup, dwUID);
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::ReFreshGameAdminList()
|
||||
{
|
||||
OnBnClickedGamAdminsearchBtn();
|
||||
}
|
||||
|
||||
BOOL CGAdminManagementDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
|
||||
{
|
||||
if(pMsg->hwnd == GetDlgItem(IDC_GAM_UID_EDIT)->m_hWnd
|
||||
|| pMsg->hwnd == GetDlgItem(IDC_GAM_LIMITIPEND_IP)->m_hWnd)
|
||||
{
|
||||
OnBnClickedGamAdminregBtn();
|
||||
}
|
||||
}
|
||||
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnOK()
|
||||
{
|
||||
//CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
|
||||
{
|
||||
CListCtrlSortClass SortClass(pListCtrl,iCol);
|
||||
|
||||
switch(m_iSortListItem)
|
||||
{
|
||||
case SORT_TYPE::UID:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::LV:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::IP_S:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
case SORT_TYPE::IP_E:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CGAdminManagementDlg::OnLvnColumnclickGamAdminList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
if(pNMLV->iSubItem == m_iSortListItem)
|
||||
{
|
||||
m_bSortListAsc = !m_bSortListAsc;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_iSortListItem = pNMLV->iSubItem;
|
||||
m_bSortListAsc = true;
|
||||
}
|
||||
|
||||
SortListWndItem(&m_ctrlGAdminList, m_iSortListItem);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user