Code:
void CWndWikipediaJob::OnDraw( C2DRender* p2DRender )
{
CWndNeuz::OnDraw( p2DRender );
LPWNDCTRL pDrawCtrl = GetWndCtrl( WIDC_STATIC2 );
if( pDrawCtrl )
{
JobProp* pProperty = prj.GetJobProp(m_nJob);
if( pProperty )
{
CString strJob;
strJob.Format( "%s.tga", pProperty->szJobIcon );
CTexture pTex;
pTex.LoadTexture(g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, strJob ), 0xffff00ff, TRUE);
pTex.Render( p2DRender, CPoint( pDrawCtrl->rect.left + 3, pDrawCtrl->rect.top + 3 ) );
}
}
}
FullQuote:
2021/ 8/16 00:34:47 ::LoadTextureFromRes : Theme\Default\.tga not found
2021/ 8/16 00:34:47 CTexture::LoadTexture : Theme\Default\.tga read error
Code:
#ifdef __WIKIPEDIA_JOB
CWndWikipediaJob::CWndWikipediaJob( void )
{
m_nJob = JOB_VAGRANT; // vagrant
m_pCreate = NULL;
}
CWndWikipediaJob::~CWndWikipediaJob( void )
{
SAFE_DELETE( m_pCreate );
}
BOOL CWndWikipediaJob::Initialize( CWndBase* pWndParent, DWORD dwType )
{
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_WIKIPEDIA_JOB, 0, CPoint( 0, 0 ), pWndParent );
}
void CWndWikipediaJob::OnInitialUpdate( void )
{
CWndNeuz::OnInitialUpdate();
SetJob( g_pPlayer->GetJob() );
MoveParentCenter();
}
void CWndWikipediaJob::OnDraw( C2DRender* p2DRender )
{
CWndNeuz::OnDraw( p2DRender );
LPWNDCTRL pDrawCtrl = GetWndCtrl( WIDC_STATIC2 );
if( pDrawCtrl )
{
JobProp* pProperty = prj.GetJobProp(m_nJob);
if( pProperty )
{
CString strJob;
strJob.Format( "%s.tga", pProperty->szJobIcon );
CTexture pTex;
pTex.LoadTexture(g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, strJob ), 0xffff00ff, TRUE);
pTex.Render( p2DRender, CPoint( pDrawCtrl->rect.left + 3, pDrawCtrl->rect.top + 3 ) );
}
}
}
void CWndWikipediaJob::OnSize( UINT nType, int cx, int cy )
{
CWndNeuz::OnSize( nType, cx, cy );
}
BOOL CWndWikipediaJob::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
{
return CWndNeuz::OnCommand( nID, dwMessage, pWndBase );
}
BOOL CWndWikipediaJob::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
switch( nID )
{
case WIDC_BUTTON1:
if( --m_nJob < JOB_VAGRANT )
{
#ifdef __4TH_JOBS
m_nJob = JOB_ELEMENTORLORD_HERO_ULTIMATE;
#elif defined (__3RD_LEGEND16)
m_nJob = JOB_ELEMENTORLORD_HERO;
#else // __3RD_LEGEND16
m_nJob = JOB_ELEMENTOR_HERO;
#endif // __3RD_LEGEND16
}
if( m_nJob == JOB_PUPPETEER )
m_nJob = JOB_MAGICIAN;
if( m_nJob == JOB_GATEKEEPER || m_nJob == JOB_DOPPLER )
m_nJob = JOB_ELEMENTOR;
Refresh();
break;
case WIDC_BUTTON2:
#ifdef __4TH_JOBS
if( ++m_nJob > JOB_ELEMENTORLORD_HERO_ULTIMATE )
#elif defined (__3RD_LEGEND16)
if( ++m_nJob > JOB_ELEMENTORLORD_HERO )
#else // __3RD_LEGEND16
if( ++m_nJob > JOB_ELEMENTOR_HERO )
#endif // __3RD_LEGEND16
{
m_nJob = JOB_VAGRANT;
}
if( m_nJob == JOB_PUPPETEER )
m_nJob = JOB_KNIGHT;
if( m_nJob == JOB_GATEKEEPER || m_nJob == JOB_DOPPLER )
m_nJob = JOB_KNIGHT_MASTER;
Refresh();
break;
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
void CWndWikipediaJob::OnMouseWndSurface( CPoint point )
{
LPWNDCTRL pDrawCtrl = GetWndCtrl( WIDC_STATIC2 );
if( pDrawCtrl )
{
CRect rect = pDrawCtrl->rect;
if( rect.PtInRect( point ) )
{
ClientToScreen( &point );
ClientToScreen( &rect );
g_toolTip.PutToolTip( (DWORD)this, g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER3 ) ? prj.GetText( TID_WIKIPEDIA_JOB_TEXT_18 ) : prj.m_aJob[m_nJob].szName, rect, point );
}
}
}
void CWndWikipediaJob::OnLButtonDblClk( UINT nFlags, CPoint point )
{
LPWNDCTRL pDrawCtrl = GetWndCtrl( WIDC_STATIC2 );
if( pDrawCtrl )
{
CRect rect = pDrawCtrl->rect;
if( g_pPlayer->IsAuthHigher( AUTH_GAMEMASTER3 ) && rect.PtInRect( point ) )
{
SAFE_DELETE(m_pCreate);
m_pCreate = new CWndWikipediaJobCreate();
m_pCreate->Initialize( this );
m_pCreate->SetJob( m_nJob );
}
}
}
void CWndWikipediaJob::OnRButtonDblClk( UINT nFlags, CPoint point )
{
OnLButtonDblClk( nFlags, point );
}
void CWndWikipediaJob::Refresh()
{
JobProp* pProperty = prj.GetJobProp( m_nJob );
if( pProperty )
{
CString strText;
CWndStatic* pStatic = (CWndStatic*)GetDlgItem( WIDC_STATIC1 );
if( pStatic )
{
strText = prj.m_aJob[m_nJob].szName;
if( m_nJob >= JOB_KNIGHT_MASTER && m_nJob <= JOB_ELEMENTOR_MASTER )
{
strText += " ";
strText += prj.GetText( TID_GAME_TOOLTIP_MARK_MASTER );
}
else
#ifdef __4TH_JOBS
if( m_nJob >= JOB_KNIGHT_HERO && m_nJob <= JOB_ELEMENTORLORD_HERO_ULTIMATE )
#elif defined (__3RD_LEGEND16)
if( m_nJob >= JOB_KNIGHT_HERO && m_nJob <= JOB_ELEMENTORLORD_HERO )
#else // __3RD_LEGEND16
if( m_nJob >= JOB_KNIGHT_HERO && m_nJob <= JOB_ELEMENTOR_HERO )
#endif // __3RD_LEGEND16
{
strText += " ";
strText += prj.GetText( TID_GAME_TOOLTIP_MARK_HERO );
}
pStatic->SetTitle( strText );
}
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT1 );
if( pWndText )
{
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_01 ), pProperty->fFactorMaxHP * 100 );
pWndText->SetString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_02 ), pProperty->fFactorMaxMP * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_03 ), pProperty->fFactorMaxFP * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_04 ), pProperty->fFactorHPRecovery * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_05 ), pProperty->fFactorMPRecovery * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_06 ), pProperty->fFactorFPRecovery * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_07 ), pProperty->fAttackSpeed );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_08 ), pProperty->fFactorDef * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_09 ), pProperty->fBlocking * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_10 ), pProperty->fCritical * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_11 ), pProperty->fMeleeSWD * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_12 ), pProperty->fMeleeAXE * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_13 ), pProperty->fMeleeKNUCKLE * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_14 ), pProperty->fMeleeSTICK * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_15 ), pProperty->fMagicWAND * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_16 ), pProperty->fMeleeSTAFF * 100 );
pWndText->AddString( strText ); pWndText->AddString("\n");
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_17 ), pProperty->fMeleeYOYO * 100 );
pWndText->AddString( strText );
}
}
}
void CWndWikipediaJob::SetJob( int nJob )
{
if( nJob < JOB_VAGRANT || nJob == JOB_PUPPETEER || nJob == JOB_GATEKEEPER || nJob == JOB_DOPPLER )
nJob = JOB_VAGRANT;
else
#ifdef __4TH_JOBS
if( nJob > JOB_ELEMENTORLORD_HERO_ULTIMATE )
nJob = JOB_ELEMENTORLORD_HERO_ULTIMATE;
#elif defined (__3RD_LEGEND16)
if( nJob > JOB_ELEMENTORLORD_HERO )
nJob = JOB_ELEMENTORLORD_HERO;
#else // __3RD_LEGEND16
if( nJob > JOB_ELEMENTOR_HERO )
nJob = JOB_ELEMENTOR_HERO;
#endif // __3RD_LEGEND16
m_nJob = nJob;
Refresh();
}
CWndWikipediaJobCreate::CWndWikipediaJobCreate( void )
{
m_nJob = JOB_VAGRANT;
m_nMaxLevel = 1;
m_nRank = 0;
}
CWndWikipediaJobCreate::~CWndWikipediaJobCreate( void )
{
}
BOOL CWndWikipediaJobCreate::Initialize( CWndBase* pWndParent, DWORD dwType )
{
return CWndNeuz::InitDialog( g_Neuz.GetSafeHwnd(), APP_WIKIPEDIA_JOB_CREATE, WBS_MODAL, 0, pWndParent );
}
void CWndWikipediaJobCreate::OnInitialUpdate( void )
{
CWndNeuz::OnInitialUpdate();
MoveParentCenter();
}
void CWndWikipediaJobCreate::OnDraw( C2DRender* p2DRender )
{
CWndNeuz::OnDraw( p2DRender );
}
BOOL CWndWikipediaJobCreate::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult )
{
switch( nID )
{
case WIDC_BUTTON1:
{
CString strCmd;
strCmd.Format( "/lv \"%s\" %d %d", prj.m_aJob[m_nJob].szName, m_nMaxLevel, m_nRank );
g_DPlay.SendChat( strCmd );
}
case WIDC_BUTTON2:
Destroy();
}
return CWndNeuz::OnChildNotify( message, nID, pLResult );
}
void CWndWikipediaJobCreate::SetJob( int nJob )
{
m_nJob = nJob;
CWndText* pWndText = (CWndText*)GetDlgItem( WIDC_TEXT1 );
if( pWndText )
{
if( m_nJob == JOB_VAGRANT )
{
m_nMaxLevel = MAX_JOB_LEVEL;
}
else
if( m_nJob >= JOB_MERCENARY && m_nJob <= JOB_MAGICIAN )
{
m_nMaxLevel = ( MAX_JOB_LEVEL + MAX_EXP_LEVEL );
}
else
if( m_nJob >= JOB_KNIGHT && m_nJob <= JOB_ELEMENTOR )
{
m_nMaxLevel = MAX_GENERAL_LEVEL;
}
else
if( m_nJob >= JOB_KNIGHT_MASTER && m_nJob <= JOB_ELEMENTOR_MASTER )
{
m_nMaxLevel = MAX_GENERAL_LEVEL;
m_nRank = 1;
}
else
if( m_nJob >= JOB_KNIGHT_HERO && m_nJob <= JOB_ELEMENTOR_HERO )
{
m_nMaxLevel = MAX_LEGEND_LEVEL;
m_nRank = 2;
}
#ifdef __3RD_LEGEND16
else
if( m_nJob >= JOB_LORDTEMPLER_HERO && m_nJob <= JOB_ELEMENTORLORD_HERO )
{
m_nMaxLevel = MAX_3RD_LEGEND_LEVEL;
m_nRank = 2;
}
#endif // __3RD_LEGEND16
#ifdef __4TH_JOBS
else
if ( m_nJob >= JOB_LORDTEMPLER_HERO_ULTIMATE && m_nJob <= JOB_ELEMENTORLORD_HERO_ULTIMATE )
{
m_nMaxLevel = MAX_4TH_JOBS_LEVEL;
m_nRank = 2;
}
#endif // __4TH_JOBS
CString strText;
strText.Format( prj.GetText( TID_WIKIPEDIA_JOB_TEXT_19 ), prj.m_aJob[m_nJob].szName, m_nRank == 1 ? prj.GetText( TID_GAME_TOOLTIP_MARK_MASTER ) : m_nRank == 2 ? prj.GetText( TID_GAME_TOOLTIP_MARK_HERO ) : "", m_nMaxLevel );
strText.Replace(" ", " "); pWndText->SetString( strText );
}
}
#endif // __WIKIPEDIA_JOB
Update: Fixed. Thank you guys for replying my post.
I fixed it by going to Project.cpp
In the function
Code:
BOOL CProject::LoadPropJob( LPCTSTR lpszFileName )
Code:
pProperty->fCritical = scanner.GetFloat();
Code:
scanner.GetToken(); _tcscpy(pProperty->szJobIcon, scanner.token);






