void CWndPiercing::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); CWndInventory* pWndInventory = (CWndInventory*)g_WndMng.CreateApplet( APP_INVENTORY ); CRect rcInventory = pWndInventory->GetWindowRect( TRUE ); CRect rcVendor = GetWindowRect( TRUE ); CPoint ptInventory = rcInventory.TopLeft(); CPoint point; if( ptInventory.x > m_pWndRoot->GetWndRect().Width() / 2 ) point = ptInventory - CPoint( rcVendor.Width(), 0 ); else point = ptInventory + CPoint( rcInventory.Width(), 0 ); Move( point ); LPWNDCTRL pCustom = NULL; pCustom = GetWndCtrl( WIDC_STATIC5 ); m_Rect[0] = pCustom->rect; pCustom = GetWndCtrl( WIDC_STATIC6 ); m_Rect[1] = pCustom->rect; pCustom = GetWndCtrl( WIDC_STATIC7 ); m_Rect[2] = pCustom->rect; CWndStatic* pGoldNum = (CWndStatic*) GetDlgItem( WIDC_STATIC9 ); pGoldNum->AddWndStyle( WSS_MONEY ); if( g_pPlayer ) m_pSfx = CreateSfx( g_Neuz.m_pd3dDevice, XI_INT_INCHANT, g_pPlayer->GetPos(), g_pPlayer->GetId(), g_pPlayer->GetPos(), g_pPlayer->GetId(), -1 ); }
BOOL CWndBlessingCancel::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) { CItemElem* pTempElem; pTempElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); if( g_xRandomOptionProperty->GetRandomOptionKind( pTempElem ) == CRandomOptionProperty::eBlessing && g_xRandomOptionProperty->GetRandomOptionSize( pTempElem->GetRandomOptItemId() )) { // 하락 상태가 된 아이템만 올릴 수 있다. if(pTempElem != NULL) { if(m_pItemElem) m_pItemElem->SetExtra(0); m_pItemElem = pTempElem; m_pEItemProp = m_pItemElem->GetProp(); m_pItemElem->SetExtra(m_pItemElem->GetExtra()+1); CWndButton* pButton = (CWndButton*)GetDlgItem(WIDC_START); pButton->EnableWindow(TRUE); LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CHANGE ); if(m_pEItemProp != NULL) { m_pTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_ITEM, m_pEItemProp->szIcon), 0xffff00ff ); } } } else { g_WndMng.PutString( prj.GetText(TID_GAME_BLESSEDNESS_CANCEL), NULL, 0xffff0000 ); return FALSE; } return TRUE; }
int CWndOptSound::GetSliderStep(DWORD dwWndId, int &nStep, CPoint point ) { LPWNDCTRL lpWndCtrl = GetWndCtrl( dwWndId ); CRect crect = lpWndCtrl->rect; crect.left += GetStepPos( nStep, lpWndCtrl->rect.right - lpWndCtrl->rect.left, MAX_SLIDER ).x; crect.right = crect.left+16; if( PtInRect( crect, point ) ) { return -1; } crect = lpWndCtrl->rect; if( PtInRect( crect, point ) ) { int nWidth = lpWndCtrl->rect.right - lpWndCtrl->rect.left; if( point.x > lpWndCtrl->rect.left+GetStepPos( nStep, nWidth, MAX_SLIDER ).x ) nStep += 1;//nWidth / 10; else nStep -= 1;//nWidth / 10; return 1; } return 0; }
void CWndGHTeleporter::DrawSlotItems( C2DRender* p2DRender ) { if( !g_pPlayer ) return; LPWNDCTRL wndCtrl = NULL; for( int i=0; i<MAX_TELEPORTER_SLOT; ++i ) { HOUSING_ITEM& kItem = m_cWndItems[ i ]; if( EMPTY_SLOT == kItem.m_nType ) //빈슬롯 continue; ItemProp* pProp = prj.GetItemProp( kItem.m_nIndex ); if( !pProp ) continue; m_pTexture[ i ] = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_ITEM, pProp->szIcon), 0xffff00ff ); if(m_pTexture[ i ] != NULL) { wndCtrl = GetWndCtrl( m_nCtrlId[i] ); if( wndCtrl ) { CPoint pt2 = CPoint( wndCtrl->rect.left, wndCtrl->rect.top ); if( 0 == i ) m_pTexture[ i ]->Render2( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ), 0xffffff00 ); else m_pTexture[ i ]->Render2( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ), 0xffffffff ); } } } }
void CWndBlessingCancel::OnDraw( C2DRender* p2DRender ) { LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_CHANGE ); if(m_pTexture != NULL) m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); }
void CWndAwakening::OnDraw( C2DRender* p2DRender ) { LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_STATIC1 ); if(m_pTexture) m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); }
void CWndSelectAwakeCase::OnDraw( C2DRender* p2DRender ) { if( !g_pPlayer ) return; CItemElem* pItemElem = (CItemElem*)g_pPlayer->GetItemId( m_byObjID ); if( !pItemElem ) { assert( 0 ); return; } m_dwDeltaTime += (g_tmCurrent - m_dwOldTime); m_dwOldTime = g_tmCurrent; if( m_dwDeltaTime > AWAKE_KEEP_TIME ) { //제한시간이 지나면 현재옵션으로 요청 g_DPlay.SendSelectedAwakeningValue( m_byObjID, m_dwSerialNum, _AWAKE_OLD_VALUE ); g_WndMng.PutString( GETTEXT( TID_GAME_REGARDLESS_USE02 ) ); //선택시간 초과 m_dwDeltaTime = 0; Destroy(); } //old OutputOptionString( p2DRender, pItemElem ); //new OutputOptionString( p2DRender, pItemElem, TRUE ); CRect rect = GetWindowRect(); rect.left += 14; rect.top += 174; // 시간 / 100 * 360(총길이) / 600 (총시간) rect.right = LONG(( rect.left + (AWAKE_KEEP_TIME - m_dwDeltaTime) / 100 ) * 0.6f) ; //귀찮으니 걍 바의 길이를 최대초로... rect.bottom = rect.top + 20; // if( m_pTexGuage ) // p2DRender->RenderFillRect( rect, 0xffff0000, m_pTexGuage->m_pTexture ); m_pTheme->RenderGauge(p2DRender, &rect, 0xffffffff, m_pVertexBufferGauge, m_pTexGuage); // draw icon LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_STATIC1 ); assert( wndCtrl ); if(m_pTexture) m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); }
void CWndGHTeleporter::OnDraw(C2DRender* p2DRender) { DrawSlotItems( p2DRender ); if( m_nSelectedSlot > -1 && m_nSelectedSlot < MAX_TELEPORTER_SLOT ) { LPWNDCTRL wndCtrl = NULL; wndCtrl = GetWndCtrl( m_nCtrlId[ m_nSelectedSlot ] ); CRect rect = wndCtrl->rect; p2DRender->RenderFillRect( rect, 0x55ff2277 ); } }
void CWndRegVend::OnLButtonUp( UINT nFlags, CPoint point ) { { CPoint point2 = GetMousePoint(); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_SELLNUM ); CRect rectCtrl = lpWndCtrl->rect; if( rectCtrl.PtInRect( point2 ) ) { m_dwFocus = 0; return; } lpWndCtrl = GetWndCtrl(WIDC_SELLPRI); rectCtrl = lpWndCtrl->rect; if( rectCtrl.PtInRect( point2 ) ) { m_dwFocus = 1; return; } } }
void CWndOptSound::OnDraw( C2DRender* p2DRender ) { CPoint pt; LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); CPoint pt1 = lpWndCtrl->rect.TopLeft(); CPoint pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); p2DRender->RenderFillRect( lpWndCtrl->rect, 0); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[0], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); lpWndCtrl = GetWndCtrl( WIDC_CUSTOM2 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[1], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); }
void CWndLvReqDown::OnDraw( C2DRender* p2DRender ) { ItemProp* pItemProp; if(m_pItemElem != NULL) { pItemProp = m_pItemElem->GetProp(); LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_STATIC1 ); if(m_pTexture != NULL) m_pTexture->Render( p2DRender, CPoint( wndCtrl->rect.left, wndCtrl->rect.top ) ); } }
void CWndItemTransy::Init( CItemElem* pItemElem ) #endif //__SYS_ITEMTRANSY { #ifdef __SYS_ITEMTRANSY m_bMenu = bMenu; #endif // __SYS_ITEMTRANSY for( int i = 0 ; i < 2 ; ++i ) m_pItemElem[i] = NULL; LPWNDCTRL pWndCtrl = NULL; pWndCtrl = GetWndCtrl( WIDC_STATIC1 ); m_Rect[0] = pWndCtrl->rect; pWndCtrl = GetWndCtrl( WIDC_STATIC4 ); m_Rect[1] = pWndCtrl->rect; if( pItemElem ) { m_pItemElem[1] = pItemElem; m_pItemElem[1]->SetExtra( 1 ); } }
void CWndDialog::MakeKeyButton() { DWORD dwMaxHeight = m_pFont->GetMaxHeight() + 6; LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM2 ); CRect rectClient = GetClientRect(); int x = 0, y = 0; #if __VER >= 15 // __IMPROVE_QUEST_INTERFACE BOOL bQuestButtonLinefeedSwitch = FALSE; #endif // __IMPROVE_QUEST_INTERFACE int i; for( i = 0; i < m_nKeyButtonNum; i++ ) { WORDBUTTON* pWndButton = &m_aKeyButton[ i ]; CSize size = m_pFont->GetTextExtent( pWndButton->szWord ); #if __VER >= 15 // __IMPROVE_QUEST_INTERFACE size.cx += 16; #else // __IMPROVE_QUEST_INTERFACE size.cx += 20;//10 * 6; #endif // __IMPROVE_QUEST_INTERFACE //size.cy += 4; pWndButton->bStatus = FALSE; #if __VER >= 15 // __IMPROVE_QUEST_INTERFACE pWndButton->rect = CRect( lpWndCtrl->rect.left + x, lpWndCtrl->rect.top + y * dwMaxHeight, lpWndCtrl->rect.left + x + size.cx, lpWndCtrl->rect.top + y * dwMaxHeight + size.cy ); #else // __IMPROVE_QUEST_INTERFACE pWndButton->rect = CRect( lpWndCtrl->rect.left + x, lpWndCtrl->rect.top + y * dwMaxHeight, lpWndCtrl->rect.left + x + size.cx, lpWndCtrl->rect.top + y * size.cy + dwMaxHeight ); #endif // __IMPROVE_QUEST_INTERFACE if( pWndButton->rect.right > lpWndCtrl->rect.right ) { x = 0, y++; #if __VER >= 15 // __IMPROVE_QUEST_INTERFACE pWndButton->rect = CRect( lpWndCtrl->rect.left + x * size.cx, lpWndCtrl->rect.top + y * dwMaxHeight, lpWndCtrl->rect.left + ( x * size.cx ) + size.cx, lpWndCtrl->rect.top + y * dwMaxHeight + size.cy ); } else if( ( strcmp( pWndButton->szWord, prj.GetText( TID_GAME_NEW_QUEST ) ) == 0 || strcmp( pWndButton->szWord, prj.GetText( TID_GAME_CURRENT_QUEST ) ) == 0 ) && bQuestButtonLinefeedSwitch == FALSE ) { x = 0, ++y; pWndButton->rect = CRect( lpWndCtrl->rect.left + x * size.cx, lpWndCtrl->rect.top + y * dwMaxHeight, lpWndCtrl->rect.left + ( x * size.cx ) + size.cx, lpWndCtrl->rect.top + y * dwMaxHeight + size.cy ); bQuestButtonLinefeedSwitch = TRUE; #else // __IMPROVE_QUEST_INTERFACE pWndButton->rect = CRect( lpWndCtrl->rect.left + x * size.cx, lpWndCtrl->rect.top + y * dwMaxHeight, lpWndCtrl->rect.left + x * size.cx + size.cx, lpWndCtrl->rect.top + y * size.cy + dwMaxHeight ); #endif // __IMPROVE_QUEST_INTERFACE } x += size.cx; } }
void CWndPartyQuick::OnDraw( C2DRender* p2DRender ) { // 파티 정보 출력 //Static control int nMax = g_Party.m_nSizeofMember; int i; CRect rect; SetActiveMember(nMax); for(i=0; i<nMax; i++) { LPWNDCTRL lpWndCtrl = GetWndCtrl( StaticID[i] ); rect = lpWndCtrl->rect; CMover* pObjMember = prj.GetUserByID( g_Party.m_aMember[i].m_uPlayerId ); CString strMember; if(m_pFocusMember == pObjMember) p2DRender->RenderFillRect( rect, 0x60ffff00 ); // 상태에 따라 색 변경 DWORD dwColor = 0xff000000; u_long nLeadMember = g_Party.m_aMember[i].m_uPlayerId; if( IsValidObj(pObjMember) ) { if( pObjMember->GetHitPoint() == 0 ) dwColor = 0xffff0000; // 죽은놈 else if( ((FLOAT)pObjMember->GetHitPoint()) / ((FLOAT)pObjMember->GetMaxHitPoint()) <.1f ) dwColor = 0xffffff00; // HP 10% 이하인놈 if(g_Party.IsLeader(nLeadMember)) //Leader Color Set { dwColor = 0xff1fb72d; //굵게 해야함... #if __VER >= 10 // __LEGEND if(pObjMember->IsMaster()) strMember.Format( prj.GetText( TID_GAME_QUICK_MARK_MASTER ), pObjMember->GetLevel(), pObjMember->GetName() ); else if(pObjMember->IsHero()) #if __VER >= 15 // __HERO129_VER15 // 15차 히어로 레벨확장 strMember.Format( prj.GetText( TID_GAME_QUICK_MARK_HERO ), pObjMember->GetLevel(), pObjMember->GetName() ); #else // 15차 히어로 레벨확장 strMember.Format( prj.GetText( TID_GAME_QUICK_MARK_HERO_BEFORE ), pObjMember->GetName() ); #endif // 15차 히어로 레벨확장 else strMember.Format( "%d. %s", pObjMember->GetLevel(), pObjMember->GetName() ); #else //__LEGEND strMember.Format( "%d. %s", pObjMember->GetLevel(), pObjMember->GetName() ); #endif //__LEGEND } else { #if __VER >= 10 // __LEGEND if(pObjMember->IsMaster())
void CWndDialog::EndSay() { if( m_strArray.GetSize() ) { LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); m_string.Init( m_pFont, &lpWndCtrl->rect ); m_string.SetEditString( *(CEditString*)m_strArray.GetAt( 0 ) );//, 0xff000000 ); m_nCurArray = 0; } MakeKeyButton(); MakeContextButton(); MakeAnswerButton(); UpdateButtonEnable(); }
int CWndGHTeleporter::GetSlotIndexByPoint( const CPoint& point ) { LPWNDCTRL wndCtrl = NULL; CRect rect; int i; for( i = 0; i < MAX_TELEPORTER_SLOT; ++i ) { wndCtrl = GetWndCtrl( m_nCtrlId[i] ); // 슬롯으로 만들어진 윈도우에 대하여 rect = wndCtrl->rect; if( rect.PtInRect( point ) ) return i; } return -1; }
void CWndOptSound::GetRangeSlider(DWORD dwWndId, int &nStep, CPoint point) { LPWNDCTRL lpWndCtrl = GetWndCtrl( dwWndId ); int nWidth = lpWndCtrl->rect.right - lpWndCtrl->rect.left; if( point.x > lpWndCtrl->rect.left+GetStepPos( nStep, nWidth, MAX_SLIDER ).x ) nStep += 1;//nWidth / 10; if( point.x < lpWndCtrl->rect.left+GetStepPos( nStep, nWidth, MAX_SLIDER ).x ) nStep -= 1;//nWidth / 10; if( nStep < 0 ) nStep = 0; if( nStep > MAX_SLIDER ) nStep = MAX_SLIDER; }
void CWndAwakening::OnLButtonDblClk( UINT nFlags, CPoint point ) { if(!m_pItemElem) return; CRect rect; LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_STATIC1 ); rect = wndCtrl->rect; if( rect.PtInRect( point ) ) { m_pItemElem->SetExtra(0); CWndButton* pButton = (CWndButton*)GetDlgItem(WIDC_BUTTON1); pButton->EnableWindow(FALSE); m_pItemElem = NULL; m_pEItemProp = NULL; m_pTexture = NULL; } }
void CWndOptVideo::GetRangeSlider(DWORD dwWndId, int &nStep, CPoint point, int nDivision) { LPWNDCTRL lpWndCtrl = GetWndCtrl( dwWndId ); int nWidth = lpWndCtrl->rect.right - lpWndCtrl->rect.left; if( point.x > lpWndCtrl->rect.left+GetStepPos( nStep, nWidth, nDivision ).x ) nStep += 1;//nWidth / 10; if( point.x < lpWndCtrl->rect.left+GetStepPos( nStep, nWidth, nDivision ).x ) nStep -= 1;//nWidth / 10; if( nStep < 0 ) nStep = 0; if( nStep > nDivision ) nStep = nDivision; }
void CWndBank::OnDraw( C2DRender* p2DRender ) { int nIndex[3] = { WIDC_CUSTOM4, WIDC_CUSTOM5, WIDC_CUSTOM6 }; CString str; for( int i = 0 ; i < 3 ; ++i ) { str.Format( _T( "%d" ),g_pPlayer->m_dwGoldBank[i] ); pCost[i]->SetTitle( str ); if( bUse[i] == FALSE ) { LPWNDCTRL lpWndCtrl = GetWndCtrl( nIndex[i] ); m_pTexture->Render( p2DRender, lpWndCtrl->rect.TopLeft(), 50 ); } } }
BOOL CWndAwakening::OnDropIcon( LPSHORTCUT pShortcut, CPoint point ) { CItemElem* pTempElem; pTempElem = (CItemElem*)g_pPlayer->GetItemId( pShortcut->m_dwId ); int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pTempElem ); if( nRandomOptionKind != CRandomOptionProperty::eAwakening ) { // 적절한 대상이 아닙니다. //g_WndMng.PutString( prj.GetText( TID_GAME_INVALID_TARGET_ITEM ), NULL, prj.GetTextColor( TID_GAME_INVALID_TARGET_ITEM ) ); g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_INVALID_TARGET_ITEM ) ); return FALSE; } if( g_xRandomOptionProperty->GetRandomOptionSize( pTempElem->GetRandomOptItemId() ) > 0 ) { // 이미 각성된 아이템입니다. //g_WndMng.PutString( prj.GetText( TID_GAME_AWAKE_OR_BLESSEDNESS01 ), NULL, prj.GetTextColor( TID_GAME_AWAKE_OR_BLESSEDNESS01 ) ); g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_AWAKE_OR_BLESSEDNESS01 ) ); return FALSE; } if(pTempElem != NULL) { if(m_pItemElem) m_pItemElem->SetExtra(0); m_pItemElem = pTempElem; m_pEItemProp = m_pItemElem->GetProp(); m_pItemElem->SetExtra(m_pItemElem->GetExtra()+1); CWndButton* pButton = (CWndButton*)GetDlgItem(WIDC_BUTTON1); pButton->EnableWindow(TRUE); LPWNDCTRL wndCtrl = GetWndCtrl( WIDC_STATIC1 ); if(m_pEItemProp != NULL) { m_pTexture = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_ITEM, m_pEItemProp->szIcon), 0xffff00ff ); } } return TRUE; }
void CWndGuildMerit::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_LISTBOX1 ); m_wndctrlMerit.Create( WLVS_ICON | WBS_NODRAWFRAME, lpWndCtrl->rect, this, 100 ); // 윈도를 중앙으로 옮기는 부분. CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rectWindow = GetWindowRect(); CPoint point( rectRoot.right - rectWindow.Width(), 110 ); Move( point ); MoveParentCenter(); TCHAR szNumber[ 64 ]; CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT1 ); _itot( 0, szNumber, 10 ); pWndEdit->SetString( szNumber ); pWndEdit->SetFocus(); }
void CCollectingWnd::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); #if __VER >= 11 // __SYS_COLLECTING // 여기에 코딩하세요 if(!g_pPlayer) return; CItemElem* pCollector = g_pPlayer->GetCollector(); if(pCollector) { char szTemp[64]; //CWndStatic* pBettery = (CWndStatic*)GetDlgItem( WIDC_STATIC5 ); CWndStatic* pLevel = (CWndStatic*)GetDlgItem( WIDC_STATIC3 ); CWndStatic* pPic1 = (CWndStatic*)GetDlgItem( WIDC_PIC1 ); CWndStatic* pPic2 = (CWndStatic*)GetDlgItem( WIDC_PIC2 ); LPWNDCTRL lpWndCtrl1 = GetWndCtrl( WIDC_STATIC1 ); LPWNDCTRL lpWndCtrl2 = GetWndCtrl( WIDC_STATIC2 ); LPWNDCTRL lpGauge = GetWndCtrl( WIDC_GAUGE ); CRect rect = GetClientRect(); CRect rectTemp; int nWidthClient= lpGauge->rect.Width(); int nMax = CCollectingProperty::GetInstance()->GetMaxBattery(); int nRatio = pCollector->m_nHitPoint / nMax; int nWidth = nWidthClient * nRatio; int nBtryRemain = pCollector->m_nHitPoint; if(nBtryRemain < 0) nBtryRemain = 0; m_BetteryRect = lpWndCtrl1->rect; m_LevelRect = lpWndCtrl2->rect; if(!m_pVBGauge) m_pApp->m_pd3dDevice->CreateVertexBuffer( sizeof( TEXTUREVERTEX2 ) * 3 * 6, D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, D3DFVF_TEXTUREVERTEX2, D3DPOOL_DEFAULT, &m_pVBGauge, NULL ); m_pTexGauEmptyNormal = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "GauEmptyNormal.bmp" ), 0xffff00ff ); m_pTexGauFillNormal = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "GauEmptyNormal.bmp" ), 0xffff00ff ); /*m_texGauEmptyNormal.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "GauEmptyNormal.bmp" ), 0xffff00ff, TRUE ); m_texGauEmptySmall.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "GauEmptySmall.bmp" ), 0xffff00ff, TRUE ); m_texGauFillNormal.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "GauEmptyNormal.bmp" ), 0xffff00ff, TRUE ); m_texGauFillSmall.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "GauEmptySmall.bmp" ), 0xffff00ff, TRUE ); */ wsprintf(m_pbufText, "%d / %d (%d%%)", nBtryRemain, nMax, nRatio * 100); m_nGWidth = nWidth; rect = lpGauge->rect; rectTemp = rect; rectTemp.right = rectTemp.left + nWidth; ClientToScreen( rectTemp ); //m_bVBGauge = m_pTheme->MakeGaugeVertex( m_pApp->m_pd3dDevice, &rect, 0x640010ff, m_pVBGauge, m_pTexGauFillNormal ); memset(szTemp, 0, 64); sprintf(szTemp, "%d / 5", pCollector->GetAbilityOption()); pLevel->SetTitle(szTemp); m_pTexBatt = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_ICON, _T( "Icon_ColBattery.tga" )), 0xffff00ff ); m_pTexLevel = CWndBase::m_textureMng.AddTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_ICON, _T( "Icon_ColLevel.tga" )), 0xffff00ff ); /* if(!m_pModel) m_pModel = new CModelObject; m_pModel = (CModelObject*)prj.m_modelMng.LoadModel( g_Neuz.m_pd3dDevice, OT_ITEM, pCollector->m_dwItemId ); m_pModel->InitDeviceObjects( g_Neuz.GetDevice() );*/ } // 윈도를 중앙으로 옮기는 부분. CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rectWindow = GetWindowRect(); CPoint point( rectRoot.right - rectWindow.Width(), 110 ); Move( point ); #endif }
void CWndChat::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); #ifdef __CHAT_V19 CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 ); CWndButton* pWndLog = (CWndButton*)GetDlgItem( WIDC_CHECK3 ); CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK ); CWndButton* pWndHelp = (CWndButton*)GetDlgItem( WIDC_HELP ); CWndButton* pWndCheck = (CWndButton*)GetDlgItem( WIDC_RADIO6 ); pWndLock->SetVisible( false ); pWndLog->SetVisible( true ); pWndMoveLock->SetVisible( false ); pWndHelp->SetVisible( false ); pWndCheck->SetVisible(false); #endif //__CHAT_V19 //AddWndStyle( WBS_THICKFRAME ); m_timerDobe.Set( SEC( 5 ) ); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_MACRO_CHAT ); LPWNDCTRL lpWndText = GetWndCtrl( WIDC_CUSTOM1 ); m_wndMacroChat.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_MACRO_CHAT ); m_wndMacroChat.AddWndStyle( WBS_NODRAWFRAME ); lpWndCtrl = GetWndCtrl( WIDC_EDIT ); m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_EDIT ); m_wndText.Create( WBS_NOFRAME | WBS_NODRAWFRAME | WBS_VSCROLL, lpWndText->rect, this, WIDC_TEXT ); CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT ); CWndEdit* pWndHead = (CWndEdit*)GetDlgItem( WIDC_HEAD ); CWndEdit* pWndEdit = (CWndEdit*)GetDlgItem( WIDC_EDIT ); if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER ) ) { pWndText->m_bEnableClipboard = TRUE; pWndHead->m_bEnableClipboard = TRUE; pWndEdit->m_bEnableClipboard = TRUE; } pWndEdit->SetNativeMode(); #if __VER >= 11 // __CSC_VER11_1 CRect rectEdit = m_wndEdit.GetWndRect(); rectEdit.left = rectEdit.left - 90; m_wndEdit.SetWndRect( rectEdit ); CRect customRect = lpWndCtrl->rect; CWndCustom* pCustom = (CWndCustom*)GetDlgItem(WIDC_MACRO_CHAT); if(pCustom) #ifdef __CHAT_V19 pCustom->Move(customRect.TopLeft().x - 112, customRect.TopLeft().y - 2); #else pCustom->Move(customRect.TopLeft().x - 119, customRect.TopLeft().y); pWndEdit->Move(customRect.TopLeft().x + 105, customRect.bottom + 30); #endif //__CHAT_V19 if(pWndHead) { pWndHead->EnableWindow(FALSE); pWndHead->SetVisible(FALSE); } #endif //__CSC_VER11_1 if( g_Option.m_nInstantHelp ) { CScript s; s.Load( MakePath( DIR_CLIENT, "InstantHelp.inc" ) ); s.GetToken(); while( s.tok != FINISHED ) { m_strArray.Add( s.Token ); s.GetToken(); } } //m_strArray. /* CRect rect = GetClientRect(); rect.top = rect.bottom - 20; rect.right = 70; rect.left += 5; rect.DeflateRect( 1, 1 ); m_wndBeginning.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1000); rect = GetClientRect(); rect.top = rect.bottom - 20; rect.left = 75; rect.right -= 134; rect.DeflateRect( 1, 1 ); //rect.left = rect.Width() * 20 / 100; //m_wndEdit.AddWndStyle( WBS_NODRAWFRAME ); m_wndEdit.Create( g_Neuz.GetSafeHwnd(), WBS_NODRAWFRAME, rect, this, 1001 ); */ // m_texEdit.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndChat2.bmp" ), 0xffff00ff, TRUE ); /* rect = GetClientRect(); rect.top = rect.bottom - 20; rect.left = rect.right - 134; rect.right = r mnnnnft + 15; rect.DeflateRect( 1, 1 ); m_wndShout.Create( " ", 0, rect, this, 1010 ); rect = GetClientRect(); rect.top = rect.bottom - 20; rect.left = rect.right - 117; rect.right = rect.left + 15; rect.DeflateRect( 1, 1 ); m_wndParty.Create( " ", 0, rect, this, 1011 ); */ /* m_wndText.AddWndStyle( WBS_VSCROLL ); m_wndText.AddWndStyle( WBS_NOFRAME ); m_wndText.AddWndStyle( WBS_NODRAWFRAME ); m_wndText.Create( 0, rect, this, 1003 ); m_wndText.SetFont( g_Neuz.m_Theme.m_pFontChat ); m_wndText.m_string.Reset( m_pFont, &rect); */ /* rect = GetClientRect(); rect.left = rect.right - 100; //rect.bottom -= 80; rect.DeflateRect( 1, 1 ); m_wndReceiver.AddWndStyle( WBS_VSCROLL ); m_wndReceiver.AddWndStyle( WBS_NOFRAME ); m_wndReceiver.Create( EBS_AUTOVSCROLL, rect, this, 1002 ); m_wndReceiver.AddString( "Vampyre\n" ); m_wndReceiver.AddString( "Xuzhu\n" ); m_wndReceiver.AddString( "Zodiacus\n" ); m_wndReceiver.AddString( "Jeff\n" ); m_wndReceiver.m_string.Reset( m_pFont, &rect); */ //CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT ); SetChannel(); CWndButton* pWndRadio1 = (CWndButton*)GetDlgItem( WIDC_RADIO1 ); CWndButton* pWndRadio2 = (CWndButton*)GetDlgItem( WIDC_RADIO2 ); CWndButton* pWndRadio3 = (CWndButton*)GetDlgItem( WIDC_RADIO3 ); CWndButton* pWndRadio4 = (CWndButton*)GetDlgItem( WIDC_RADIO4 ); CWndButton* pWndRadio5 = (CWndButton*)GetDlgItem( WIDC_RADIO5 ); if( m_nChatChannel == CHATSTY_GENERAL ) pWndRadio1->SetCheck( TRUE ); else if( m_nChatChannel == CHATSTY_WHISPER ) pWndRadio2->SetCheck( TRUE ); else if( m_nChatChannel == CHATSTY_SHOUT ) pWndRadio3->SetCheck( TRUE ); else if( m_nChatChannel == CHATSTY_PARTY ) pWndRadio4->SetCheck( TRUE ); else if( m_nChatChannel == CHATSTY_GUILD ) pWndRadio5->SetCheck( TRUE ); //pWndText->m_string.Init( //pWndText->m_string = g_WndMng.m_ChatString; pWndText->m_nLineSpace = 2; //pWndText->m_string.Reset( m_pFont, &pWndText->GetClientRect() ); //pWndText-> /* CRect rect = GetClientRect(); rect.bottom -= 20; rect.right -= 0;//100; rect.DeflateRect( 1, 1); m_wndText.SetWndRect( rect ); */ //LPBYTE m_wndChatEdit[3]; //CSize sizeWndChatEdit[3]; #if __VER >= 11 // __CSC_VER11_1 LoadTGA( MakePath( DIR_THEME, "WndChatEdit00_1.tga" ), &m_wndChatEdit[0] ); #else //__CSC_VER11_1 LoadTGA( MakePath( DIR_THEME, "WndChatEdit00.tga" ), &m_wndChatEdit[0] ); #endif //__CSC_VER11_1 LoadTGA( MakePath( DIR_THEME, "WndChatEdit01.tga" ), &m_wndChatEdit[1] ); #ifdef __LANG_IME_0327 LoadTGA( MakePath( DIR_THEME, ::GetLanguage(), "WndChatEdit02.tga" ), &m_wndChatEdit[2] ); #else // __LANG_IME_0327 LoadTGA( MakePath( DIR_THEME, "WndChatEdit02.tga" ), &m_wndChatEdit[2] ); #endif // __LANG_IME_0327 if( m_wndChatEdit[2].lpData == NULL ) { Error( "CWndChat::OnInitialUpdate() m_wndChatEdit[2].lpData = NULL" ); return; } /* CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rectWindow = GetWindowRect(); CPoint point( 154, rectRoot.bottom - rectWindow.Height() ); Move( point ); */ #ifndef __CHAT_V19 CWndButton* pWndLock = (CWndButton*)GetDlgItem( WIDC_CHECK1 ); pWndLock->SetCheck( m_bChatLock ); CWndButton* pWndMoveLock = (CWndButton*)GetDlgItem( WIDC_MOVELOCK ); pWndMoveLock->SetCheck( m_bMoveLock ); #endif //__CHAT_V19 CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rect = GetWindowRect(); int nWidth = rect.Width(); int nHeight = rect.Height(); int x = 0;//rectRoot.left + (rectRoot.Width() / 2) - (nWidth / 2); int y = rectRoot.bottom - nHeight; CPoint point( x, y ); Move( point ); m_timerInputTimeOut.Set( SEC( 300 ) ); #if __VER >= 8 //__Y_CHAT_SYSTEM_8 if( g_WndMng.m_pWndChatLog == NULL ) { g_WndMng.m_pWndChatLog = new CWndChatLog; if( g_WndMng.m_pWndChatLog ) { g_WndMng.m_pWndChatLog->Initialize( NULL, APP_CHAT_LOG ); CRect rectRoot = m_pWndRoot->GetLayoutRect(); CRect rect = GetWindowRect(TRUE); CRect rect2 = g_WndMng.m_pWndChatLog->GetClientRect(TRUE); int x = 0; int y = rect.top; if( (rect.right+rect2.Width()) < rectRoot.right ) x = rect.right; else x = (rect.left - rect2.Width() ); CPoint point( x, y ); g_WndMng.m_pWndChatLog->Move( point ); g_WndMng.m_pWndChatLog->SetVisible(FALSE); } } if( g_WndMng.m_pWndChatLog ) { CWndButton* pWndCheck3 = (CWndButton*)GetDlgItem( WIDC_CHECK3 ); if( pWndCheck3 ) pWndCheck3->SetCheck(g_WndMng.m_pWndChatLog->m_bVisible); } #endif //__Y_CHAT_SYSTEM_8 }
// 하얀색 대화영역에 나오는 버튼 // AddAnswer로 추가 void CWndDialog::MakeAnswerButton() { m_bWordButtonEnable = FALSE; if( m_nCurArray == m_strArray.GetSize() - 1 ) { DWORD dwMaxHeight = m_pFont->GetMaxHeight() + 6; LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); int yBegin = lpWndCtrl->rect.top + m_string.GetLineCount() * dwMaxHeight + dwMaxHeight; int x = 0, y = 0;// int nButtonNum = 0; int i; for( i = 0; i < m_nWordButtonNum; i++ ) { WORDBUTTON* pWordButton = &m_aWordButton[ i ]; if( strcmp( pWordButton->szWord, "__YES__" ) == 0 ) { nButtonNum++; continue; } if( strcmp( pWordButton->szWord, "__NO__" ) == 0 ) { nButtonNum++; continue; } if( strcmp( pWordButton->szWord, "__CANCEL__" ) == 0 ) { nButtonNum++; continue; } if( strcmp( pWordButton->szWord, "__OK__" ) == 0 ) { nButtonNum++; continue; } CSize size = m_pFont->GetTextExtent( pWordButton->szWord ); size.cx += 10; pWordButton->rect = CRect( lpWndCtrl->rect.left + x, yBegin + y * dwMaxHeight, lpWndCtrl->rect.left + x + size.cx, yBegin + y * size.cy + dwMaxHeight ); if( pWordButton->rect.right > lpWndCtrl->rect.right ) { x = 0, y++; //pWordButton->rect = CRect( lpWndCtrl->rect.left + x * size.cx, lpWndCtrl->rect.top + y * dwMaxHeight, // lpWndCtrl->rect.left + x * size.cx + size.cx, lpWndCtrl->rect.top + y * size.cy + dwMaxHeight ); pWordButton->rect = CRect( lpWndCtrl->rect.left + x, yBegin + y * dwMaxHeight, lpWndCtrl->rect.left + x + size.cx, yBegin + y * size.cy + dwMaxHeight ); } x += size.cx; } x = lpWndCtrl->rect.left + ( lpWndCtrl->rect.Width() / 2 ) - ( ( 90 * nButtonNum ) / 2 ); CRect rect; CString strTexture; int nWndId = 0; int j = 0; for( i = 0; i < 6; i++ ) SAFE_DELETE( m_apWndAnswer[ i ] ) for( i = 0; i < m_nWordButtonNum; i++ ) { WORDBUTTON* pWordButton = &m_aWordButton[ i ]; #if __VER >= 15 // __IMPROVE_QUEST_INTERFACE rect = CRect( x, lpWndCtrl->rect.bottom - 20, x + 70, lpWndCtrl->rect.bottom + 10 ); #else // __IMPROVE_QUEST_INTERFACE rect = CRect( x, lpWndCtrl->rect.bottom - 10, x + 70, lpWndCtrl->rect.bottom + 10 ); #endif // __IMPROVE_QUEST_INTERFACE if( strcmp( pWordButton->szWord, "__YES__" ) == 0 ) { nWndId = WIDC_YES; strTexture = "buttYes.tga"; } else if( strcmp( pWordButton->szWord, "__NO__" ) == 0 ) { nWndId = WIDC_NO; strTexture = "buttNo.tga"; } else if( strcmp( pWordButton->szWord, "__CANCEL__" ) == 0 ) { nWndId = WIDC_CANCEL; strTexture = "buttCancel.tga"; } else if( strcmp( pWordButton->szWord, "__OK__" ) == 0 ) { nWndId = WIDC_OK; strTexture = "buttOk.tga"; } if( nWndId ) { m_apWndAnswer[ j ] = new CWndAnswer; m_apWndAnswer[ j ]->Create( "", WBS_CHILD, rect, this, nWndId ); m_apWndAnswer[ j ]->SetTexture( D3DDEVICE, MakePath( DIR_THEME, strTexture ), 1 ); m_apWndAnswer[ j ]->FitTextureSize(); m_apWndAnswer[ j ]->m_pWordButton = (WORDBUTTON*) pWordButton; j++; } x += 90; } m_bWordButtonEnable = TRUE; }
void CWndOptVideo::OnDraw( C2DRender* p2DRender ) { CPoint pt; #ifdef __SFX_OPT LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM2 ); CPoint pt1 = lpWndCtrl->rect.TopLeft(); CPoint pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); p2DRender->RenderFillRect( lpWndCtrl->rect, 0); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[0], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 5 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); lpWndCtrl = GetWndCtrl( WIDC_CUSTOM3 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[1], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 1 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); #else LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM2 ); CPoint pt1 = lpWndCtrl->rect.TopLeft(); CPoint pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); p2DRender->RenderFillRect( lpWndCtrl->rect, 0); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[0], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); lpWndCtrl = GetWndCtrl( WIDC_CUSTOM3 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[1], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); #endif #if __VER >= 8 //__Y_GAMMA_CONTROL_8 lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[2], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; //m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); lpWndCtrl = GetWndCtrl( WIDC_CUSTOM4 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[3], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; //m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); lpWndCtrl = GetWndCtrl( WIDC_CUSTOM5 ); pt1 = lpWndCtrl->rect.TopLeft(); pt2 = lpWndCtrl->rect.BottomRight() - lpWndCtrl->rect.TopLeft(); m_Texture.Render( p2DRender, pt1, pt2 ); pt = pt1; pt.x += GetStepPos( m_nStep[4], lpWndCtrl->rect.right - lpWndCtrl->rect.left, 10 ).x; //m_TexturePt.Render( p2DRender, pt, CPoint( 16, 16 ) ); #endif //__Y_GAMMA_CONTROL_8 }
void CWndGuildBank::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 #if __VER >= 11 // __SYS_POCKET if(GetWndBase( APP_BAG_EX )) GetWndBase( APP_BAG_EX )->Destroy(); #endif if( g_WndMng.m_pWndTrade || g_WndMng.m_pWndShop || g_WndMng.m_pWndBank || g_WndMng.GetWndVendorBase() ) { Destroy(); return; } CWndStatic* pCost = (CWndStatic*) GetDlgItem( WIDC_GUILDBANK_NUM ); pCost->AddWndStyle(WSS_MONEY); CWndTabCtrl* pTabCtrl = reinterpret_cast<CWndTabCtrl*>(GetDlgItem(WIDC_TABCTRL1)); m_wndItemCtrl.Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 11 ); m_wndItemCtrl.InitItem( &g_pPlayer->GetGuild()->m_GuildBank, APP_GUILD_BANK ); WTCITEM tabTabItem; tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_ITEM);//"아이템"; tabTabItem.pWndBase = &m_wndItemCtrl; pTabCtrl->InsertItem( 0, &tabTabItem ); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); m_wndGold.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_CUSTOM1 ); m_wndGold.AddWndStyle( WBS_NODRAWFRAME ); CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->IsMaster( g_pPlayer->m_idPlayer ) == FALSE ) // 길마가 아니면 { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON2); // 망토제작 버튼을 disable 시킨다. pWndButt->EnableWindow( FALSE ); } } #ifdef __GLDISABLE CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON1); pWndButt->EnableWindow( FALSE ); #endif CWndInventory* pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory = pWndInventory->GetWindowRect( TRUE ); CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; CRect rect = GetWindowRect( TRUE ); if( ptInventory.x > rect.Width() / 2 ) ptMove = ptInventory - CPoint( rect.Width(), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); if( pGuild ) { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON3); #if __VER >= 8 // __GUILDCOMBAT_85 pWndButt->EnableWindow(FALSE); pWndButt->SetVisible(FALSE); #else // __VER >= 8 if( g_GuildCombatMng.m_uWinGuildId == pGuild->GetGuildId() ) pWndButt->EnableWindow(TRUE); else pWndButt->EnableWindow(FALSE); #endif // __VER >= 8 } #if __VER >= 11 // __GUILD_BANK_LOG CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); pWndButtLog->EnableWindow(TRUE); pWndButtLog->SetVisible(TRUE); #else //__GUILD_BANK_LOG //CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); //pWndButtLog->EnableWindow(FALSE); //pWndButtLog->SetVisible(FALSE); #endif //__GUILD_BANK_LOG }
void CWndChangeSex::OnDraw( C2DRender* p2DRender ) { if( g_pPlayer == NULL ) return; LPDIRECT3DDEVICE9 pd3dDevice = p2DRender->m_pd3dDevice; pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW ); pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetSamplerState ( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR ); pd3dDevice->SetSamplerState ( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetRenderState( D3DRS_AMBIENT, D3DCOLOR_ARGB( 255, 255,255,255) ); CRect rect = GetClientRect(); // 뷰포트 세팅 D3DVIEWPORT9 viewport; // 월드 D3DXMATRIXA16 matWorld; D3DXMATRIXA16 matScale; D3DXMATRIXA16 matRot; D3DXMATRIXA16 matTrans; // 카메라 D3DXMATRIX matView; D3DXVECTOR3 vecLookAt( 0.0f, 0.0f, 3.0f ); D3DXVECTOR3 vecPos( 0.0f, 0.7f, -3.5f ); D3DXMatrixLookAtLH( &matView, &vecPos, &vecLookAt, &D3DXVECTOR3(0.0f,1.0f,0.0f) ); pd3dDevice->SetTransform( D3DTS_VIEW, &matView ); // 왼쪽 원본 모델 랜더링 { LPWNDCTRL lpFace = GetWndCtrl( WIDC_STATIC1 ); viewport.X = p2DRender->m_ptOrigin.x + lpFace->rect.left;//2; viewport.X -= 6; viewport.Y = p2DRender->m_ptOrigin.y + lpFace->rect.top;//5; viewport.Width = lpFace->rect.Width();//p2DRender->m_clipRect.Width(); viewport.Height = lpFace->rect.Height();// - 10;//p2DRender->m_clipRect.Height(); viewport.MinZ = 0.0f; viewport.MaxZ = 1.0f; pd3dDevice->SetViewport(&viewport); pd3dDevice->Clear(0, NULL, D3DCLEAR_ZBUFFER, 0xffa08080, 1.0f, 0 ) ; D3DXMATRIX matProj; D3DXMatrixIdentity( &matProj ); FLOAT fAspect = ((FLOAT)viewport.Width) / (FLOAT)viewport.Height; /* D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4.0f, fAspect, CWorld::m_fNearPlane - 0.01f, CWorld::m_fFarPlane ); pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); */ FLOAT fov = D3DX_PI/4.0f;//796.0f; FLOAT h = cos(fov/2) / sin(fov/2); FLOAT w = h * fAspect; D3DXMatrixOrthoLH( &matProj, w, h, CWorld::m_fNearPlane - 0.01f, CWorld::m_fFarPlane ); pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); D3DXMatrixIdentity(&matScale); D3DXMatrixIdentity(&matTrans); D3DXMatrixIdentity(&matWorld); D3DXMatrixScaling(&matScale, 4.5f, 4.5f, 4.5f); if( g_pPlayer->GetSex() == SEX_MALE ) D3DXMatrixTranslation(&matTrans,0.0f,-5.6f,0.0f); else D3DXMatrixTranslation(&matTrans,0.0f,-5.8f,0.0f); D3DXMatrixMultiply(&matWorld,&matWorld,&matScale); D3DXMatrixMultiply(&matWorld, &matWorld, &matTrans ); pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); // 랜더링 pd3dDevice->SetRenderState( D3DRS_FOGENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE );//m_bViewLight ); ::SetLight( FALSE ); ::SetFog( FALSE ); SetDiffuse( 1.0f, 1.0f, 1.0f ); SetAmbient( 1.0f, 1.0f, 1.0f ); /* m_pModel->GetObject3D(PARTS_HAIR)->m_fAmbient[0] = 0.5f; m_pModel->GetObject3D(PARTS_HAIR)->m_fAmbient[1] = 0.5f; m_pModel->GetObject3D(PARTS_HAIR)->m_fAmbient[2] = 0.5f; */ D3DXVECTOR4 vConst( 1.0f, 1.0f, 1.0f, 1.0f ); #ifdef __YENV D3DXVECTOR3 vDir( 0.0f, 0.0f, 1.0f ); SetLightVec( vDir ); g_Neuz.m_pEffect->SetVector( g_Neuz.m_hvFog, &vConst ); #else //__YENV pd3dDevice->SetVertexShaderConstantF( 95, (float*)&vConst, 1 ); #endif //__YENV ::SetTransformView( matView ); ::SetTransformProj( matProj ); m_pModel->Render( p2DRender->m_pd3dDevice, &matWorld ); } }
void CCollectingWnd::OnDraw( C2DRender* p2DRender ) { #if __VER >= 11 // __SYS_COLLECTING //if( m_pElem == NULL) //return; if(!g_pPlayer) return; LPWNDCTRL wndCtrlPic1 = GetWndCtrl( WIDC_PIC1 ); LPWNDCTRL wndCtrlPic2 = GetWndCtrl( WIDC_PIC2 ); if(m_pTexBatt) { m_pTexBatt->Render(p2DRender, wndCtrlPic2->rect.TopLeft()); } if(m_pTexLevel) { m_pTexLevel->Render(p2DRender, wndCtrlPic1->rect.TopLeft()); } CItemElem* pCollector = g_pPlayer->GetCollector(); if(pCollector) { LPWNDCTRL lpGauge = GetWndCtrl( WIDC_GAUGE ); CRect rect = GetClientRect(); CRect rectTemp; int nWidthClient = lpGauge->rect.Width(); int nWidth; int nMax = CCollectingProperty::GetInstance()->GetMaxBattery(); float fRatio = (float)pCollector->m_nHitPoint / (float)nMax; int nBtryRemain = pCollector->m_nHitPoint; if(nBtryRemain < 0) nBtryRemain = 0; nWidth = (int)( nWidthClient * fRatio ); wsprintf(m_pbufText, "%d / %d (%d%%)", nBtryRemain, nMax, (int)(fRatio * 100)); m_nGWidth = nWidth; if(m_nGWidth >= 2) { rect = lpGauge->rect; rectTemp = rect; rectTemp.right = rectTemp.left + nWidth; ClientToScreen( rectTemp ); //m_pTheme->MakeGaugeVertex( m_pApp->m_pd3dDevice, &rect, D3DCOLOR_ARGB( 200, 255, 255, 255 ), m_pVBGauge, m_pTexGauFillNormal ); //m_pTheme->RenderGauge( p2DRender->m_pd3dDevice, m_pVBGauge, m_pTexGauEmptyNormal ); m_pTheme->MakeGaugeVertex( m_pApp->m_pd3dDevice, &rectTemp, D3DCOLOR_ARGB( 128, 0, 0, 255 ), m_pVBGauge, m_pTexGauFillNormal ); m_pTheme->RenderGauge( p2DRender->m_pd3dDevice, m_pVBGauge, m_pTexGauEmptyNormal ); } } LPWNDCTRL lpGauge = GetWndCtrl( WIDC_GAUGE ); DWORD dwColor = D3DCOLOR_ARGB(255, 0, 0, 255 ); p2DRender->TextOut( lpGauge->rect.left + 5, lpGauge->rect.top, m_pbufText, dwColor, 0x00000000 ); /* D3DXMATRIX matView; D3DXMATRIX matWorld; D3DXMATRIX matScale; D3DXMATRIX matRot; D3DXMATRIX matTrans; D3DXVECTOR3 vecPos; D3DXVECTOR3 vecLookAt; float fScale = 1.5f; D3DXVECTOR3 vSrc, vLocal = D3DXVECTOR3( 0, 0, 0 ); CPoint point = CPoint( GetWndCtrl( WIDC_CUSTOM1 )->rect.left-12, GetWndCtrl( WIDC_CUSTOM1 )->rect.top-6 ); CRect rect = GetClientRect(); int nWidthClient = GetClientRect().Width() - 110; CRect rectTemp; LPWNDCTRL lpFace = GetWndCtrl( WIDC_CUSTOM1 ); LPDIRECT3DDEVICE9 pd3dDevice = p2DRender->m_pd3dDevice; // 뷰포트 세팅 D3DVIEWPORT9 viewport; pd3dDevice->Clear(0, NULL, D3DCLEAR_ZBUFFER, 0xffa08080, 1.0f, 0 ) ; pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW ); pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR ); pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR ); pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE ); viewport.X = p2DRender->m_ptOrigin.x + lpFace->rect.left; viewport.Y = p2DRender->m_ptOrigin.y + lpFace->rect.top; viewport.Width = lpFace->rect.Width(); viewport.Height = lpFace->rect.Height(); viewport.MinZ = 0.0f; viewport.MaxZ = 1.0f; pd3dDevice->SetViewport(&viewport); // 프로젝션 D3DXMATRIX matProj; D3DXMatrixIdentity( &matProj ); FLOAT fAspect = ((FLOAT)viewport.Width) / (FLOAT)viewport.Height; FLOAT fov = D3DX_PI/4.0f; FLOAT h = cos(fov / 2) / sin(fov / 2); FLOAT w = h * fAspect; D3DXMatrixOrthoLH( &matProj, w, h, CWorld::m_fNearPlane - 0.01f, CWorld::m_fFarPlane ); pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj ); D3DXMatrixIdentity(&matWorld); D3DXMatrixIdentity(&matRot); D3DXMatrixIdentity(&matTrans); pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); vecPos.x = 0.0f; vecPos.y = 1.5f; vecPos.z = -1.5f; vecLookAt.x = 0.0f; vecLookAt.y = 0.0f; vecLookAt.z = 1.0f; D3DXMatrixLookAtLH( &matView, &vecPos, &vecLookAt, &D3DXVECTOR3(0.0f,1.0f,0.0f) ); pd3dDevice->SetTransform( D3DTS_VIEW, &matView ); pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld ); // 랜더링 pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); // CWorld::m_dwBgColor pd3dDevice->Clear(0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_COLORVALUE(50,50,50,0), 1.0f, 0 ) ; pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_COLORVALUE(30,30,30,0), 1.0f, 0 ) ; ::SetTransformView( matView ); ::SetTransformProj( matProj ); SetDiffuse( 0.0f, 0.0f, 0.0f ); SetAmbient( 1.0f, 1.0f, 1.0f ); D3DXMatrixRotationY(&matRot, m_fAngle); m_matModel = matRot; D3DXMatrixScaling(&matScale, fScale, fScale, fScale); D3DXMatrixMultiply(&matWorld,&matWorld,&matScale); D3DXMatrixMultiply(&matWorld, &matWorld,&matRot); D3DXMatrixMultiply(&matWorld, &matWorld, &matTrans ); */ /* 이펙트.. 문제가 좀 있어서 요구하기 전까지는 일단 보류 if(m_pSfx) { CMover* pPlayer = CMover::GetActiveMover(); D3DXVECTOR3 vAdd, vLeft; ((CModelObject *)pPlayer->m_pModel)->GetForcePos( &m_pSfx->m_vPos, 0, PARTS_RWEAPON, matWorld); D3DXVec3Scale(&vLeft, &D3DXVECTOR3(m_matModel._11, m_matModel._21, m_matModel._31), 1.0f); D3DXVec3Normalize(&vLeft, &vLeft); D3DXVec3Scale(&vAdd, &vLeft, 0.9f); D3DXVec3Add(&m_pSfx->m_vPos, &m_pSfx->m_vPos, &vAdd); m_pSfx->m_vPos.y -= 0.2f; m_pSfx->m_matScale = matScale; m_pSfx->m_vScale = D3DXVECTOR3(fScale, fScale, fScale); m_pSfx->m_vRotate = D3DXVECTOR3(D3DXToDegree(m_fAngle), D3DXToDegree(m_fAngle), D3DXToDegree(m_fAngle)); if( m_pSfx->Process() ) m_pSfx->m_nCurFrame = 0; if( m_pSfx->m_nCurFrame >= 145 ) m_pSfx->m_nCurFrame = 30; m_pSfx->Render(pd3dDevice, &matWorld); } *//* matWorld._42 = 0.4f; if(m_pModel) m_pModel->Render(pd3dDevice, &matWorld); matWorld._42 = 0.0f; pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE ); pd3dDevice->SetRenderState( D3DRS_FOGENABLE, FALSE ); m_fAngle += 0.01f; if(m_fAngle > 360.0f) m_fAngle -= 360.0f; */ #endif }
void CWndSummonAngel::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 //Ctrl Initialize. m_pText = (CWndText *)GetDlgItem( WIDC_TEXT1 ); m_pStatic[0] = (CWndStatic *)GetDlgItem( WIDC_STATIC_RED ); m_pStatic[1] = (CWndStatic *)GetDlgItem( WIDC_STATIC_BLUE ); m_pStatic[2] = (CWndStatic *)GetDlgItem( WIDC_STATIC_GREEN ); SummonRateRefresh(); int StaticID[20] = {WIDC_STATIC11, WIDC_STATIC12, WIDC_STATIC13, WIDC_STATIC14, WIDC_STATIC15, WIDC_STATIC16, WIDC_STATIC17, WIDC_STATIC18, WIDC_STATIC19, WIDC_STATIC20, WIDC_STATIC21, WIDC_STATIC22, WIDC_STATIC23, WIDC_STATIC24, WIDC_STATIC25, WIDC_STATIC26, WIDC_STATIC27, WIDC_STATIC28, WIDC_STATIC29, WIDC_STATIC30}; for(int i=0; i<MAX_MATDIE; i++) { m_MatDie[i].wndCtrl = GetWndCtrl( StaticID[i] ); m_MatDie[i].staticNum = StaticID[i]; m_MatDie[i].isUse = FALSE; m_MatDie[i].pItemElem = NULL; m_ItemInfo[i].extracount = 0; m_ItemInfo[i].itemid = -1; } //Text Setting CWndStatic* pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC3 ); pStatic->SetTitle(prj.GetText(TID_GAME_REDANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC4 ); pStatic->SetTitle(prj.GetText(TID_GAME_BLUEANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC5 ); pStatic->SetTitle(prj.GetText(TID_GAME_GREENANGEL_RATE)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC6 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO1)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC1 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO2)); pStatic = (CWndStatic *)GetDlgItem( WIDC_STATIC7 ); pStatic->SetTitle(prj.GetText(TID_GAME_WHITEANGEL_INFO3)); //France Button Image CWndButton* pButton = (CWndButton*)GetDlgItem( WIDC_START ); if(::GetLanguage() == LANG_FRE) pButton->SetTexture(g_Neuz.m_pd3dDevice, MakePath( "Theme\\", ::GetLanguage(), _T( "ButtNormal00.tga" ) ), TRUE); //Window Position m_pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory; if(m_pWndInventory != NULL) { m_pWndInventory->m_wndItemCtrl.SetDieFlag(TRUE); rectInventory = m_pWndInventory->GetWindowRect( TRUE ); } CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; CRect rect = GetWindowRect( TRUE ); if( ptInventory.x > rect.Width() / 2 ) ptMove = ptInventory - CPoint( rect.Width(), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); }