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:
263
Server/AdminTool/AdminToolClient/ItemDistributeDlg.cpp
Normal file
263
Server/AdminTool/AdminToolClient/ItemDistributeDlg.cpp
Normal file
@@ -0,0 +1,263 @@
|
||||
// ItemDistributeDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "ItemDistributeDlg.h"
|
||||
#include "GlobalFunctions.h"
|
||||
#include "PacketManager.h"
|
||||
#include "ListCtrlSortClass.h"
|
||||
#include "WindowMgr.h"
|
||||
|
||||
#include <Log/ServerLog.h>
|
||||
|
||||
|
||||
|
||||
// CItemDistributeDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CItemDistributeDlg, CDialog)
|
||||
CItemDistributeDlg::CItemDistributeDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CItemDistributeDlg::IDD, pParent)
|
||||
, m_bSortListAsc(false)
|
||||
{
|
||||
INSERT_WINDOW(IDD_ITEMDISTRIBUTEDLG, static_cast<CWnd*>(this));
|
||||
}
|
||||
|
||||
CItemDistributeDlg::~CItemDistributeDlg()
|
||||
{
|
||||
ERASE_WINDOW(IDD_ITEMDISTRIBUTEDLG);
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_ITEMDISTRIBUTE_REPORT_LIST, m_ctrlResultList);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CItemDistributeDlg, CDialog)
|
||||
ON_WM_CTLCOLOR()
|
||||
ON_BN_CLICKED(IDC_ITEMDISTRIBUTE_BTN, OnBnClickedItemdistributeBtn)
|
||||
ON_BN_CLICKED(IDC_ITEMDISTRIBUTE_CLIPCOPY_BTN, OnBnClickedItemdistributeClipcopyBtn)
|
||||
ON_NOTIFY(LVN_COLUMNCLICK, IDC_ITEMDISTRIBUTE_REPORT_LIST, OnLvnColumnclickItemdistributeReportList)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
HBRUSH CItemDistributeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
return hbr;
|
||||
}
|
||||
|
||||
BOOL CItemDistributeDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
SetDlgItemText(IDC_ITEMDISTRIBUTE_ITEMNAME_EDIT, g_stMyItemInfo.m_stItemInfo.m_szItemName);
|
||||
|
||||
m_ctrlResultList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
|
||||
m_ctrlResultList.InsertColumn(0, _T("UID"), LVCFMT_LEFT, 80);
|
||||
m_ctrlResultList.InsertColumn(1, _T("CID"), LVCFMT_LEFT, 80);
|
||||
m_ctrlResultList.InsertColumn(2, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 50);
|
||||
m_ctrlResultList.InsertColumn(3, GetLocalString("RESULT"), LVCFMT_LEFT, 220);
|
||||
|
||||
SetWindowText(GetLocalString("IDD_ITEMDISTRIBUTEDLG"));
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_01, "IDC_ITEMDISTRIBUTE_01");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_02, "IDC_ITEMDISTRIBUTE_02");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_03, "IDC_ITEMDISTRIBUTE_03");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_04, "IDC_ITEMDISTRIBUTE_04");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_05, "IDC_ITEMDISTRIBUTE_05");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_06, "IDC_ITEMDISTRIBUTE_06");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_CLIPCOPY_BTN, "IDC_ITEMDISTRIBUTE_CLIPCOPY_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMDISTRIBUTE_BTN, "IDC_ITEMDISTRIBUTE_BTN");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::OnBnClickedItemdistributeBtn()
|
||||
{
|
||||
CString strBuffer;
|
||||
GetDlgItemText(IDC_DSTUSER_EDIT, strBuffer);
|
||||
|
||||
if(strBuffer.IsEmpty())
|
||||
{
|
||||
Report(GetLocalString("MSG_0153"), CAUTION);
|
||||
return;
|
||||
}
|
||||
|
||||
strBuffer.TrimLeft();
|
||||
strBuffer.TrimRight();
|
||||
|
||||
int nCurPos = 0;
|
||||
CString strResToken = "res";
|
||||
|
||||
PktAdminMgr::DstUserInfo arrDstUserInfo[UCHAR_MAX];
|
||||
PktAdminMgr::DstUserInfo* lpPos = arrDstUserInfo;
|
||||
|
||||
unsigned char cUserInfoNum = 0;
|
||||
|
||||
while(!strResToken.IsEmpty())
|
||||
{
|
||||
lpPos->Clear();
|
||||
|
||||
strResToken = strBuffer.Tokenize(" ", nCurPos); // UID <20><>ū <20>и<EFBFBD>
|
||||
if(strResToken.IsEmpty())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ū<EFBFBD><C5AB> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20>Է<EFBFBD>)
|
||||
break;
|
||||
}
|
||||
lpPos->m_dwUID = atol(strResToken);
|
||||
|
||||
strResToken = strBuffer.Tokenize(" ", nCurPos); // CID <20><>ū <20>и<EFBFBD>
|
||||
if(strResToken.IsEmpty())
|
||||
{
|
||||
// UID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ū<EFBFBD><C5AB> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>(<28><> <20><><EFBFBD><EFBFBD> <20>Է<EFBFBD>)
|
||||
Report(GetLocalString("MSG_0154"), CAUTION);
|
||||
break;
|
||||
}
|
||||
lpPos->m_dwCID = atol(strResToken);
|
||||
|
||||
strResToken = strBuffer.Tokenize("\n", nCurPos); // <20><><EFBFBD><EFBFBD> <20><EFBFBD> <20><>ū <20>и<EFBFBD>
|
||||
if(strResToken.IsEmpty())
|
||||
{
|
||||
// CID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ū<EFBFBD><C5AB> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>(<28><> <20><><EFBFBD><EFBFBD> <20>Է<EFBFBD>)
|
||||
Report(GetLocalString("MSG_0154"), CAUTION);
|
||||
break;
|
||||
}
|
||||
lpPos->m_dwServerGroup = atol(strResToken);
|
||||
|
||||
if(!lpPos->IsValid())
|
||||
{
|
||||
Report(GetLocalString("MSG_0154"), CAUTION);
|
||||
return;
|
||||
}
|
||||
|
||||
++lpPos;
|
||||
++cUserInfoNum;
|
||||
|
||||
if(cUserInfoNum == UCHAR_MAX)
|
||||
{
|
||||
CPacketMgr::GetInstance()->SendPktItemDistribute(
|
||||
g_stMyItemInfo.m_stItemInfo, arrDstUserInfo, cUserInfoNum);
|
||||
|
||||
m_ctrlResultList.DeleteAllItems();
|
||||
|
||||
lpPos = arrDstUserInfo;
|
||||
cUserInfoNum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(0 < cUserInfoNum)
|
||||
{
|
||||
CPacketMgr::GetInstance()->SendPktItemDistribute(
|
||||
g_stMyItemInfo.m_stItemInfo, arrDstUserInfo, cUserInfoNum);
|
||||
|
||||
m_ctrlResultList.DeleteAllItems();
|
||||
}
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::ReportResult(PktAdminMgr::PktItemDistributeAck* lpInfo)
|
||||
{
|
||||
if(NULL != lpInfo)
|
||||
{
|
||||
CString strResult;
|
||||
|
||||
switch(lpInfo->m_cResultType)
|
||||
{
|
||||
case PktAdminMgr::PktItemDistributeAck::SUCCESS:
|
||||
strResult = GetLocalString("MSG_0086");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_CREATE_ITEM_OBJ:
|
||||
strResult = GetLocalString("MSG_0155");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_CREATE_TEMPINVEN_OBJ:
|
||||
strResult = GetLocalString("MSG_0156");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_GET_GAMEDB:
|
||||
strResult = GetLocalString("MSG_0157");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_GET_ITEMINFO:
|
||||
strResult = GetLocalString("MSG_0158");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_GET_TEMPINVEN_OBJ:
|
||||
strResult = GetLocalString("MSG_0159");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_SERIALIZE_IN:
|
||||
strResult = GetLocalString("MSG_0160");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_SERIALIZE_OUT:
|
||||
strResult = GetLocalString("MSG_0161");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_SET_ITEM:
|
||||
strResult = GetLocalString("MSG_0162");
|
||||
break;
|
||||
case PktAdminMgr::PktItemDistributeAck::FALED_TO_UPDATE_TEMPINVEN:
|
||||
strResult = GetLocalString("MSG_0163");
|
||||
break;
|
||||
default:
|
||||
strResult.Format(_T("UNKNOWN"));
|
||||
break;
|
||||
}
|
||||
|
||||
CString strForFormat;
|
||||
int nInsertRow = m_ctrlResultList.GetItemCount();
|
||||
|
||||
strForFormat.Format(_T("%u"), lpInfo->m_stUserInfo.m_dwUID);
|
||||
m_ctrlResultList.InsertItem(nInsertRow, strForFormat);
|
||||
|
||||
strForFormat.Format(_T("%u"), lpInfo->m_stUserInfo.m_dwCID);
|
||||
m_ctrlResultList.SetItemText(nInsertRow, 1, strForFormat);
|
||||
|
||||
strForFormat.Format(_T("%u"), lpInfo->m_stUserInfo.m_dwServerGroup);
|
||||
m_ctrlResultList.SetItemText(nInsertRow, 2, strForFormat);
|
||||
|
||||
m_ctrlResultList.SetItemText(nInsertRow, 3, strResult);
|
||||
}
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::OnBnClickedItemdistributeClipcopyBtn()
|
||||
{
|
||||
ClippingListCtrl(m_ctrlResultList, 4, true);
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::OnLvnColumnclickItemdistributeReportList(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_ctrlResultList, m_iSortListItem);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CItemDistributeDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol)
|
||||
{
|
||||
CListCtrlSortClass SortClass(lpListCtrl, iCol);
|
||||
|
||||
switch(m_iSortListItem)
|
||||
{
|
||||
case SORT_TYPE::UID:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::CID:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::SERVERGROUP:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
||||
break;
|
||||
case SORT_TYPE::RESULT:
|
||||
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRINGNOCASE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user