[Source Release]Day & Night System

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Source Release]Day & Night System

      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

      Quellcode

      1. public:
      2. BOOL InitWorldEnvir( ); // 24½Ã°£ Light ¼³Á¤ ¹× ±âŸ ȯ°æ ÃʱâÈ*
      3. #if __VER >= 15 // __GUILD_HOUSE
      4. void InProcessing( ); // gmpbigsun : ÇöÀç ¿ùµå·Î ÁøÀԽà Çѹø È£ÃâµÊ
      5. void OutProcessing( ); // gmpibgsun : ÇöÀç ¿ùµå¿¡¼* ÅðÀå½Ã Çѹø È£ÃâµÊ
      6. #endif
      7. // Render
      8. void Projection( LPDIRECT3DDEVICE9 pd3dDevice, int nWidth, int nHeight );
      9. void Render( LPDIRECT3DDEVICE9 pd3dDevice, CD3DFont* pFont = NULL );
      10. void RenderBase( LPDIRECT3DDEVICE9 pd3dDevice, CD3DFont* pFont );
      11. // Light, Camera and etc...
      Alles anzeigen
      fügt darunter ein

      Quellcode

      1. bool IsNight();
      2. FLOAT GetRealTime();
      Dann geht ihr in
      World3D.cpp
      Sucht nach

      Quellcode

      1. // Ä«¸Þ¶ó Ã浹üũ ½Ã¿¡¸¸ ¾²´Âµí..
      2. BOOL CWorld::CheckBound(D3DXVECTOR3* vPos,D3DXVECTOR3* vDest,D3DXVECTOR3* vOut, FLOAT* fLength )
      3. {
      4. D3DXVECTOR3 tempVec=(*(vPos)-*(vDest));// /10.0f;
      5. float length=D3DXVec3Length(&tempVec);
      6. D3DXVec3Normalize(&tempVec,&tempVec);
      7. tempVec/=10;
      8. D3DXVECTOR3 tempVec2=*(vDest);
      9. D3DXVECTOR3 vDist1, vDist2;
      10. float tempheight;
      11. BOOL b1, b2;
      12. b1 = FALSE; b2 = FALSE;
      13. tempVec2 += (tempVec * 10); // Ä«¸Þ¶ó°¡ ÀÚ²Ù ÁöÇü¿¡ ²¸µé¾î°¡¼* Á» »°´Ù.
      14. BOOL bWaterChkDn = FALSE;
      15. BOOL bWaterChkUp = FALSE;
      16. FLOAT fWaterHeight = 0.0f;
      17. LPWATERHEIGHT pWaterHeight = GetWaterHeight( *vDest );
      18. if( pWaterHeight &&
      19. ( pWaterHeight->byWaterTexture & (byte)(~MASK_WATERFRAME)) == WTYPE_WATER )
      20. {
      21. fWaterHeight = (FLOAT)pWaterHeight->byWaterHeight;
      22. //vDest->y += 0.5f;
      23. if( fWaterHeight < vDest->y )
      24. {
      25. bWaterChkDn = TRUE;
      26. }
      27. else
      28. {
      29. bWaterChkUp = TRUE;
      30. }
      31. }
      32. for( int i = 0; i < int( length * 10 ); i++ )
      33. {
      34. tempVec2+=tempVec;
      35. tempheight=GetLandHeight( tempVec2.x, tempVec2.z );
      36. #if __VER >= 11 // __FIX_PICKING
      37. // Ä«¸Þ¶ó¸¦ ¾à°£ ´õ µé¾îÁÖ±â À§Çؼ* ¼öÁ¤ - 07.10.24 - micky
      38. if(tempVec2.y<tempheight+0.6f)
      39. #else
      40. if(tempVec2.y<tempheight+0.3f)
      41. #endif
      42. {
      43. b1 = TRUE;
      44. vDist1 = tempVec2 - *vDest; // »ç¶÷¿¡¼* ±³Â÷Á¡±îÁöÀÇ ¹æÇ⺤ÅÍ
      45. // *(vOut)=tempVec2;
      46. // vOut->y+=1.1f;
      47. // return TRUE;
      48. break;
      49. }
      50. // Äɸ¯ÅÍ°¡ ¹°À§¿¡ ÀÖ°í, Àá±âÁö ¾Ê¾Ò´Ù¸é ¼ö¸é Ã浹üũÇÏ¿© Ä«¸Þ¶ó°¡ ¹°¼ÓÀ¸·Î ¾Èµé¾î°¡°Ô ó¸®ÇÔ.
      51. D3DXVECTOR3 vWaterVec = tempVec2;
      52. //vWaterVec.y+=0.5f;
      53. if( bWaterChkDn )
      54. {
      55. if(vWaterVec.y<fWaterHeight+0.3f)
      56. {
      57. b1 = TRUE;
      58. vDist1 = vWaterVec - *vDest;
      59. break;
      60. }
      61. }
      62. #if __VER < 10
      63. else
      64. // Äɸ¯ÅÍ°¡ ¹°À§¿¡ ÀÖ°í, Àá°å´Ù¸é ¼ö¸é Ã浹üũÇÏ¿© Ä«¸Þ¶ó°¡ ¹°¹ÛÀ¸·Î ¸ø³ª°¡°Ô ó¸®ÇÔ
      65. if( bWaterChkUp )
      66. {
      67. if(vWaterVec.y>fWaterHeight-0.3f)
      68. {
      69. b1 = TRUE;
      70. vDist1 = vWaterVec - *vDest;
      71. break;
      72. }
      73. }
      74. #endif
      75. }
      76. D3DXVECTOR3 vIntersect;
      77. BOOL bRet = IntersectObjLine2( &vIntersect, *vDest, *vPos, TRUE );
      78. if( bRet )
      79. {
      80. b2 = TRUE;
      81. vDist2 = vIntersect - *vDest; // »ç¶÷¿¡¼* ±³Â÷Á¡±îÁöÀÇ ¹æÇ⺤ÅÍ
      82. // *vOut = vIntersect;
      83. }
      84. FLOAT fDist1, fDist2;
      85. if( b1 == TRUE && b2 == TRUE ) // ÁöÇüÀ̶û ¿ÀºêÁ§Æ® ¸ðµÎ ±³Â÷Çß´Ù
      86. {
      87. fDist1 = D3DXVec3LengthSq( &vDist1 );
      88. fDist2 = D3DXVec3LengthSq( &vDist2 );
      89. if( fDist1 < fDist2 ) // ±×Áß °¡±î¿î³ðÀ¸·Î ¾¸
      90. {
      91. *fLength = D3DXVec3Length( &vDist1 );
      92. *vOut = tempVec2;
      93. }
      94. else
      95. {
      96. *fLength = D3DXVec3Length( &vDist2 );
      97. *vOut = vIntersect;
      98. }
      99. return TRUE;
      100. } else
      101. if( b1 ) // ÁöÇü¿¡¸¸ ºÎµúÇû´Ù.
      102. {
      103. *fLength = D3DXVec3Length( &vDist1 );
      104. *vOut = tempVec2;
      105. return TRUE;
      106. } else
      107. if( b2 ) // ¿ÀºêÁ§Æ®¿¡¸¸ ºÎµúÇû´Ù
      108. {
      109. *fLength = D3DXVec3Length( &vDist2 );
      110. *vOut = vIntersect;
      111. return TRUE;
      112. }
      113. // ¾Æ¹«µ¥µµ ºÎµúÈ÷Áö ¾Ê¾Ò´Ù.
      114. *fLength = length;
      115. return FALSE;
      116. }
      Alles anzeigen
      fügt darunter ein

      Quellcode

      1. #ifdef __CLIENT
      2. bool CWorld::IsNight(){
      3. return ( g_GameTimer.m_nHour-1 <= 6 || g_GameTimer.m_nHour-1 >= 18 );
      4. }
      5. FLOAT CWorld::GetRealTime()
      6. {
      7. FLOAT nRlTime = 0;
      8. nRlTime = (FLOAT)(g_GameTimer.m_nHour-1)*2;
      9. if( g_GameTimer.m_nMin < 30 )
      10. --nRlTime;
      11. if( g_GameTimer.m_nHour-1 == 23 && g_GameTimer.m_nMin > 45 )
      12. nRlTime+=0.5F;
      13. if( nRlTime > 24 )
      14. {
      15. return ((-1)*(nRlTime - 48 ));
      16. }
      17. return nRlTime;
      18. }
      19. #endif
      Alles anzeigen
      dadrunter set ihr

      Quellcode

      1. void CWorld::SetLight( BOOL bLight )
      sucht in dieser funktion nach

      Quellcode

      1. pLight->SetDir( m_v3LightDir.x, m_v3LightDir.y, m_v3LightDir.z );
      2. pLight->Appear( m_pd3dDevice, TRUE );
      3. DWORD dwR, dwG, dwB;
      4. dwR = (DWORD)( pLight->Ambient.r * 255 );
      5. dwG = (DWORD)( pLight->Ambient.g * 255 );
      6. dwB = (DWORD)( pLight->Ambient.b * 255 );
      7. dwAmbient = D3DCOLOR_ARGB( 255, dwR, dwG, dwB );
      8. }
      9. }
      10. else
      11. {
      Alles anzeigen
      und added DADRÜBER!

      Quellcode

      1. #ifdef __DAY_NIGHT
      2. if( !m_bIsIndoor ){
      3. m_fFogStartValue = 10.0F;
      4. m_fFogEndValue = 70.0F + GetRealTime() * 30.0F;
      5. m_fFogDensity = 0.0F;
      6. m_v3LightDir.x = 0.0F;
      7. m_v3LightDir.y = -1.0F;
      8. m_v3LightDir.z = 0.0F;
      9. }
      10. #endif // __DAY_NIGHT
      jetz sucht ihr nach

      Quellcode

      1. if( m_bIsIndoor )
      2. {
      3. if( pLight )
      4. {
      5. // À½¿µ º¯È*
      6. pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
      7. pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
      8. pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
      und macht daraus

      Quellcode

      1. if( m_bIsIndoor
      2. #ifdef __DAY_NIGHT
      3. || IsNight()
      4. #endif // __DAY_NIGHT
      5. )
      6. {
      7. if( pLight )
      8. {
      9. // À½¿µ º¯È*
      10. pLight->Diffuse.r = ((m_dwDiffuse>>16) & 0xff) / 255.f;
      11. pLight->Diffuse.g = ((m_dwDiffuse>>8) & 0xff) / 255.f;
      12. pLight->Diffuse.b = ((m_dwDiffuse) & 0xff) / 255.f;
      Alles anzeigen
      dann in neuz/versioncommon.h
      added ihr

      Quellcode

      1. #define __DAY_NIGHT
      Fertig

      #Credütz an Pumbaaaa
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • ~Alucard~;269700 schrieb:

      Lol es ist scheiße wenn ich es in 15 sec ohne source mache und er DAFUER ein GANZES TUTORIAL braucht -.- *facepalm*


      Wie wäre es einfach wenn du ihm hilfst? Ihm zeigst wie ers besser machen könnte und nicht nur den nebel verändert? Anstatt hier nur auf 1337-Typen zu machen wegen deinem Namen, und so tun als ob du alles kannst. Sag ihm lieber mal wie ers besser machen kann oder weist dus selber nicht?
      Das sind genau die Typen die die Flyff Szene so sche*ße machen

      Edit: Es ist schön zu sehen das es noch Leute gibt, die wenigstens versuchen anderen zu helfen mit netten Funktionen, auch wenn Alucard vllt recht haben mag und es besser gehen würde aber nur wie oben schon erwähnt auf 1337-Typen-alles-könner zu tun aber dann nicht sagen kann wie man es besser machen kann, einfach nur peinlich. Poste lieber mal was anständiges oder garnichts.
    • Dancex3;269701 schrieb:

      Wie wäre es einfach wenn du ihm hilfst? Ihm zeigst wie ers besser machen könnte und nicht nur den nebel verändert? Anstatt hier nur auf 1337-Typen zu machen wegen deinem Namen, und so tun als ob du alles kannst. Sag ihm lieber mal wie ers besser machen kann oder weist dus selber nicht?
      Das sind genau die Typen die die Flyff Szene so sche*ße machen

      Edit: Es ist schön zu sehen das es noch Leute gibt, die wenigstens versuchen anderen zu helfen mit netten Funktionen, auch wenn Alucard vllt recht haben mag und es besser gehen würde aber nur wie oben schon erwähnt auf 1337-Typen-alles-könner zu tun aber dann nicht sagen kann wie man es besser machen kann, einfach nur peinlich. Poste lieber mal was anständiges oder garnichts.


      Bin ich ein Jin der alles erfuellt/beantwortet?

      Wer hat mir geholfen als ich angefangen hab zu programmiern? NIEMAND
      Also ... Und bissl leechen und snippets zusammenschließen kann meine schwester(Die ist 4)..


      Genauso wie in E**** Er fraegt nach sachen , wir beantworten ihm , er gibt es als sein werk aus und erwaehnt uns nichtmal.

      Genauso wie er meinte sein "JGuard" waere sicher , JGuard freezed fertig :x
    • ~Alucard~;269702 schrieb:

      Bin ich ein Jin der alles erfuellt/beantwortet?

      Wer hat mir geholfen als ich angefangen hab zu programmiern? NIEMAND
      Also ... Und bissl leechen und snippets zusammenschließen kann meine schwester(Die ist 4)..


      Genauso wie in E**** Er fraegt nach sachen , wir beantworten ihm , er gibt es als sein werk aus und erwaehnt uns nichtmal.

      Genauso wie er meinte sein "JGuard" waere sicher , JGuard freezed fertig :x

      so dann sag mir mal wie du ein paket filter der SERVERSIDE läuft freezed? <3
      2. das verändert die nebeldichte nach x minuten immer und bleibt nicht kosntant. wie du es evtl. per besat machen würdest.