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>
203 lines
5.8 KiB
C++
203 lines
5.8 KiB
C++
// CharRestoreDlg.cpp : 구현 파일입니다.
|
|
//
|
|
#include "stdafx.h"
|
|
#include "AdminToolClient.h"
|
|
#include "CharRestoreDlg.h"
|
|
#include "GlobalFunctions.h"
|
|
#include "WindowMgr.h"
|
|
#include "CharacterDoc.h"
|
|
#include "PacketManager.h"
|
|
#include "ChangeDeleteTimeDlg.h"
|
|
|
|
|
|
|
|
// CCharRestoreDlg 대화 상자입니다.
|
|
|
|
IMPLEMENT_DYNAMIC(CCharRestoreDlg, CDialog)
|
|
CCharRestoreDlg::CCharRestoreDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CCharRestoreDlg::IDD, pParent)
|
|
{
|
|
INSERT_WINDOW(IDD_CHARRESTOREDLG, this);
|
|
}
|
|
|
|
CCharRestoreDlg::~CCharRestoreDlg()
|
|
{
|
|
ERASE_WINDOW(IDD_CHARRESTOREDLG);
|
|
}
|
|
|
|
void CCharRestoreDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_CR_SEARCHCONDITION, m_ctrlSearchConditionCb);
|
|
DDX_Control(pDX, IDC_CR_SEARCHGROUP, m_ctrlSearchServerCb);
|
|
DDX_Control(pDX, IDC_CR_DELHISTORYLIST, m_ctrlDelHistoryList);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CCharRestoreDlg, CDialog)
|
|
ON_WM_CTLCOLOR()
|
|
ON_BN_CLICKED(IDC_CHARRESTORE_SEARCH, OnBnClickedCharRestoreSearch)
|
|
ON_WM_CONTEXTMENU()
|
|
ON_COMMAND(ID_RESTORE_TIME, OnRestoreTime)
|
|
ON_COMMAND(ID_RESTORE_CHAR, OnRestoreChar)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CCharRestoreDlg 메시지 처리기입니다.
|
|
|
|
BOOL CCharRestoreDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_ctrlSearchConditionCb.AddString(_T("UID"));
|
|
m_ctrlSearchConditionCb.AddString(_T("CID"));
|
|
|
|
ServerGroupComboSet(m_ctrlSearchServerCb);
|
|
|
|
m_ctrlDelHistoryList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
|
|
|
|
m_ctrlDelHistoryList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 80);
|
|
m_ctrlDelHistoryList.InsertColumn(1, _T("CID"), LVCFMT_LEFT, 80);
|
|
m_ctrlDelHistoryList.InsertColumn(2, GetLocalString("ADDED_STRING_001"), LVCFMT_LEFT, 50);
|
|
m_ctrlDelHistoryList.InsertColumn(3, GetLocalString("ADDED_STRING_002"), LVCFMT_LEFT, 50);
|
|
m_ctrlDelHistoryList.InsertColumn(4, GetLocalString("CHAR_NAME"), LVCFMT_LEFT, 100);
|
|
m_ctrlDelHistoryList.InsertColumn(5, _T("Level"), LVCFMT_LEFT, 40);
|
|
m_ctrlDelHistoryList.InsertColumn(6, _T("Gold"), LVCFMT_LEFT, 80);
|
|
m_ctrlDelHistoryList.InsertColumn(7, GetLocalString("CHAR_DEL_TIME"), LVCFMT_LEFT, 170);
|
|
m_ctrlDelHistoryList.InsertColumn(8, GetLocalString("CHAR_DEL_DB_TIME"), LVCFMT_LEFT, 170);
|
|
|
|
m_ctrlSearchConditionCb.SetCurSel(1); // UID로 초기선택
|
|
|
|
SetWindowText(GetLocalString("IDD_CHARRESTOREDLG"));
|
|
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_01,"IDC_CHARRESTORE_01");
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_02,"IDC_CHARRESTORE_02");
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_03,"IDC_CHARRESTORE_03");
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_04,"IDC_CHARRESTORE_04");
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_05,"IDC_CHARRESTORE_05");
|
|
SetUIString(this->m_hWnd, IDC_CHARRESTORE_SEARCH,"IDC_CHARRESTORE_SEARCH");
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CCharRestoreDlg::OnSearchSend()
|
|
{
|
|
const unsigned char UID = 1;
|
|
const unsigned char CID = 2;
|
|
|
|
int SearchType = m_ctrlSearchConditionCb.GetCurSel();
|
|
int ServerGroup = m_ctrlSearchServerCb.GetCurSel();
|
|
|
|
unsigned long dwServerGroup;
|
|
unsigned char cSearchType = cSearchType = CID;
|
|
|
|
if((-1 != SearchType) && (-1 != ServerGroup))
|
|
{
|
|
CString strSrvName;
|
|
m_ctrlSearchServerCb.GetLBText(ServerGroup, strSrvName);
|
|
|
|
if(0 != SearchType) cSearchType = UID;
|
|
|
|
if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup))
|
|
{
|
|
CString strValue;
|
|
unsigned long dwValue;
|
|
|
|
this->GetDlgItemText(IDC_CHARRESTORE_EDIT, strValue);
|
|
|
|
if(0 < strValue.GetLength())
|
|
{
|
|
dwValue = _ttol(strValue);
|
|
|
|
if(CPacketMgr::GetInstance()->SendDelCharHistory(SearchType, dwServerGroup, dwValue))
|
|
{
|
|
m_ctrlDelHistoryList.DeleteAllItems();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
HBRUSH CCharRestoreDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
{
|
|
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
return hbr;
|
|
}
|
|
|
|
void CCharRestoreDlg::OnBnClickedCharRestoreSearch()
|
|
{
|
|
OnSearchSend();
|
|
}
|
|
|
|
void CCharRestoreDlg::OnContextMenu(CWnd* pWnd, CPoint point)
|
|
{
|
|
if((pWnd->GetSafeHwnd() == m_ctrlDelHistoryList.GetSafeHwnd())
|
|
&& (1 == m_ctrlDelHistoryList.GetSelectedCount()))
|
|
{
|
|
CMenu muTemp, *pContextMenu;
|
|
muTemp.LoadMenu(IDR_CONTEXTMENU);
|
|
pContextMenu = muTemp.GetSubMenu(12);
|
|
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_RESTORE_CHAR, GetLocalString("MENU_034"));
|
|
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_RESTORE_TIME, GetLocalString("MENU_035"));
|
|
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
|
|
}
|
|
}
|
|
|
|
void CCharRestoreDlg::OnRestoreTime()
|
|
{
|
|
CChangeDeleteTimeDlg ChangeDlg;
|
|
ChangeDlg.DoModal();
|
|
}
|
|
|
|
void CCharRestoreDlg::OnRestoreChar()
|
|
{
|
|
if(0 < m_ctrlDelHistoryList.GetSelectedCount())
|
|
{
|
|
CString strSrvName;
|
|
unsigned long dwServerGroup;
|
|
int index = m_ctrlDelHistoryList.GetNextItem(-1, LVIS_SELECTED);
|
|
|
|
CString strUID = m_ctrlDelHistoryList.GetItemText(index, 0);
|
|
CString strCID = m_ctrlDelHistoryList.GetItemText(index, 1);
|
|
CString strNewServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 2);
|
|
CString strOldServerGroupID = m_ctrlDelHistoryList.GetItemText(index, 3);
|
|
|
|
|
|
m_ctrlSearchServerCb.GetLBText(m_ctrlSearchServerCb.GetCurSel(), strSrvName);
|
|
|
|
if(CCharacterDoc::GetInstance().GetServerIndex(strSrvName, dwServerGroup))
|
|
{
|
|
unsigned long dwUID, dwCID, dwNewServerGroupID, dwOldServerGroupID;
|
|
|
|
dwUID = _ttol(strUID);
|
|
dwCID = _ttol(strCID);
|
|
dwNewServerGroupID = _ttoi(strNewServerGroupID);
|
|
dwOldServerGroupID = _ttoi(strOldServerGroupID);
|
|
|
|
CPacketMgr::GetInstance()->SendPktCharRestore(dwUID, dwCID,
|
|
(unsigned char)dwNewServerGroupID, (unsigned char)dwOldServerGroupID, dwServerGroup);
|
|
}
|
|
}
|
|
}
|
|
|
|
BOOL CCharRestoreDlg::PreTranslateMessage(MSG* pMsg)
|
|
{
|
|
if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam))
|
|
{
|
|
if(pMsg->hwnd == this->GetDlgItem(IDC_CHARRESTORE_EDIT)->m_hWnd)
|
|
{
|
|
OnSearchSend();
|
|
}
|
|
}
|
|
|
|
return CDialog::PreTranslateMessage(pMsg);
|
|
}
|
|
|
|
void CCharRestoreDlg::OnCancel()
|
|
{
|
|
CDialog::OnCancel();
|
|
}
|
|
|
|
void CCharRestoreDlg::OnOK()
|
|
{
|
|
//CDialog::OnOK();
|
|
} |