// ItemManageDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "ItemManageDlg.h" #include "WindowMgr.h" #include "GlobalFunctions.h" #include "PacketManager.h" #include "ItemDistributeDlg.h" #include #include #include #include #include ".\itemmanagedlg.h" // CItemManageDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. 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(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 ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. 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: // ¿ÏÀüÈ÷ »õ·Î¿î ¾ÆÀÌÅÛ »ý¼º { 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); // ¾ÆÀÌÅÛ »ý¼º½Ã ½ÃÁð ·¹ÄÚµå´Â 1·Î °­Á¦ SetDlgItemInt(IDC_NEWIM_SEASONRECORD_EDIT, 1, FALSE); SetDlgItemInt(IDC_NEWIM_CORELEVEL_EDIT, 0, FALSE); } break; case MANAGE_TYPE::CREATE_ADMINSTORE: // ¿î¿µÃ¢°íÀÇ ¾ÆÀÌÅÛ ¼Ó¼ºÀ¸·Î Áö±ÞÇÏ´Â °æ¿ì { strDlgTitle = GetLocalString("ITEM_CREATE_ADMINSTORE_DLG"); InitItemData(CREATE_ADMINSTORE); // ±âÁ¸ÀÇ ¼Ó¼º ±×´ë·Î »ý¼ºÇØ¾ß Çϱ⠶§¹®¿¡ ¼öÁ¤ °¡´ÉÇÑ ¼Ó¼ºÀÌ ¾øµµ·Ï ¼ÂÆÃ 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: // Àκ¥Å丮³ª â°í¿¡ ÀÖ´Â ¾ÆÀÌÅÛ ¼öÁ¤ { 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: // ¿î¿µÃ¢°í¿¡ ÀÖ´Â ¾ÆÀÌÅÛ ¼öÁ¤ { 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(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); // Àåºñ°¡ ¾Æ´Ñ ¾ÆÀÌÅÛÀÏ °æ¿ì ½ºÅà ±âº»°ª°ú ÃÖ´ë°ª »çÀÌ¿¡¼­ ½ºÅÃÀÌ µÇµµ·Ï Á¶Á¤ 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); // ¼Ó¼º (¡Ø ¼Ó¼ºÁß¿¡ Ŭ¶óÀÌ¾ðÆ®¿¡¼­ º¸¿©Áö´Â °ªÀÌ ´Ù¸¥ °æ¿ì°¡ ÀÖÀ½. ÁÖÀÇ!) 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); // ·é ¼ÒÄÏ 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); // ÁÖ¾ó ¼ÒÄÏ 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); // ½ÃÁð ·¹ÄÚµå 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(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(lpItemInfo->m_DetailData.m_wDropOption); // D ±×·¹À̵带 ÃʰúÇϸé F ±×·¹À̵尡 µÈ´Ù. 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(cGradeIndex), static_cast(cAttributeIndex)); if(0 != fGradeValue && fGradeFactor > fGradeValue) { m_ManageItemGrade.m_aryAttributeGrade[cAttributeIndex] = static_cast(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; } // ¼Ó¼º üũ 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; } } // ¼ÒÄÏ Ã¼Å© /* 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); }