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:
282
Server/AdminTool/AdminToolClient/ItemQuantityControlDlg.cpp
Normal file
282
Server/AdminTool/AdminToolClient/ItemQuantityControlDlg.cpp
Normal file
@@ -0,0 +1,282 @@
|
||||
// ItemQuantityControlDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "MainFrm.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "ItemQuantityControlDlg.h"
|
||||
|
||||
#include "GlobalFunctions.h"
|
||||
#include "WindowMgr.h"
|
||||
#include "PacketManager.h"
|
||||
#include "CharacterDoc.h"
|
||||
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
|
||||
#include <Item/ItemMgr.h>
|
||||
|
||||
#include "ItemQtyControlAddDlg.h"
|
||||
|
||||
|
||||
// CItemQuantityControlDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CItemQuantityControlDlg, CDialog)
|
||||
CItemQuantityControlDlg::CItemQuantityControlDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CItemQuantityControlDlg::IDD, pParent)
|
||||
, m_strMessage(_T(""))
|
||||
, m_strFrequencyStartHour(_T(""))
|
||||
, m_strFrequencyStartMin(_T(""))
|
||||
, m_strFrequencyEndHour(_T(""))
|
||||
, m_strFrequencyEndMin(_T(""))
|
||||
, m_dwItemQty(0)
|
||||
, m_strSelItemName(_T(""))
|
||||
, m_dwSelItemTypeID(0)
|
||||
, m_dwCurrentItemQty(0)
|
||||
, m_strCurrentDropItemCount(_T(""))
|
||||
, m_strLimitDropItemCount(_T("Undisided"))
|
||||
{
|
||||
}
|
||||
|
||||
CItemQuantityControlDlg::~CItemQuantityControlDlg()
|
||||
{
|
||||
ERASE_WINDOW(IDD_ITEMQUANTITYCONTROLDLG);
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_DROPCONTROL_DROPITEM_LIST, m_ctrlDropItemList);
|
||||
DDX_Control(pDX, IDC_DROPCONTROL_GROUP_CB, m_ctrlServerGroupCb);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_MESSAGE_EDIT, m_strMessage);
|
||||
DDX_Control(pDX, IDC_DROPCONTROL_STARTDROP_DATE, m_ctrlStartDropDate);
|
||||
DDX_Control(pDX, IDC_DROPCONTROL_ENDDROP_DATE, m_ctrlEndDropDate);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_H1_EDIT, m_strFrequencyStartHour);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_M1_EDIT, m_strFrequencyStartMin);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_H2_EDIT, m_strFrequencyEndHour);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_FREQUENCY_M2_EDIT, m_strFrequencyEndMin);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_QUANTITY_EDIT, m_dwItemQty);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_SELITEMNAME_EDIT, m_strSelItemName);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_SELITEMID_EDIT, m_dwSelItemTypeID);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_CURRENTQUANTITY_EDIT, m_dwCurrentItemQty);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_MINCOUNT_EDIT, m_strCurrentDropItemCount);
|
||||
DDX_Text(pDX, IDC_DROPCONTROL_MAXCOUNT_EDIT, m_strLimitDropItemCount);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CItemQuantityControlDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_DROPCONTROL_ADDITEM_BTN, OnBnClickedAdditemBtn)
|
||||
ON_BN_CLICKED(IDC_DROPCONTROL_DELITEM_BTN, OnBnClickedDelitemBtn)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_DROPCONTROL_DROPITEM_LIST, OnLvnItemchangedlDropitemList)
|
||||
ON_BN_CLICKED(IDC_DROPCONTROL_EDIT_BTN, OnBnClickedDropcontrolEditBtn)
|
||||
ON_CBN_SELCHANGE(IDC_DROPCONTROL_GROUP_CB, OnCbnSelchangeDropcontrolGroupCb)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CItemQuantityControlDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
BOOL CItemQuantityControlDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
INSERT_WINDOW(IDD_ITEMQUANTITYCONTROLDLG, static_cast<CWnd*>(this));
|
||||
|
||||
ServerGroupComboSet(m_ctrlServerGroupCb);
|
||||
|
||||
m_ctrlDropItemList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
|
||||
|
||||
m_ctrlDropItemList.InsertColumn(0, GetLocalString("TYPE_ID"), LVCFMT_LEFT,100);
|
||||
m_ctrlDropItemList.InsertColumn(1, GetLocalString("NAME"), LVCFMT_LEFT,150);
|
||||
|
||||
SetWindowText(GetLocalString("IDD_ITEMQUANTITYCONTROLDLG"));
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_01, "IDC_DROPCONTROL_01");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_02, "IDC_DROPCONTROL_02");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_03, "IDC_DROPCONTROL_03");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_04, "IDC_DROPCONTROL_04");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_05, "IDC_DROPCONTROL_05");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_06, "IDC_DROPCONTROL_06");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_07, "IDC_DROPCONTROL_07");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_08, "IDC_DROPCONTROL_08");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_09, "IDC_DROPCONTROL_09");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_10, "IDC_DROPCONTROL_10");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_11, "IDC_DROPCONTROL_11");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_12, "IDC_DROPCONTROL_12");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_13, "IDC_DROPCONTROL_13");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_14, "IDC_DROPCONTROL_14");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_15, "IDC_DROPCONTROL_15");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_16, "IDC_DROPCONTROL_16");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_17, "IDC_DROPCONTROL_17");
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_ADDITEM_BTN, "IDC_DROPCONTROL_ADDITEM_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_DELITEM_BTN, "IDC_DROPCONTROL_DELITEM_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_DROPCONTROL_EDIT_BTN, "IDC_DROPCONTROL_EDIT_BTN");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnBnClickedAdditemBtn()
|
||||
{
|
||||
if(CB_ERR != m_ctrlServerGroupCb.GetCurSel())
|
||||
{
|
||||
CItemQtyControlAddDlg dlg;
|
||||
dlg.DoModal();
|
||||
}
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnBnClickedDelitemBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if(1 == m_ctrlDropItemList.GetSelectedCount())
|
||||
{
|
||||
int Index = m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED);
|
||||
if(-1 != Index)
|
||||
{
|
||||
unsigned long dwServerGroup = 0;
|
||||
|
||||
CString strGroupName;
|
||||
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
|
||||
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
|
||||
|
||||
CPacketMgr::GetInstance()->SendItemQtyControlData(
|
||||
PktAdminMgr::PktItemQtyControl::DEL, (unsigned char)dwServerGroup,
|
||||
_ttol(m_ctrlDropItemList.GetItemText(Index, 0)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_strMessage.Format(_T("%s"), GetLocalString("MSG_0107"));
|
||||
UpdateData(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnCbnSelchangeDropcontrolGroupCb()
|
||||
{
|
||||
unsigned long dwServerGroup = 0;
|
||||
CString strGroupName;
|
||||
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
|
||||
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
|
||||
|
||||
CPacketMgr::GetInstance()->SendItemQtyControlData(
|
||||
PktAdminMgr::PktItemQtyControl::STATUS_REQUEST, (unsigned char)dwServerGroup);
|
||||
|
||||
for(int nCnt = 0; nCnt < m_ctrlDropItemList.GetItemCount(); ++nCnt)
|
||||
{
|
||||
PktAdminMgr::PktItemQtyControl* lpItemData =
|
||||
reinterpret_cast<PktAdminMgr::PktItemQtyControl*>
|
||||
(m_ctrlDropItemList.GetItemData(nCnt));
|
||||
|
||||
delete lpItemData;
|
||||
}
|
||||
|
||||
m_ctrlDropItemList.DeleteAllItems();
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnLvnItemchangedlDropitemList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
if(1 == m_ctrlDropItemList.GetSelectedCount())
|
||||
{
|
||||
int Index = m_ctrlDropItemList.GetNextItem(-1, LVIS_SELECTED);
|
||||
if(-1 != Index)
|
||||
{
|
||||
PktAdminMgr::PktItemQtyControl* lpPktItemQtyControl =
|
||||
reinterpret_cast<PktAdminMgr::PktItemQtyControl*>(m_ctrlDropItemList.GetItemData(Index));
|
||||
|
||||
if(NULL != lpPktItemQtyControl)
|
||||
{
|
||||
const Item::ItemInfo* ItemInfo =
|
||||
Item::CItemMgr::GetInstance().GetItemInfo((unsigned short)lpPktItemQtyControl->m_dwItemTypeID);
|
||||
|
||||
if(NULL != ItemInfo)
|
||||
{
|
||||
m_strSelItemName.Format(_T("%s"), ItemInfo->m_SpriteData.m_szName);
|
||||
m_dwSelItemTypeID = lpPktItemQtyControl->m_dwItemTypeID;
|
||||
m_dwItemQty = lpPktItemQtyControl->m_dwItemQty;
|
||||
m_dwCurrentItemQty = lpPktItemQtyControl->m_dwCurrentItemQty;
|
||||
|
||||
COleDateTime tStartOleDateTime(lpPktItemQtyControl->m_tStartTime);
|
||||
COleDateTime tEndOleDateTime(lpPktItemQtyControl->m_tEndTime);
|
||||
|
||||
m_ctrlStartDropDate.SetTime(tStartOleDateTime);
|
||||
m_ctrlEndDropDate.SetTime(tEndOleDateTime);
|
||||
|
||||
tm tOutStartTime;
|
||||
tm tOutEndTime;
|
||||
|
||||
tOutStartTime = *(localtime(&lpPktItemQtyControl->m_tStartTime));
|
||||
tOutEndTime = *(localtime(&lpPktItemQtyControl->m_tEndTime));
|
||||
|
||||
m_strFrequencyStartHour.Format(_T("%d"), tOutStartTime.tm_hour);
|
||||
m_strFrequencyStartMin.Format(_T("%d"), tOutStartTime.tm_min);
|
||||
m_strFrequencyEndHour.Format(_T("%d"), tOutEndTime.tm_hour);
|
||||
m_strFrequencyEndMin.Format(_T("%d"), tOutEndTime.tm_min);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_strMessage = _T("Selected row has not data");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UpdateData(false);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnBnClickedDropcontrolEditBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if(m_strSelItemName != "" && m_dwSelItemTypeID != 0
|
||||
&& "" != m_strFrequencyStartHour && "" != m_strFrequencyStartMin
|
||||
&& "" != m_strFrequencyEndHour && "" != m_strFrequencyEndMin
|
||||
&& 0 != m_dwItemQty)
|
||||
{
|
||||
unsigned long dwServerGroup = 0;
|
||||
CString strGroupName;
|
||||
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
|
||||
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
|
||||
|
||||
COleDateTime GetTime1, GetTime2;
|
||||
m_ctrlStartDropDate.GetTime(GetTime1);
|
||||
m_ctrlEndDropDate.GetTime(GetTime2);
|
||||
|
||||
tm tInStartTime;
|
||||
memset(&tInStartTime, 0, sizeof(tm));
|
||||
tInStartTime.tm_year = GetTime1.GetYear() - 1900;
|
||||
tInStartTime.tm_mon = GetTime1.GetMonth() - 1;
|
||||
tInStartTime.tm_mday = GetTime1.GetDay();
|
||||
tInStartTime.tm_hour = _ttoi(m_strFrequencyStartHour);
|
||||
tInStartTime.tm_min = _ttoi(m_strFrequencyStartMin);
|
||||
|
||||
tm tInEndTime;
|
||||
memset(&tInEndTime, 0, sizeof(tm));
|
||||
tInEndTime.tm_year = GetTime2.GetYear() - 1900;
|
||||
tInEndTime.tm_mon = GetTime2.GetMonth() - 1;
|
||||
tInEndTime.tm_mday = GetTime2.GetDay();
|
||||
tInEndTime.tm_hour = _ttoi(m_strFrequencyEndHour);
|
||||
tInEndTime.tm_min = _ttoi(m_strFrequencyEndMin);
|
||||
|
||||
time_t tStartTime = mktime(&tInStartTime);
|
||||
time_t tEndTime = mktime(&tInEndTime);
|
||||
|
||||
CPacketMgr::GetInstance()->SendItemQtyControlData(
|
||||
PktAdminMgr::PktItemQtyControl::ADD, (unsigned char)dwServerGroup,
|
||||
m_dwSelItemTypeID, tStartTime, tEndTime, m_dwItemQty);
|
||||
}
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::PostNcDestroy()
|
||||
{
|
||||
((CMainFrame*)AfxGetMainWnd())->m_lpItemQtyControlDlg = NULL;
|
||||
delete this;
|
||||
|
||||
CDialog::PostNcDestroy();
|
||||
}
|
||||
|
||||
void CItemQuantityControlDlg::OnCancel()
|
||||
{
|
||||
DestroyWindow();
|
||||
//CDialog::OnCancel();
|
||||
}
|
||||
Reference in New Issue
Block a user