Hier release ich mal das day & night system.
Was ist das day & night system?
Seht es euch am besten an mit den screens.
Dämmerung :
Dunkler :
Nochmal dunkler als voher :D :
das wird nacher noch viel dunkler und später wieder hell.
Jetzt zum Code
1.
Ihr geht in world.h
sucht nacht
Alles anzeigen
fügt darunter ein
Dann geht ihr in
World3D.cpp
Sucht nach
Alles anzeigen
fügt darunter ein
Alles anzeigen
dadrunter set ihr
sucht in dieser funktion nach
Alles anzeigen
und added DADRÜBER!
jetz sucht ihr nach
und macht daraus
Alles anzeigen
dann in neuz/versioncommon.h
added ihr
Fertig
#Credütz an Pumbaaaa
Was ist das day & night system?
Seht es euch am besten an mit den screens.
Dämmerung :

Dunkler :

Nochmal dunkler als voher :D :

das wird nacher noch viel dunkler und später wieder hell.
Jetzt zum Code
1.
Ihr geht in world.h
sucht nacht
Quellcode
- public:
- BOOL InitWorldEnvir( ); // 24½Ã°£ Light ¼³Á¤ ¹× ±âŸ ȯ°æ ÃʱâÈ*
- #if __VER >= 15 // __GUILD_HOUSE
- void InProcessing( ); // gmpbigsun : ÇöÀç ¿ùµå·Î ÁøÀԽà Çѹø È£ÃâµÊ
- void OutProcessing( ); // gmpibgsun : ÇöÀç ¿ùµå¿¡¼* ÅðÀå½Ã Çѹø È£ÃâµÊ
- #endif
- // Render
- void Projection( LPDIRECT3DDEVICE9 pd3dDevice, int nWidth, int nHeight );
- void Render( LPDIRECT3DDEVICE9 pd3dDevice, CD3DFont* pFont = NULL );
- void RenderBase( LPDIRECT3DDEVICE9 pd3dDevice, CD3DFont* pFont );
- // Light, Camera and etc...
Dann geht ihr in
World3D.cpp
Sucht nach
Quellcode
- // Ä«¸Þ¶ó Ãæµ¹Ã¼Å© ½Ã¿¡¸¸ ¾²´Âµí..
- BOOL CWorld::CheckBound(D3DXVECTOR3* vPos,D3DXVECTOR3* vDest,D3DXVECTOR3* vOut, FLOAT* fLength )
- {
- D3DXVECTOR3 tempVec=(*(vPos)-*(vDest));// /10.0f;
- float length=D3DXVec3Length(&tempVec);
- D3DXVec3Normalize(&tempVec,&tempVec);
- tempVec/=10;
- D3DXVECTOR3 tempVec2=*(vDest);
- D3DXVECTOR3 vDist1, vDist2;
- float tempheight;
- BOOL b1, b2;
- b1 = FALSE; b2 = FALSE;
- tempVec2 += (tempVec * 10); // Ä«¸Þ¶ó°¡ ÀÚ²Ù ÁöÇü¿¡ ²¸µé¾î°¡¼* Á» »°´Ù.
- BOOL bWaterChkDn = FALSE;
- BOOL bWaterChkUp = FALSE;
- FLOAT fWaterHeight = 0.0f;
- LPWATERHEIGHT pWaterHeight = GetWaterHeight( *vDest );
- if( pWaterHeight &&
- ( pWaterHeight->byWaterTexture & (byte)(~MASK_WATERFRAME)) == WTYPE_WATER )
- {
- fWaterHeight = (FLOAT)pWaterHeight->byWaterHeight;
- //vDest->y += 0.5f;
- if( fWaterHeight < vDest->y )
- {
- bWaterChkDn = TRUE;
- }
- else
- {
- bWaterChkUp = TRUE;
- }
- }
- for( int i = 0; i < int( length * 10 ); i++ )
- {
- tempVec2+=tempVec;
- tempheight=GetLandHeight( tempVec2.x, tempVec2.z );
- #if __VER >= 11 // __FIX_PICKING
- // Ä«¸Þ¶ó¸¦ ¾à°£ ´õ µé¾îÁÖ±â À§Çؼ* ¼öÁ¤ - 07.10.24 - micky
- if(tempVec2.y<tempheight+0.6f)
- #else
- if(tempVec2.y<tempheight+0.3f)
- #endif
- {
- b1 = TRUE;
- vDist1 = tempVec2 - *vDest; // »ç¶÷¿¡¼* ±³Â÷Á¡±îÁöÀÇ ¹æÇ⺤ÅÍ
- // *(vOut)=tempVec2;
- // vOut->y+=1.1f;
- // return TRUE;
- break;
- }
- // Äɸ¯ÅͰ¡ ¹°À§¿¡ ÀÖ°í, Àá±âÁö ¾Ê¾Ò´Ù¸é ¼ö¸é Ãæµ¹Ã¼Å©ÇÏ¿© Ä«¸Þ¶ó°¡ ¹°¼ÓÀ¸·Î ¾Èµé¾î°¡°Ô ó¸®ÇÔ.
- D3DXVECTOR3 vWaterVec = tempVec2;
- //vWaterVec.y+=0.5f;
- if( bWaterChkDn )
- {
- if(vWaterVec.y<fWaterHeight+0.3f)
- {
- b1 = TRUE;
- vDist1 = vWaterVec - *vDest;
- break;
- }
- }
- #if __VER < 10
- else
- // Äɸ¯ÅͰ¡ ¹°À§¿¡ ÀÖ°í, Àá°å´Ù¸é ¼ö¸é Ãæµ¹Ã¼Å©ÇÏ¿© Ä«¸Þ¶ó°¡ ¹°¹ÛÀ¸·Î ¸ø³ª°¡°Ô ó¸®ÇÔ
- if( bWaterChkUp )
- {
- if(vWaterVec.y>fWaterHeight-0.3f)
- {
- b1 = TRUE;
- vDist1 = vWaterVec - *vDest;
- break;
- }
- }
- #endif
- }
- D3DXVECTOR3 vIntersect;
- BOOL bRet = IntersectObjLine2( &vIntersect, *vDest, *vPos, TRUE );
- if( bRet )
- {
- b2 = TRUE;
- vDist2 = vIntersect - *vDest; // »ç¶÷¿¡¼* ±³Â÷Á¡±îÁöÀÇ ¹æÇ⺤ÅÍ
- // *vOut = vIntersect;
- }
- FLOAT fDist1, fDist2;
- if( b1 == TRUE && b2 == TRUE ) // ÁöÇüÀ̶û ¿ÀºêÁ§Æ® ¸ðµÎ ±³Â÷Çß´Ù
- {
- fDist1 = D3DXVec3LengthSq( &vDist1 );
- fDist2 = D3DXVec3LengthSq( &vDist2 );
- if( fDist1 < fDist2 ) // ±×Áß °¡±î¿î³ðÀ¸·Î ¾¸
- {
- *fLength = D3DXVec3Length( &vDist1 );
- *vOut = tempVec2;
- }
- else
- {
- *fLength = D3DXVec3Length( &vDist2 );
- *vOut = vIntersect;
- }
- return TRUE;
- } else
- if( b1 ) // ÁöÇü¿¡¸¸ ºÎµúÇû´Ù.
- {
- *fLength = D3DXVec3Length( &vDist1 );
- *vOut = tempVec2;
- return TRUE;
- } else
- if( b2 ) // ¿ÀºêÁ§Æ®¿¡¸¸ ºÎµúÇû´Ù
- {
- *fLength = D3DXVec3Length( &vDist2 );
- *vOut = vIntersect;
- return TRUE;
- }
- // ¾Æ¹«µ¥µµ ºÎµúÈ÷Áö ¾Ê¾Ò´Ù.
- *fLength = length;
- return FALSE;
- }
Quellcode
- #ifdef __CLIENT
- bool CWorld::IsNight(){
- return ( g_GameTimer.m_nHour-1 <= 6 || g_GameTimer.m_nHour-1 >= 18 );
- }
- FLOAT CWorld::GetRealTime()
- {
- FLOAT nRlTime = 0;
- nRlTime = (FLOAT)(g_GameTimer.m_nHour-1)*2;
- if( g_GameTimer.m_nMin < 30 )
- --nRlTime;
- if( g_GameTimer.m_nHour-1 == 23 && g_GameTimer.m_nMin > 45 )
- nRlTime+=0.5F;
- if( nRlTime > 24 )
- {
- return ((-1)*(nRlTime - 48 ));
- }
- return nRlTime;
- }
- #endif
sucht in dieser funktion nach
Quellcode
- pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
- pLight->Appear( m_pd3dDevice, TRUE );
- DWORD dwR, dwG, dwB;
- dwR = (DWORD)( pLight->Ambient.r * 255 );
- dwG = (DWORD)( pLight->Ambient.g * 255 );
- dwB = (DWORD)( pLight->Ambient.b * 255 );
- dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
- }
- }
- else
- {
Quellcode
added ihr
Fertig
#Credütz an Pumbaaaa