void CWndGuildMeritCtrl::RestoreItem() { CItemElem* pItemElem = NULL; for( int i=0; i<(int)( m_pItemContainer.size() ); i++ ) { pItemElem = (CItemElem*)m_pItemContainer[i]; if( pItemElem ) pItemElem->SetExtra( 0 ); } }
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; }
BOOL CWndGuildMerit::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { if ( message == EN_RETURN ) { nID = WIDC_BUTTON1; } switch( nID ) { case WIDC_CHECK2: { CWndButton* pChk = (CWndButton*)GetDlgItem( WIDC_CHECK2 ); m_nItem = pChk->GetCheck(); if( m_nItem ) { if( g_pPlayer ) { CItemElem* pItemElem = NULL; for( int i=0; i<g_pPlayer->m_Inventory.GetMax() ; i++ ) { pItemElem = g_pPlayer->m_Inventory.GetAtId(i); if( pItemElem == NULL ) continue; if( pItemElem->GetProp()->dwItemKind3 == IK3_GEM ) { pItemElem->SetExtra( pItemElem->m_nItemNum ); m_wndctrlMerit.AddItem(pItemElem); } } } } else { m_wndctrlMerit.RestoreItem(); m_wndctrlMerit.ClearItem(); } } break; case WIDC_BUTTON1: // OK { CWndEdit *pWndEdit = (CWndEdit *)GetDlgItem( WIDC_EDIT1 ); m_nPenya = atoi( pWndEdit->GetString() ); // 문자열을 숫자로 변환. if( m_nPenya < 0 ) m_nPenya = 0; CGuild* pGuild = g_pPlayer->GetGuild(); if( pGuild ) { // 페냐가 공헌가능한지 검사. if( m_nPenya ) { CONTRIBUTION_RESULT cbResult = pGuild->CanContribute( 0, (DWORD)m_nPenya, g_pPlayer->m_idPlayer ); if( cbResult == CONTRIBUTION_OK ) // 페냐 공헌가능. g_DPlay.SendGuildContribution( 0, m_nPenya ); pGuild->MeritResultMsg( cbResult ); // 안내메시지. } //* // 공헌아이템 if( m_nItem ) { CONTRIBUTION_RESULT cbResult = pGuild->CanContribute( m_wndctrlMerit.GetTotalCount(), 0, g_pPlayer->m_idPlayer ); if( cbResult == CONTRIBUTION_OK ) // 아이템 공헌가능 g_DPlay.SendGuildContribution( 0, 0, 1); pGuild->MeritResultMsg( cbResult ); // 안내메시지. } /**/ } // pGuild Destroy(); } break; case 10000: case WIDC_BUTTON2: // NO m_wndctrlMerit.RestoreItem(); Destroy(); // 걍 창 닫고 나감. break; } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }