BOOL CWndItemTransy::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) { CWndBase* pWndFrame = pShortcut->m_pFromWnd->GetFrameWnd(); // 인벤토리에서 온것인지 검사 if( !(pShortcut->m_dwShortcut == SHORTCUT_ITEM) && !(pWndFrame->GetWndId() == APP_INVENTORY) ) return FALSE; // 장착되어있는지 검사 if( g_pPlayer->m_Inventory.IsEquip( pShortcut->m_dwId ) ) { g_WndMng.PutString( prj.GetText(TID_GAME_EQUIPPUT), NULL, prj.GetTextColor(TID_GAME_EQUIPPUT) ); SetForbid( TRUE ); return FALSE; } CItemElem* pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); if( pItemElem == NULL ) { SetForbid( TRUE ); return FALSE; } if( PtInRect( &m_Rect[0], point ) ) { ItemProp* pItemPropChange = NULL; // 성별이 있는 아이템 인지 검사 ItemProp* pItemProp = pItemElem->GetProp(); pItemPropChange = g_pPlayer->GetTransyItem( pItemProp ); if( pItemPropChange == NULL ) { g_WndMng.PutString( prj.GetText(TID_GAME_ITEM_TRANSY), NULL, prj.GetTextColor(TID_GAME_ITEM_TRANSY) ); SetForbid( TRUE ); return FALSE; } #ifdef __SYS_ITEMTRANSY if(!m_bMenu) { #endif //__SYS_ITEMTRANSY if( m_pItemElem[1]->GetProp()->dwID == II_CHR_SYS_SCR_ITEMTRANSY_A ) { if( 61 <= pItemElem->GetProp()->dwLimitLevel1 ) { CString strMsg; strMsg.Format( prj.GetText( TID_GAME_ITEM_TRANSY_NOT_LEVEL_0 ), m_pItemElem[1]->GetProp()->szName ); g_WndMng.PutString( strMsg, NULL, prj.GetTextColor(TID_GAME_ITEM_TRANSY_NOT_LEVEL_0) ); SetForbid( TRUE ); return FALSE; } } else { if( pItemElem->GetProp()->dwLimitLevel1 < 61 ) { CString strMsg; strMsg.Format( prj.GetText( TID_GAME_ITEM_TRANSY_NOT_LEVEL_1 ), m_pItemElem[1]->GetProp()->szName ); g_WndMng.PutString( strMsg, NULL, prj.GetTextColor(TID_GAME_ITEM_TRANSY_NOT_LEVEL_1) ); SetForbid( TRUE ); return FALSE; } } #ifdef __SYS_ITEMTRANSY } #endif //__SYS_ITEMTRANSY if( m_pItemElem[0] ) { m_pItemElem[0]->SetExtra( 0 ); } pItemElem->SetExtra( 1 ); m_pItemElem[0] = pItemElem; m_pItemElemChange = *m_pItemElem[0]; m_pItemElemChange.m_dwItemId = pItemPropChange->dwID; m_pItemElemChange.m_nHitPoint = pItemPropChange->dwEndurance; } return TRUE; }
BOOL CWndPiercing::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) { CWndBase* pWndFrame = pShortcut->m_pFromWnd->GetFrameWnd(); // 아이템이 인벤토리에서 왔는가? if( !(pShortcut->m_dwShortcut == SHORTCUT_ITEM) && !(pWndFrame->GetWndId() == APP_INVENTORY) ) return FALSE; if( g_pPlayer->m_Inventory.IsEquip( pShortcut->m_dwId ) ) { g_WndMng.PutString( prj.GetText(TID_GAME_EQUIPPUT), NULL, prj.GetTextColor(TID_GAME_EQUIPPUT) ); SetForbid( TRUE ); return FALSE; } CItemElem* pItemElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); if(pItemElem == NULL) return FALSE; // 아이템( 방어구, 무기구 ) if( PtInRect(&m_Rect[0], point) ) { #if __VER < 9 // __ULTIMATE if( pItemElem->GetProp()->dwItemKind3 != IK3_SUIT ) { g_WndMng.PutString( prj.GetText(TID_PIERCING_POSSIBLE_ITEM), NULL, prj.GetTextColor(TID_PIERCING_POSSIBLE_ITEM) ); return FALSE; } #endif // __ULTIMATE // 4개 초과로 피어싱 할수 없음 #if __VER >= 12 // __EXT_PIERCING if( !pItemElem->IsPierceAble( NULL_ID, TRUE ) ) #else // __EXT_PIERCING if( pItemElem->GetPiercingSize() >= MAX_PIERCING_SUIT ) #endif // __EXT_PIERCING { g_WndMng.PutString( prj.GetText(TID_PIERCING_POSSIBLE), NULL, prj.GetTextColor(TID_PIERCING_POSSIBLE) ); return FALSE; } #ifdef __NEW_ITEM_VARUNA if( pItemElem->GetProp()->IsBaruna() ) { g_WndMng.PutString( prj.GetText(TID_PIERCING_POSSIBLE), NULL, prj.GetTextColor(TID_PIERCING_POSSIBLE) ); return FALSE; } #endif // __NEW_ITEM_VARUNA if( pItemElem->GetProp()->dwItemRare == 0xffffffff ) { g_WndMng.PutString( prj.GetText(TID_PIERCING_POSSIBLE_ITEM), NULL, prj.GetTextColor(TID_PIERCING_POSSIBLE_ITEM) ); return FALSE; } if( m_pItemElem[0] ) m_pItemElem[0]->SetExtra( 0 ); pItemElem->SetExtra( 1 ); m_pItemElem[0] = pItemElem; if( m_pItemElem[1] ) { m_pItemElem[1]->SetExtra( 0 ); m_pItemElem[1] = NULL; } if( m_pItemElem[2] ) { m_pItemElem[2]->SetExtra( 0 ); m_pItemElem[2] = NULL; } } else if( PtInRect(&m_Rect[1], point) ) { // 파워다이스 8, 10만 사용할수 있음 if( m_pItemElem[0] ) { #if __VER >= 8 //__Y_NEW_ENCHANT if( pItemElem->GetProp()->dwID != II_GEN_MAT_MOONSTONE && pItemElem->GetProp()->dwID != II_GEN_MAT_MOONSTONE_1 ) #else //__Y_NEW_ENCHANT if( pItemElem->GetProp()->dwID != II_GEN_MAT_DIE_EIGHT && pItemElem->GetProp()->dwID != II_GEN_MAT_DIE_TEN ) #endif //__Y_NEW_ENCHANT { g_WndMng.PutString( prj.GetText(TID_SBEVE_NOTUSEITEM), NULL, prj.GetTextColor(TID_SBEVE_NOTUSEITEM) ); return FALSE; } if( m_pItemElem[1] ) m_pItemElem[1]->SetExtra( 0 ); pItemElem->SetExtra( 1 ); m_pItemElem[1] = pItemElem; } } else if( PtInRect(&m_Rect[2], point) ) { if( m_pItemElem[0] ) { // 보조아이템은 상용화 아이템만 검사 if( pItemElem->GetProp()->dwID != II_SYS_SYS_SCR_PIEPROT ) { g_WndMng.PutString( prj.GetText(TID_SBEVE_NOTUSEITEM), NULL, prj.GetTextColor(TID_SBEVE_NOTUSEITEM) ); return FALSE; } if( m_pItemElem[2] ) m_pItemElem[2]->SetExtra( 0 ); pItemElem->SetExtra( 1 ); m_pItemElem[2] = pItemElem; } } return TRUE; }