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:
894
Server/AdminTool/AdminToolClient/ItemManageDlg.cpp
Normal file
894
Server/AdminTool/AdminToolClient/ItemManageDlg.cpp
Normal file
@@ -0,0 +1,894 @@
|
||||
// ItemManageDlg.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "AdminToolClient.h"
|
||||
#include "ItemManageDlg.h"
|
||||
#include "WindowMgr.h"
|
||||
#include "GlobalFunctions.h"
|
||||
#include "PacketManager.h"
|
||||
#include "ItemDistributeDlg.h"
|
||||
|
||||
#include <Item/Item.h>
|
||||
#include <Item/ItemMgr.h>
|
||||
#include <Item/ItemFactory.h>
|
||||
#include <Character/ModifyCharacter.h>
|
||||
#include ".\itemmanagedlg.h"
|
||||
|
||||
|
||||
|
||||
// CItemManageDlg <20><>ȭ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CItemManageDlg, CDialog)
|
||||
CItemManageDlg::CItemManageDlg(MANAGE_TYPE cType, CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CItemManageDlg::IDD, pParent)
|
||||
, m_cManageType(cType)
|
||||
, m_strNewItemName(_T(""))
|
||||
{
|
||||
INSERT_WINDOW(IDD_ITEMMANAGEDLG, static_cast<CWnd*>(this));
|
||||
}
|
||||
|
||||
CItemManageDlg::~CItemManageDlg()
|
||||
{
|
||||
ERASE_WINDOW(IDD_ITEMMANAGEDLG);
|
||||
}
|
||||
|
||||
void CItemManageDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Text(pDX, IDC_NEWIM_NEWITEMNAME_EDIT, m_strNewItemName);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CItemManageDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_NEWIM_CREATEPLURAL_BTN, OnBnClickedNewimCreatepluralBtn)
|
||||
ON_BN_CLICKED(IDC_NEWIM_CREATESING_BTN, OnBnClickedNewimCreatesingBtn)
|
||||
ON_BN_CLICKED(IDC_NEWIM_UPDATE_BTN, OnBnClickedNewimUpdateBtn)
|
||||
ON_BN_CLICKED(IDC_NEWIM_ITEMINFOINIT_BTN, OnBnClickedNewimIteminfoinitBtn)
|
||||
ON_BN_CLICKED(IDC_NEWIM_ITEMDISTRIBUTE_BTN, OnBnClickedNewimItemdistributeBtn)
|
||||
ON_BN_CLICKED(IDC_NEWIM_CALCGRADE_BTN, OnBnClickedNewimCalcgradeBtn)
|
||||
ON_BN_CLICKED(IDC_CONVERT_BTN, OnBnClickedConvertBtn)
|
||||
ON_BN_CLICKED(IDC_APPLY_BTN, OnBnClickedApplyBtn)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CItemManageDlg <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
BOOL CItemManageDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
ClearToZero();
|
||||
|
||||
CString strDlgTitle;
|
||||
CString strSerial;
|
||||
|
||||
// ZeroMemory(&g_stMyItemInfo.m_stItemInfo, sizeof(g_stMyItemInfo.m_stItemInfo));
|
||||
|
||||
switch(m_cManageType)
|
||||
{
|
||||
case MANAGE_TYPE::CREATE: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
strDlgTitle = GetLocalString("ITEM_CREATE_DLG");
|
||||
|
||||
GetDlgItem(IDC_NEWIM_ITEMINFOINIT_BTN)->EnableWindow(true);
|
||||
GetDlgItem(IDC_NEWIM_NEWITEMNAME_EDIT)->EnableWindow(true);
|
||||
GetDlgItem(IDC_NEWIM_CREATEPLURAL_BTN)->EnableWindow(true);
|
||||
GetDlgItem(IDC_NEWIM_CREATESING_BTN)->EnableWindow(true);
|
||||
//GetDlgItem(IDC_NEWIM_ITEMDISTRIBUTE_BTN)->EnableWindow(true);
|
||||
GetDlgItem(IDC_APPLY_BTN)->EnableWindow(true);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> 1<><31> <20><><EFBFBD><EFBFBD>
|
||||
SetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, 1, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, 0, FALSE);
|
||||
}
|
||||
break;
|
||||
case MANAGE_TYPE::CREATE_ADMINSTORE: // <20>â<EEBFB5><C3A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
strDlgTitle = GetLocalString("ITEM_CREATE_ADMINSTORE_DLG");
|
||||
|
||||
InitItemData(CREATE_ADMINSTORE);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD> <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ӽ<EFBFBD><D3BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
EnableEditBox(false);
|
||||
GetDlgItem(IDC_NEWIM_NUMORDUR_EDIT)->EnableWindow(false);
|
||||
GetDlgItem(IDC_NEWIM_CREATEPLURAL_BTN)->EnableWindow(true);
|
||||
GetDlgItem(IDC_NEWIM_CREATESING_BTN)->EnableWindow(true);
|
||||
//GetDlgItem(IDC_NEWIM_ITEMDISTRIBUTE_BTN)->EnableWindow(true);
|
||||
}
|
||||
break;
|
||||
case MANAGE_TYPE::EDIT: // <20>κ<EFBFBD><CEBA>丮<EFBFBD><E4B8AE> â<><C3A2><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
strDlgTitle = GetLocalString("ITEM_EDIT_DLG");
|
||||
|
||||
InitItemData(EDIT);
|
||||
|
||||
strSerial.Format(_T("0x%016I64X"), g_stMyItemInfo.m_dwItemSerial);
|
||||
SetDlgItemText(IDC_NEWIM_ITEMSERIAL_EDIT, strSerial);
|
||||
SetDlgItemText(IDC_NEWIM_ITEMNAME_EDIT, g_stMyItemInfo.m_szItemName);
|
||||
|
||||
GetDlgItem(IDC_NEWIM_UPDATE_BTN)->EnableWindow(true);
|
||||
}
|
||||
break;
|
||||
case MANAGE_TYPE::EDIT_ADMINSTORE: // <20>â<EEBFB5><C3A2><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
{
|
||||
strDlgTitle = GetLocalString("ADMINSTORE_ITEM_EDIT_DLG");
|
||||
|
||||
InitItemData(EDIT_ADMINSTORE);
|
||||
|
||||
SetDlgItemText(IDC_NEWIM_ITEMNAME_EDIT, m_strNewItemName);
|
||||
GetDlgItem(IDC_NEWIM_UPDATE_BTN)->EnableWindow(true);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
strDlgTitle = GetLocalString("MSG_0143");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
SetWindowText(strDlgTitle);
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_01, "IDC_ITEMMANAGE_01");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_02, "IDC_ITEMMANAGE_02");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_03, "IDC_ITEMMANAGE_03");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_04, "IDC_ITEMMANAGE_04");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_05, "IDC_ITEMMANAGE_05");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_06, "IDC_ITEMMANAGE_06");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_07, "IDC_ITEMMANAGE_07");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_08, "IDC_ITEMMANAGE_08");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_09, "IDC_ITEMMANAGE_09");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_10, "IDC_ITEMMANAGE_10");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_11, "IDC_ITEMMANAGE_11");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_12, "IDC_ITEMMANAGE_12");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_13, "IDC_ITEMMANAGE_13");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_14, "IDC_ITEMMANAGE_14");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_15, "IDC_ITEMMANAGE_15");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_16, "IDC_ITEMMANAGE_16");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_17, "IDC_ITEMMANAGE_17");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_18, "IDC_ITEMMANAGE_18");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_19, "IDC_ITEMMANAGE_19");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_20, "IDC_ITEMMANAGE_20");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_21, "IDC_ITEMMANAGE_21");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_22, "IDC_ITEMMANAGE_22");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_23, "IDC_ITEMMANAGE_23");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_24, "IDC_ITEMMANAGE_24");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_25, "IDC_ITEMMANAGE_25");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_26, "IDC_ITEMMANAGE_26");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_27, "IDC_ITEMMANAGE_27");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_28, "IDC_ITEMMANAGE_28");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_29, "IDC_ITEMMANAGE_29");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_30, "IDC_ITEMMANAGE_30");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_31, "IDC_ITEMMANAGE_31");
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_32, "IDC_ITEMMANAGE_32");
|
||||
SetUIString(this->m_hWnd, IDC_ITEMMANAGE_33, "IDC_ITEMMANAGE_33");
|
||||
|
||||
SetUIString(this->m_hWnd, IDC_NEWIM_CALCGRADE_BTN, "IDC_NEWIM_CALCGRADE_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_NEWIM_UPDATE_BTN, "IDC_NEWIM_UPDATE_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_NEWIM_CREATEPLURAL_BTN, "IDC_NEWIM_CREATEPLURAL_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_NEWIM_CREATESING_BTN, "IDC_NEWIM_CREATESING_BTN");
|
||||
SetUIString(this->m_hWnd, IDC_PROTOTYPEID_STATIC, "ADDED_STRING_032");
|
||||
SetUIString(this->m_hWnd, IDC_GEMCONFER1_STATIC, "ADDED_STRING_065");
|
||||
SetUIString(this->m_hWnd, IDC_GEMCONFER2_STATIC, "ADDED_STRING_066");
|
||||
SetUIString(this->m_hWnd, IDC_GEMCONFER3_STATIC, "ADDED_STRING_067");
|
||||
SetUIString(this->m_hWnd, IDC_GEMCONFER4_STATIC, "ADDED_STRING_068");
|
||||
SetUIString(this->m_hWnd, IDC_GEMCONFER5_STATIC, "ADDED_STRING_069");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CItemManageDlg::InitItemData(MANAGE_TYPE cFlag)
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
Item::CItem* lpItem = NULL;
|
||||
const Item::ItemInfo* lpItemInfo;
|
||||
|
||||
if((CREATE == cFlag) || (EDIT_ADMINSTORE == cFlag) || (CREATE_ADMINSTORE == cFlag))
|
||||
{
|
||||
if (false == m_strNewItemName.IsEmpty())
|
||||
{
|
||||
TCHAR szInputedItemName[60];
|
||||
_sntprintf(szInputedItemName, 60, _T("%s"), m_strNewItemName);
|
||||
|
||||
lpItemInfo =
|
||||
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(CONV_NETSTRING(szInputedItemName));
|
||||
|
||||
if(NULL == lpItemInfo)
|
||||
{
|
||||
Report(GetLocalString("MSG_0102"), CAUTION);
|
||||
return;
|
||||
}
|
||||
lpItem = Item::CItemFactory::GetInstance().CreateItem(lpItemInfo->m_usProtoTypeID);
|
||||
}
|
||||
else
|
||||
{
|
||||
Report(GetLocalString("MSG_0103"), CAUTION);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if(EDIT == cFlag)
|
||||
{
|
||||
lpItem = g_stMyItemInfo.m_lpModifyCharInfo->UIDbyItem(
|
||||
g_stMyItemInfo.m_dwItemSerial, g_stMyItemInfo.m_cTakeType);
|
||||
}
|
||||
|
||||
if (NULL == lpItem)
|
||||
{
|
||||
Report(GetLocalString("MSG_0104"), CAUTION);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((EDIT_ADMINSTORE == cFlag) || (CREATE_ADMINSTORE == cFlag))
|
||||
{
|
||||
lpItem->SetNumOrDurability(g_stMyItemInfo.m_stItemInfo.m_cNumOrDurability);
|
||||
}
|
||||
|
||||
Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem);
|
||||
|
||||
if (NULL != lpEquipment)
|
||||
{
|
||||
EnableEditBox(true);
|
||||
|
||||
if ((EDIT_ADMINSTORE == cFlag) || (CREATE_ADMINSTORE == cFlag))
|
||||
{
|
||||
lpEquipment->SetNumOrDurability(g_stMyItemInfo.m_stItemInfo.m_cNumOrDurability);
|
||||
static_cast<CModifyEquipment*>(lpEquipment)->AdjustData(g_stMyItemInfo.m_stItemInfo);
|
||||
}
|
||||
|
||||
short ItemAttribute[Item::Attribute::MAX_ATTRIBUTE_NUM];
|
||||
unsigned char cSocket[Item::EquipmentInfo::MAX_SOCKET_NUM];
|
||||
|
||||
lpEquipment->GetAttribute(ItemAttribute, sizeof(ItemAttribute));
|
||||
lpEquipment->GetSocket(cSocket, sizeof(cSocket));
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDAMAGE_EDIT, ItemAttribute[Item::Attribute::MAX_DAMAGE], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MINDAMAGE_EDIT, ItemAttribute[Item::Attribute::MIN_DAMAGE], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_ARMOR_EDIT, ItemAttribute[Item::Attribute::ARMOR], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HITRATE_EDIT, ItemAttribute[Item::Attribute::HIT_RATE], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_EVADE_EDIT, ItemAttribute[Item::Attribute::EVADE], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXHP_EDIT, ItemAttribute[Item::Attribute::MAX_HP] * 10, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HPREGEN_EDIT, ItemAttribute[Item::Attribute::HP_REGEN], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXMP_EDIT, ItemAttribute[Item::Attribute::MAX_MP] * 10, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MPREGEN_EDIT, ItemAttribute[Item::Attribute::MP_REGEN], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CRITICAL_EDIT, ItemAttribute[Item::Attribute::CRITICAL], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_BLOCK_EDIT, ItemAttribute[Item::Attribute::BLOCK], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SPEED_EDIT, ItemAttribute[Item::Attribute::SPEED], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICPOWER_EDIT, ItemAttribute[Item::Attribute::MAGIC_POWER], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICRESI_EDIT, ItemAttribute[Item::Attribute::MAGIC_RESIST], FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_RUNESOCKET_EDIT, lpEquipment->GetRuneSocket(0), FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_RUNESOCKET2_EDIT, lpEquipment->GetRuneSocket(1), FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKETNUM_EDIT, lpEquipment->GetCurrentSocketNum(), FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXSOCKETNUM_EDIT, lpEquipment->GetMaxSocketNum(), FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET1_EDIT, cSocket[0], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET2_EDIT, cSocket[1], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET3_EDIT, cSocket[2], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET4_EDIT, cSocket[3], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET5_EDIT, cSocket[4], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET6_EDIT, cSocket[5], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET7_EDIT, cSocket[6], FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET8_EDIT, cSocket[7], FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_UPGRADELV_EDIT, lpEquipment->GetUpgradeLevel(), FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_NUMORDUR_EDIT, lpEquipment->GetNumOrDurability(), FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDUR_EDIT, lpEquipment->GetMaxNumOrDurability(), FALSE);
|
||||
|
||||
if ((EDIT == cFlag) || (EDIT_ADMINSTORE == cFlag) || (CREATE_ADMINSTORE == cFlag))
|
||||
{
|
||||
SetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, lpEquipment->GetSeasonRecord(), FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, lpEquipment->GetCoreLevel(), FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, 1, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, 0, FALSE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
EnableEditBox(false);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDAMAGE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MINDAMAGE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_ARMOR_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HITRATE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_EVADE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXHP_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HPREGEN_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXMP_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MPREGEN_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CRITICAL_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_BLOCK_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SPEED_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICPOWER_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICRESI_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_RUNESOCKET_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKETNUM_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXSOCKETNUM_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET1_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET2_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET3_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET4_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET5_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET6_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET7_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET8_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_UPGRADELV_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDUR_EDIT, 0, FALSE);
|
||||
|
||||
unsigned int dwNumOrDur =
|
||||
(cFlag == EDIT) || (cFlag == EDIT_ADMINSTORE) || (cFlag == CREATE_ADMINSTORE)
|
||||
? lpItem->GetNumOrDurability() : lpItem->GetItemInfo().m_DetailData.m_cDefaultDurabilityOrStack;
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_NUMORDUR_EDIT, dwNumOrDur, FALSE);
|
||||
}
|
||||
|
||||
if ((CREATE == cFlag) || (EDIT_ADMINSTORE == cFlag) || (CREATE_ADMINSTORE == cFlag))
|
||||
{
|
||||
DELETE_ITEM(lpItem);
|
||||
}
|
||||
}
|
||||
|
||||
bool CItemManageDlg::SetManageItemData(bool bUpdateData)
|
||||
{
|
||||
if (true == bUpdateData)
|
||||
{
|
||||
UpdateData(true);
|
||||
}
|
||||
|
||||
if (TRUE == ExistEmptyItem())
|
||||
{
|
||||
Report(GetLocalString("MSG_0164"), CAUTION);
|
||||
return false;
|
||||
}
|
||||
|
||||
const int MAX_ITEM_NAME = 64;
|
||||
TCHAR szItemName[MAX_ITEM_NAME];
|
||||
|
||||
const Item::ItemInfo* lpItemInfo = NULL;
|
||||
|
||||
if (g_stMyItemInfo.m_nModeIndex == MyItemInfo::CREATE_PLURAL
|
||||
|| g_stMyItemInfo.m_nModeIndex == MyItemInfo::CREATE_SINGLE
|
||||
|| g_stMyItemInfo.m_nModeIndex == MyItemInfo::EDIT_ADMINSTORE
|
||||
|| g_stMyItemInfo.m_nModeIndex == MyItemInfo::CREATE_DISTRIBUTE)
|
||||
{
|
||||
_sntprintf(szItemName, MAX_ITEM_NAME, _T("%s"), m_strNewItemName);
|
||||
lpItemInfo = Item::CItemMgr::GetInstance().GetItemInfoFromItemName(CONV_NETSTRING(szItemName));
|
||||
}
|
||||
else if(g_stMyItemInfo.m_nModeIndex == MyItemInfo::EDIT)
|
||||
{
|
||||
Item::CItem *lpGetItemInfo =
|
||||
g_stMyItemInfo.m_lpModifyCharInfo->UIDbyItem(
|
||||
g_stMyItemInfo.m_dwItemSerial, g_stMyItemInfo.m_cTakeType);
|
||||
|
||||
lpItemInfo = &(lpGetItemInfo->GetItemInfo());
|
||||
|
||||
CopyMemory(szItemName, lpItemInfo->m_SpriteData.m_szName, sizeof(char) * MAX_ITEM_NAME);
|
||||
|
||||
Item::ItemPos ItemPos = lpGetItemInfo->GetPos();
|
||||
|
||||
g_stMyItemInfo.m_stItemInfo.m_cTakePos = (unsigned char)lpGetItemInfo->GetItemPos();
|
||||
g_stMyItemInfo.m_stItemInfo.m_cXPos = ItemPos.GetXIndex();
|
||||
g_stMyItemInfo.m_stItemInfo.m_cYPos = ItemPos.GetYIndex();
|
||||
g_stMyItemInfo.m_stItemInfo.m_cZPos = ItemPos.GetZIndex();
|
||||
}
|
||||
|
||||
if (NULL == lpItemInfo)
|
||||
{
|
||||
Report(GetLocalString("MSG_0165"), CAUTION);
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned int nNumOrDur = GetDlgItemInt(IDC_NEWIM_NUMORDUR_EDIT, 0, FALSE);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> <20>ִ밪 <20><><EFBFBD>̿<EFBFBD><CCBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (Item::DetailData::EQUIP != lpItemInfo->m_DetailData.m_dwFlags)
|
||||
{
|
||||
if (0 == nNumOrDur)
|
||||
{
|
||||
nNumOrDur = lpItemInfo->m_DetailData.m_cDefaultDurabilityOrStack;
|
||||
}
|
||||
else if(nNumOrDur > lpItemInfo->m_DetailData.m_cMaxDurabilityOrStack)
|
||||
{
|
||||
nNumOrDur = lpItemInfo->m_DetailData.m_cMaxDurabilityOrStack;
|
||||
}
|
||||
}
|
||||
|
||||
g_stMyItemInfo.m_stItemInfo.m_cNumOrDurability = nNumOrDur;
|
||||
g_stMyItemInfo.m_stItemInfo.m_cMaxDurability = GetDlgItemInt(IDC_NEWIM_MAXDUR_EDIT, 0, FALSE);
|
||||
|
||||
g_stMyItemInfo.m_stItemInfo.m_cUpgradeLevel = GetDlgItemInt(IDC_NEWIM_UPGRADELV_EDIT, 0, FALSE);
|
||||
|
||||
CopyMemory(g_stMyItemInfo.m_szItemName, lpItemInfo->m_SpriteData.m_szName, MAX_ITEM_NAME);
|
||||
|
||||
g_stMyItemInfo.m_SizeX = lpItemInfo->m_DetailData.m_cXSize;
|
||||
g_stMyItemInfo.m_SizeY = lpItemInfo->m_DetailData.m_cYSize;
|
||||
|
||||
short ItemAttribute[Item::Attribute::MAX_ATTRIBUTE_NUM];
|
||||
unsigned char cSocket[Item::EquipmentInfo::MAX_SOCKET_NUM];
|
||||
|
||||
ZeroMemory(ItemAttribute, sizeof(ItemAttribute));
|
||||
ZeroMemory(cSocket, sizeof(cSocket));
|
||||
|
||||
CopyMemory(ItemAttribute,
|
||||
lpItemInfo->m_EquipAttribute.m_usAttributeValue, Item::Attribute::MAX_ATTRIBUTE_NUM);
|
||||
|
||||
CopyMemory(g_stMyItemInfo.m_stItemInfo.m_szItemName,
|
||||
lpItemInfo->m_SpriteData.m_szName, sizeof(char) * PktAdminMgr::MAX_LENGEH::MAX_ITEM_NAME);
|
||||
|
||||
// <20>Ӽ<EFBFBD> (<28><> <20>Ӽ<EFBFBD><D3BC>߿<EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD>찡 <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>!)
|
||||
ItemAttribute[Item::Attribute::MAX_DAMAGE] = GetDlgItemInt(IDC_NEWIM_MAXDAMAGE_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::MIN_DAMAGE] = GetDlgItemInt(IDC_NEWIM_MINDAMAGE_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::ARMOR] = GetDlgItemInt(IDC_NEWIM_ARMOR_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::HIT_RATE] = GetDlgItemInt(IDC_NEWIM_HITRATE_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::EVADE] = GetDlgItemInt(IDC_NEWIM_EVADE_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::MAX_HP] = (unsigned short)(GetDlgItemInt(IDC_NEWIM_MAXHP_EDIT, 0, FALSE) / 10);
|
||||
ItemAttribute[Item::Attribute::HP_REGEN] = GetDlgItemInt(IDC_NEWIM_HPREGEN_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::MAX_MP] = (unsigned short)(GetDlgItemInt(IDC_NEWIM_MAXMP_EDIT, 0, FALSE) / 10);
|
||||
ItemAttribute[Item::Attribute::MP_REGEN] = GetDlgItemInt(IDC_NEWIM_MPREGEN_EDIT, 0, FALSE);
|
||||
|
||||
ItemAttribute[Item::Attribute::CRITICAL] = GetDlgItemInt(IDC_NEWIM_CRITICAL_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::BLOCK] = GetDlgItemInt(IDC_NEWIM_BLOCK_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::SPEED] = GetDlgItemInt(IDC_NEWIM_SPEED_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::MAGIC_POWER] = GetDlgItemInt(IDC_NEWIM_MAGICPOWER_EDIT, 0, FALSE);
|
||||
ItemAttribute[Item::Attribute::MAGIC_RESIST] = GetDlgItemInt(IDC_NEWIM_MAGICRESI_EDIT, 0, FALSE);
|
||||
|
||||
CopyMemory(g_stMyItemInfo.m_stItemInfo.m_usAttribute,
|
||||
ItemAttribute, sizeof(short) * Item::Attribute::MAX_ATTRIBUTE_NUM);
|
||||
|
||||
// <20><> <20><><EFBFBD><EFBFBD>
|
||||
g_stMyItemInfo.m_stItemInfo.m_usRuneSocket[0] = GetDlgItemInt(IDC_NEWIM_RUNESOCKET_EDIT, 0, FALSE);
|
||||
g_stMyItemInfo.m_stItemInfo.m_usRuneSocket[1] = GetDlgItemInt(IDC_NEWIM_RUNESOCKET2_EDIT, 0, FALSE);
|
||||
|
||||
// <20>־<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
g_stMyItemInfo.m_stItemInfo.m_cCurrentSocketNum = GetDlgItemInt(IDC_NEWIM_SOCKETNUM_EDIT, 0, FALSE);
|
||||
g_stMyItemInfo.m_stItemInfo.m_cMaxSocketNum = GetDlgItemInt(IDC_NEWIM_MAXSOCKETNUM_EDIT, 0, FALSE);
|
||||
|
||||
cSocket[0] = GetDlgItemInt(IDC_NEWIM_SOCKET1_EDIT, 0, FALSE);
|
||||
cSocket[1] = GetDlgItemInt(IDC_NEWIM_SOCKET2_EDIT, 0, FALSE);
|
||||
cSocket[2] = GetDlgItemInt(IDC_NEWIM_SOCKET3_EDIT, 0, FALSE);
|
||||
cSocket[3] = GetDlgItemInt(IDC_NEWIM_SOCKET4_EDIT, 0, FALSE);
|
||||
cSocket[4] = GetDlgItemInt(IDC_NEWIM_SOCKET5_EDIT, 0, FALSE);
|
||||
cSocket[5] = GetDlgItemInt(IDC_NEWIM_SOCKET6_EDIT, 0, FALSE);
|
||||
cSocket[6] = GetDlgItemInt(IDC_NEWIM_SOCKET7_EDIT, 0, FALSE);
|
||||
cSocket[7] = GetDlgItemInt(IDC_NEWIM_SOCKET8_EDIT, 0, FALSE);
|
||||
|
||||
CopyMemory(g_stMyItemInfo.m_stItemInfo.m_cSocket,
|
||||
cSocket, sizeof(unsigned char) * Item::EquipmentInfo::MAX_SOCKET_NUM);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڵ<EFBFBD>
|
||||
g_stMyItemInfo.m_stItemInfo.m_cSeasonRecord = GetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, 0, FALSE);
|
||||
g_stMyItemInfo.m_stItemInfo.m_cCoreLevel = GetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, 0, FALSE);
|
||||
|
||||
if (true == IsValidItemValue())
|
||||
{
|
||||
Item::CItem* lpItem = Item::CItemFactory::GetInstance().CreateItem(lpItemInfo->m_usProtoTypeID);
|
||||
Item::CEquipment* lpEquipment = Item::CEquipment::DowncastToEquipment(lpItem);
|
||||
|
||||
if(NULL != lpEquipment)
|
||||
{
|
||||
for(unsigned char cAttributeIndex = 0;
|
||||
cAttributeIndex < Item::Attribute::MAX_ATTRIBUTE_NUM;
|
||||
++cAttributeIndex)
|
||||
{
|
||||
lpEquipment->SetAttribute(static_cast<Item::Attribute::Type>(cAttributeIndex), ItemAttribute[cAttributeIndex]);
|
||||
}
|
||||
|
||||
lpEquipment->CalculateItemGrade();
|
||||
|
||||
Item::Grade::GradeInfo gradeInfo = lpEquipment->GetItemGrade();
|
||||
m_ManageItemGrade.m_cPlus = gradeInfo.m_cPlus;
|
||||
m_ManageItemGrade.m_eItemGrade = gradeInfo.m_eItemGrade;
|
||||
CopyMemory(m_ManageItemGrade.m_aryAttributeGrade, gradeInfo.m_aryAttributeGrade, sizeof(short) * Item::Attribute::MAX_ATTRIBUTE_NUM);
|
||||
}
|
||||
|
||||
DELETE_ITEM(lpItem);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void CItemManageDlg::CalculateItemGrade()
|
||||
{
|
||||
m_ManageItemGrade = Item::Grade::GradeInfo();
|
||||
|
||||
const Item::ItemInfo* lpItemInfo =
|
||||
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(g_stMyItemInfo.m_szItemName);
|
||||
|
||||
if(0 == lpItemInfo->m_DetailData.m_wDropOption)
|
||||
{
|
||||
Report(GetLocalString("MSG_0166"), CAUTION);
|
||||
m_ManageItemGrade.m_eItemGrade = Item::EquipType::MAX_GRADE;
|
||||
return;
|
||||
}
|
||||
|
||||
for(unsigned char cAttributeIndex = 0; cAttributeIndex < Item::Attribute::MAX_ATTRIBUTE_NUM; ++cAttributeIndex)
|
||||
{
|
||||
const float fGradeFactor =
|
||||
(g_stMyItemInfo.m_stItemInfo.m_usAttribute[cAttributeIndex] -
|
||||
lpItemInfo->m_EquipAttribute.m_usAttributeValue[cAttributeIndex]) /
|
||||
static_cast<float>(lpItemInfo->m_DetailData.m_wDropOption);
|
||||
|
||||
// D <20><EFBFBD><D7B7>̵带 <20>ʰ<EFBFBD><CAB0>ϸ<EFBFBD> F <20><EFBFBD><D7B7>̵尡 <20>ȴ<EFBFBD>.
|
||||
for(unsigned char cGradeIndex = 0; cGradeIndex <= Item::EquipType::D_GRADE; ++cGradeIndex)
|
||||
{
|
||||
const Item::CItemType::ArrayType eEquipType =
|
||||
Item::CItemType::GetEquipType(lpItemInfo->m_DetailData.m_dwFlags);
|
||||
|
||||
const float fGradeValue = Item::Grade::GetGradeValue(eEquipType, Item::Grade::VALUE_GRADE,
|
||||
static_cast<Item::EquipType::Grade>(cGradeIndex), static_cast<Item::Attribute::Type>(cAttributeIndex));
|
||||
|
||||
if(0 != fGradeValue && fGradeFactor > fGradeValue)
|
||||
{
|
||||
m_ManageItemGrade.m_aryAttributeGrade[cAttributeIndex] = static_cast<Item::EquipType::Grade>(cGradeIndex);
|
||||
|
||||
if(m_ManageItemGrade.m_eItemGrade > m_ManageItemGrade.m_aryAttributeGrade[cAttributeIndex])
|
||||
{
|
||||
m_ManageItemGrade.m_eItemGrade = m_ManageItemGrade.m_aryAttributeGrade[cAttributeIndex];
|
||||
m_ManageItemGrade.m_cPlus = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_ManageItemGrade.m_eItemGrade == m_ManageItemGrade.m_aryAttributeGrade[cAttributeIndex])
|
||||
{
|
||||
++m_ManageItemGrade.m_cPlus;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool CItemManageDlg::IsValidItemValue()
|
||||
{
|
||||
CString strErrMessage;
|
||||
|
||||
const Item::ItemInfo* lpValidItemInfo =
|
||||
Item::CItemMgr::GetInstance().GetItemInfoFromItemName(g_stMyItemInfo.m_stItemInfo.m_szItemName);
|
||||
|
||||
if(NULL == lpValidItemInfo)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20>Ӽ<EFBFBD> üũ
|
||||
for(int nIdx = 0; nIdx < Item::EquipmentInfo::MAX_ATTRIBUTE_NUM; ++nIdx)
|
||||
{
|
||||
if(g_stMyItemInfo.m_stItemInfo.m_usAttribute[nIdx] <
|
||||
lpValidItemInfo->m_EquipAttribute.m_usAttributeValue[nIdx])
|
||||
{
|
||||
strErrMessage.Format("Invalid value detect: Attribute %d\r\n(Min Limit: %u > Input Value: %u)",
|
||||
nIdx, lpValidItemInfo->m_EquipAttribute.m_usAttributeValue[nIdx],
|
||||
g_stMyItemInfo.m_stItemInfo.m_usAttribute[nIdx]);
|
||||
|
||||
MessageBox(strErrMessage);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> üũ
|
||||
/*
|
||||
if(g_stMyItemInfo.m_stItemInfo.m_cCurrentSocketNum >
|
||||
(int)lpValidItemInfo->m_DetailData.m_cMaxSocketNum)
|
||||
{
|
||||
strErrMessage.Format("Invalid Value: Socket Num surplus (Max Limit: %u < Input Value: %u)",
|
||||
(int)lpValidItemInfo->m_DetailData.m_cMaxSocketNum,
|
||||
g_stMyItemInfo.m_stItemInfo.m_cCurrentSocketNum);
|
||||
|
||||
MessageBox(strErrMessage);
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CItemManageDlg::EnableEditBox(bool bEnable)
|
||||
{
|
||||
GetDlgItem(IDC_NEWIM_MAXDAMAGE_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MINDAMAGE_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_ARMOR_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_HITRATE_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_EVADE_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAXHP_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_HPREGEN_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAXMP_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MPREGEN_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_CRITICAL_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_BLOCK_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SPEED_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAGICPOWER_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAGICRESI_EDIT)->EnableWindow(bEnable);
|
||||
|
||||
GetDlgItem(IDC_NEWIM_RUNESOCKET_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_RUNESOCKET2_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKETNUM_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAXSOCKETNUM_EDIT)->EnableWindow(bEnable);
|
||||
|
||||
GetDlgItem(IDC_NEWIM_SOCKET1_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET2_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET3_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET4_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET5_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET6_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET7_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SOCKET8_EDIT)->EnableWindow(bEnable);
|
||||
|
||||
GetDlgItem(IDC_NEWIM_UPGRADELV_EDIT)->EnableWindow(bEnable);
|
||||
//GetDlgItem(IDC_NEWIM_NUMORDUR_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_MAXDUR_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_SEASONRECORD_EDIT)->EnableWindow(bEnable);
|
||||
GetDlgItem(IDC_NEWIM_CORELEVEL_EDIT)->EnableWindow(bEnable);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimCreatepluralBtn()
|
||||
{
|
||||
g_stMyItemInfo.m_nModeIndex = MyItemInfo::CREATE_PLURAL;
|
||||
|
||||
if(!SetManageItemData(true))
|
||||
{
|
||||
Report(GetLocalString("MSG_0167"), FAILED);
|
||||
return;
|
||||
}
|
||||
|
||||
g_bItemGrab = true;
|
||||
EndDialog(true);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimCreatesingBtn()
|
||||
{
|
||||
g_stMyItemInfo.m_nModeIndex = MyItemInfo::CREATE_SINGLE;
|
||||
|
||||
if(!SetManageItemData(true))
|
||||
{
|
||||
Report(GetLocalString("MSG_0167"), FAILED);
|
||||
return;
|
||||
}
|
||||
|
||||
g_bItemGrab = true;
|
||||
EndDialog(true);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimItemdistributeBtn()
|
||||
{
|
||||
g_stMyItemInfo.m_nModeIndex = MyItemInfo::CREATE_DISTRIBUTE;
|
||||
|
||||
if(!SetManageItemData(true))
|
||||
{
|
||||
Report(GetLocalString("MSG_0167"), FAILED);
|
||||
return;
|
||||
}
|
||||
|
||||
CItemDistributeDlg dlg;
|
||||
dlg.DoModal();
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimUpdateBtn()
|
||||
{
|
||||
if(!SetManageItemData(true))
|
||||
{
|
||||
Report(GetLocalString("MSG_0167"), FAILED);
|
||||
return;
|
||||
}
|
||||
|
||||
if(g_stMyItemInfo.m_nModeIndex == MyItemInfo::EDIT)
|
||||
{
|
||||
Item::CItem* lpItem =
|
||||
g_stMyItemInfo.m_lpModifyCharInfo->UIDbyItem(
|
||||
g_stMyItemInfo.m_dwItemSerial, g_stMyItemInfo.m_cTakeType);
|
||||
|
||||
CPacketMgr::GetInstance()->SendUpdateItem(g_stMyItemInfo.m_lpModifyCharInfo->GetServerGroup(),
|
||||
g_stMyItemInfo.m_lpModifyCharInfo->GetCID(), g_stMyItemInfo.m_lpModifyCharInfo->GetUID(),
|
||||
g_stMyItemInfo.m_dwDocKey, g_stMyItemInfo.m_dwItemSerial, lpItem->GetPrototypeID(),
|
||||
g_stMyItemInfo.m_stItemInfo);
|
||||
}
|
||||
else if(g_stMyItemInfo.m_nModeIndex == MyItemInfo::EDIT_ADMINSTORE)
|
||||
{
|
||||
CPacketMgr::GetInstance()->SendPktUpdateAdminStore();
|
||||
}
|
||||
else
|
||||
{
|
||||
Report(GetLocalString("MSG_0105"), CAUTION);
|
||||
}
|
||||
|
||||
EndDialog(true);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimIteminfoinitBtn()
|
||||
{
|
||||
InitItemData(CREATE);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedNewimCalcgradeBtn()
|
||||
{
|
||||
if(0 == g_stMyItemInfo.m_nModeIndex)
|
||||
{
|
||||
g_stMyItemInfo.m_nModeIndex = MyItemInfo::CREATE_SINGLE;
|
||||
}
|
||||
|
||||
TCHAR strGrade[128];
|
||||
|
||||
if(!SetManageItemData(true))
|
||||
{
|
||||
Report(GetLocalString("MSG_0167"), FAILED);
|
||||
_stprintf(strGrade, _T("?"));
|
||||
SetDlgItemText(IDC_NEWIM_GRADE_EDIT, strGrade);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
int iPlus = m_ManageItemGrade.m_cPlus;
|
||||
|
||||
switch(m_ManageItemGrade.m_eItemGrade)
|
||||
{
|
||||
case Item::EquipType::S_GRADE: _stprintf(strGrade, _T("S")); break;
|
||||
case Item::EquipType::AAA_GRADE: _stprintf(strGrade, _T("AAA")); break;
|
||||
case Item::EquipType::AA_GRADE: _stprintf(strGrade, _T("AA")); break;
|
||||
case Item::EquipType::A_GRADE: _stprintf(strGrade, _T("A")); break;
|
||||
case Item::EquipType::B_GRADE: _stprintf(strGrade, _T("B")); break;
|
||||
case Item::EquipType::C_GRADE: _stprintf(strGrade, _T("C")); break;
|
||||
case Item::EquipType::D_GRADE: _stprintf(strGrade, _T("D")); break;
|
||||
case Item::EquipType::F_GRADE: _stprintf(strGrade, _T("F")); break;
|
||||
default: _stprintf(strGrade, _T("?")); break;
|
||||
}
|
||||
|
||||
if(iPlus > 0)
|
||||
{
|
||||
char strCa[32];
|
||||
_stprintf(strCa, _T(" +%d"), iPlus);
|
||||
_tcscat(strGrade, strCa);
|
||||
}
|
||||
|
||||
SetDlgItemText(IDC_NEWIM_GRADE_EDIT, strGrade);
|
||||
}
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnOK()
|
||||
{
|
||||
// CDialog::OnOK();
|
||||
}
|
||||
|
||||
BOOL CItemManageDlg::ExistEmptyItem()
|
||||
{
|
||||
BOOL bIsEmpty = TRUE;
|
||||
|
||||
if(CREATE == m_cManageType)
|
||||
{
|
||||
CString strItemName;
|
||||
GetDlgItemText(IDC_NEWIM_NEWITEMNAME_EDIT, strItemName);
|
||||
if(strItemName.IsEmpty())
|
||||
{
|
||||
bIsEmpty = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
GetDlgItemInt(IDC_NEWIM_MAXDAMAGE_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MINDAMAGE_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_ARMOR_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_HITRATE_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_EVADE_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAXHP_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_HPREGEN_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAXMP_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MPREGEN_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_CRITICAL_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_BLOCK_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SPEED_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAGICPOWER_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAGICRESI_EDIT, &bIsEmpty, FALSE);
|
||||
|
||||
GetDlgItemInt(IDC_NEWIM_RUNESOCKET_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_RUNESOCKET2_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKETNUM_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAXSOCKETNUM_EDIT, &bIsEmpty, FALSE);
|
||||
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET1_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET2_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET3_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET4_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET5_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET6_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET7_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SOCKET8_EDIT, &bIsEmpty, FALSE);
|
||||
|
||||
GetDlgItemInt(IDC_NEWIM_UPGRADELV_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_NUMORDUR_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_MAXDUR_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, &bIsEmpty, FALSE);
|
||||
GetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, &bIsEmpty, FALSE);
|
||||
|
||||
return !bIsEmpty;
|
||||
}
|
||||
|
||||
void CItemManageDlg::ClearToZero()
|
||||
{
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDAMAGE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MINDAMAGE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_ARMOR_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HITRATE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_EVADE_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXHP_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_HPREGEN_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXMP_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MPREGEN_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CRITICAL_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_BLOCK_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SPEED_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICPOWER_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAGICRESI_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_RUNESOCKET_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_RUNESOCKET2_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKETNUM_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXSOCKETNUM_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET1_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET2_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET3_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET4_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET5_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET6_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET7_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SOCKET8_EDIT, 0, FALSE);
|
||||
|
||||
SetDlgItemInt(IDC_NEWIM_UPGRADELV_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_NUMORDUR_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_MAXDUR_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, 0, FALSE);
|
||||
SetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, 0, FALSE);
|
||||
}
|
||||
|
||||
BOOL CItemManageDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
|
||||
{
|
||||
if ((pMsg->hwnd == GetDlgItem(IDC_NEWIM_NEWITEMNAME_EDIT)->m_hWnd))
|
||||
{
|
||||
InitItemData(CREATE);
|
||||
}
|
||||
else if(pMsg->hwnd == GetDlgItem(IDC_CONVERT_EDIT)->m_hWnd)
|
||||
{
|
||||
OnBnClickedConvertBtn();
|
||||
}
|
||||
}
|
||||
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedConvertBtn()
|
||||
{
|
||||
char szBuffer[256];
|
||||
GetDlgItemText(IDC_CONVERT_EDIT, szBuffer, 256);
|
||||
|
||||
const Item::ItemInfo* lpItemInfo = Item::CItemMgr::GetInstance().GetItemInfo((unsigned short)(atoi(szBuffer)));
|
||||
|
||||
if (NULL == lpItemInfo)
|
||||
{
|
||||
Report(GetLocalString("ADDED_STRING_034"), FAILED);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetDlgItemText(IDC_CONVERT_EDIT, lpItemInfo->m_SpriteData.m_szName);
|
||||
}
|
||||
}
|
||||
|
||||
void CItemManageDlg::OnBnClickedApplyBtn()
|
||||
{
|
||||
CString strGetValue;
|
||||
GetDlgItemText(IDC_CONVERT_EDIT, strGetValue);
|
||||
|
||||
m_strNewItemName = strGetValue;
|
||||
|
||||
UpdateData(false);
|
||||
}
|
||||
Reference in New Issue
Block a user