Files
Client/Server/AdminTool/AdminToolClient/ItemQtyControlAddDlg.cpp
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

144 lines
4.6 KiB
C++

// ItemQtyControlAddDlg.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "ItemQtyControlAddDlg.h"
#include "GlobalFunctions.h"
#include "WindowMgr.h"
#include "PacketManager.h"
#include "CharacterDoc.h"
#include <Network/Protocol/RYL_AdminMgrProtocol.h>
#include <Item/ItemMgr.h>
#include "ItemQuantityControlDlg.h"
#include ".\itemqtycontroladddlg.h"
// CItemQtyControlAddDlg 대화 상자입니다.
IMPLEMENT_DYNAMIC(CItemQtyControlAddDlg, CDialog)
CItemQtyControlAddDlg::CItemQtyControlAddDlg(CWnd* pParent /*=NULL*/)
: CDialog(CItemQtyControlAddDlg::IDD, pParent)
, m_strItemName(_T(""))
, m_strFrequencyStartHour(_T(""))
, m_strFrequencyStartMin(_T(""))
, m_strFrequencyEndHour(_T(""))
, m_strFrequencyEndMin(_T(""))
, m_dwItemQty(0)
{
}
CItemQtyControlAddDlg::~CItemQtyControlAddDlg()
{
}
void CItemQtyControlAddDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_ITEMQTYCONTROL_ITEMADD_NAME, m_strItemName);
DDX_Control(pDX, IDC_ITEMQTYCONTROL_ITEMADD_STARTDROP_DATE, m_ctrlStartDropDate);
DDX_Control(pDX, IDC_ITEMQTYCONTROL_ITEMADD_ENDDROP_DATE, m_ctrlEndDropDate);
DDX_Text(pDX, IDC_IDC_ITEMQTYCONTROL_ITEMADD_FREQUENCY_H1_EDIT, m_strFrequencyStartHour);
DDX_Text(pDX, IDC_IDC_ITEMQTYCONTROL_ITEMADD_FREQUENCY_M1_EDIT, m_strFrequencyStartMin);
DDX_Text(pDX, IDC_IDC_ITEMQTYCONTROL_ITEMADD_FREQUENCY_H2_EDIT, m_strFrequencyEndHour);
DDX_Text(pDX, IDC_IDC_ITEMQTYCONTROL_ITEMADD_FREQUENCY_M2_EDIT, m_strFrequencyEndMin);
DDX_Text(pDX, IDC_IDC_ITEMQTYCONTROL_ITEMADD_QUANTITY_EDIT, m_dwItemQty);
}
BEGIN_MESSAGE_MAP(CItemQtyControlAddDlg, CDialog)
ON_BN_CLICKED(IDC_ITEMQTYCONTROL_ADD, OnBnClickedItemqtycontrolAdd)
ON_BN_CLICKED(IDC_CANCEL, OnBnClickedCancel)
END_MESSAGE_MAP()
// CItemQtyControlAddDlg 메시지 처리기입니다.
void CItemQtyControlAddDlg::OnBnClickedItemqtycontrolAdd()
{
UpdateData(true);
if(m_strItemName != ""
&& "" != m_strFrequencyStartHour && "" != m_strFrequencyStartMin
&& "" != m_strFrequencyEndHour && "" != m_strFrequencyEndMin
&& 0 != m_dwItemQty)
{
CItemQuantityControlDlg* lpDialog = static_cast<CItemQuantityControlDlg*>(GetParent());
if(NULL != lpDialog)
{
const Item::ItemInfo* ItemInfo =
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(CONV_NETSTRING(m_strItemName));
if(NULL != ItemInfo)
{
unsigned long dwServerGroup = 0;
CString strGroupName;
lpDialog->m_ctrlServerGroupCb.GetLBText(lpDialog->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,
ItemInfo->m_usProtoTypeID, tStartTime, tEndTime, m_dwItemQty);
this->OnOK();
}
else
{
lpDialog->m_strMessage.Format(_T("%s"), GetLocalString("MSG_0106"));
lpDialog->UpdateData(false);
}
}
}
}
void CItemQtyControlAddDlg::OnBnClickedCancel()
{
this->OnCancel();
}
BOOL CItemQtyControlAddDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText(GetLocalString("IDD_ITEMQTYCONTROLADDDLG"));
SetUIString(this->m_hWnd, IDC_ITEMADD_01, "IDC_ITEMADD_01");
SetUIString(this->m_hWnd, IDC_ITEMADD_02, "IDC_ITEMADD_02");
SetUIString(this->m_hWnd, IDC_ITEMADD_03, "IDC_ITEMADD_03");
SetUIString(this->m_hWnd, IDC_ITEMADD_04, "IDC_ITEMADD_04");
SetUIString(this->m_hWnd, IDC_ITEMADD_05, "IDC_ITEMADD_05");
SetUIString(this->m_hWnd, IDC_ITEMADD_06, "IDC_ITEMADD_06");
SetUIString(this->m_hWnd, IDC_ITEMADD_07, "IDC_ITEMADD_07");
SetUIString(this->m_hWnd, IDC_ITEMADD_08, "IDC_ITEMADD_08");
SetUIString(this->m_hWnd, IDC_ITEMADD_09, "IDC_ITEMADD_09");
SetUIString(this->m_hWnd, IDC_ITEMADD_10, "IDC_ITEMADD_10");
return TRUE;
}