Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Have you tried to fix the flashbang?

Be a kicker than cheater.
Joined
Dec 17, 2009
Messages
726
Reaction score
25
After the flashbang flashed, the volume just multiply = very loud.

Anyone have fixed this yet? Instead of multiplying, better just to play a Flashbang sound effect. I tried to find and to study the source but took me 30 minutes, still I couldn't find it.
 
Last edited:
I'm retired, I'm already
Banned
Joined
Oct 3, 2011
Messages
832
Reaction score
155
After the flashbang flashed, the volume just multiply = very loud.

Anyone have fixed this yet? Instead of multiplying, it will just play a Flashbang sound effect.

You have to review that, but I know what you mean because it happened to me, I'll take a look to see how it goes.
 
Upvote 0
Experienced Elementalist
Joined
May 6, 2008
Messages
230
Reaction score
51
Setup a new Sound Effect and change "snd_fire=" for the item. Then just nuke PlaySound from ZEffectFlashBang.
Currently snd_fire is played and then PlaySound loops in Render();

Code:
--- C:\Users\Chris\Desktop\rg\Gunz1.5\Stable\Gunz\ZEffectFlashBang.h
+++ C:\Users\Chris\Desktop\rg\rg2\Gunz1.5\Stable\Gunz\ZEffectFlashBang.h
@@ -11,7 +11,6 @@
 {
 protected:
 	bool	mbActivated;			// Ç÷¡½Ã¹ðÀÇ ¿µÇâÀ» ¹Þ´ÂÁöÀÇ ¿©ºÎ
-	bool	mbInitialSound;			// »ç¿îµå ÃʱâÈ­°¡ ÇÊ¿äÇÑÁö ¿©ºÎ
 	static bool	mbDrawCopyScreen;
 	
 	float	mfStartTime;
@@ -39,7 +38,6 @@
 	void	End();	// ÀÌÆåÆ® °­Á¦ Á¾·áÇÑ´Ù
 
 	void	Render();
-	void	PlaySound();
 
 	bool	IsActivated() const 
 	{



--- C:\Users\Chris\Desktop\jeff\Gunz1.5\Stable\Gunz\ZEffectFlashBang.cpp
+++ C:\Users\Chris\Desktop\rg\rg2\Gunz1.5\Stable\Gunz\ZEffectFlashBang.cpp
@@ -143,7 +143,6 @@
 	}
 
 	mbActivated		= false;
-	mbInitialSound	= true;
 }
 
 
@@ -275,8 +274,6 @@
 		RGetDevice()->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
 		RGetDevice()->DrawPrimitiveUP( D3DPT_TRIANGLEFAN, 2, mBuffer, sizeof(RTLVertex) );
 		RGetDevice()->SetRenderState( D3DRS_ZENABLE, dw );
-
-		PlaySound();
 	}
 	else
 		End();
@@ -285,7 +282,6 @@
 void ZEffectFlashBang::End()
 {
 	mbActivated		= false;
-	mbInitialSound	= true;
 #ifdef _BIRDSOUND
 
 #else
@@ -300,107 +296,11 @@
 }
 
 //////////////////////////////////////////////////////////////////////////
-//	PlaySound
-//////////////////////////////////////////////////////////////////////////
-void ZEffectFlashBang::PlaySound()
-{
-#ifdef _BIRDSOUND
-	return;
-#else
-	FSOUND_SAMPLE* pFS = ZGetSoundEngine()->GetFS("fx_flashbang", true);
-
-	if( pFS == NULL )
-	{
-		return;
-	}
-
-	//float volumn;
-	float restDuration	= mfDuration - ( ZGetGame()->GetTime() - mfStartTime );
-
-	//volumn	= MAX_MUSIC_VOLUMN * ( 1.0f / (restDuration*restDuration) ) + MIN_VOLUMN;
-	//volumn	= max( min( MAX_MUSIC_VOLUMN, volumn ), 0.01f );
-	//ZGetSoundEngine()->SetMusicVolume( volumn );
-	//volumn	= MAX_EFFECT_VOLUMN * ( 1.0f / (restDuration*restDuration) ) + MIN_VOLUMN;
-	//volumn	= max( min( MAX_EFFECT_VOLUMN, volumn ), 0.01f );
-	//ZGetSoundEngine()->SetEffectVolume( volumn );
-
-	static int stage = 0;
-
-	switch(stage) 
-	{
-	case 0:
-		if( restDuration >= 5 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.2 );
-			ZGetSoundEngine()->SetMusicVolume( 0.2 );
-			stage = 1;
-		}
-		break;
-	case 1:
-		if( restDuration < 5 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.4 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.4 * Z_AUDIO_BGM_VOLUME );
-			stage = 2;
-		}
-		break;
-	case 2:
-		if( restDuration < 4 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.6 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.6 * Z_AUDIO_BGM_VOLUME );
-			stage = 3;
-		}
-		break;
-	case 3:
-		if( restDuration < 3 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.8 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.8 * Z_AUDIO_BGM_VOLUME );
-			stage = 4;
-		}
-		break;
-	case 4:
-		if( restDuration < 2 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.9 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.9 * Z_AUDIO_BGM_VOLUME );
-			stage = 5;
-		}
-		break;
-	case 5:
-		if( restDuration < 1 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( Z_AUDIO_BGM_VOLUME );
-			stage = 0;
-		}
-		break;
-	}
-	
-	if( mbInitialSound && pFS != NULL )
-	{		
-		m_iChannel = ZGetSoundEngine()->PlaySE( pFS, rvector(0,0,0), 200, false, true );
-		mbInitialSound	= false;
-		if( m_iChannel == -1 ) return;
-		ZGetSoundEngine()->SetEffectVolume( m_iChannel, MAX_EFFECT_VOLUMN );
-	}
-	else if( m_iChannel != -1 )
-	{
-		mfVolumn	= MAX_EFFECT_VOLUMN *1.5* restDuration / mfDuration;
-		mfVolumn	= max( min( 1.0f, mfVolumn ), 0.f );
-		ZGetSoundEngine()->SetEffectVolume( m_iChannel, mfVolumn );
-	}
-#endif
-}
-
-//////////////////////////////////////////////////////////////////////////
 //	»ý¼ºÀÚ / ¼Ò¸êÀÚ
 //////////////////////////////////////////////////////////////////////////
 ZEffectFlashBang::ZEffectFlashBang()
 {
 	mbActivated		= false;
-	mbInitialSound	= true;
 	m_iChannel = -1;
 	mfStartTime = 0;
 	mfPower = 0;
 
Upvote 0
Experienced Elementalist
Joined
May 6, 2008
Messages
230
Reaction score
51
Here im an idiot, snd_fire will play as soon as you launch it, meaning you will always hear it as soon as you throw it.
This should work better.

Code:
--- C:\Users\Chris\Desktop\jeff\Gunz1.5\Stable\Gunz\ZEffectFlashBang.cpp
+++ C:\Users\Chris\Desktop\rg\Gunz1.5\Stable\Gunz\ZEffectFlashBang.cpp
@@ -228,7 +228,7 @@
 
 		SAFE_RELEASE( mpHoldBackBuffer );
 	}
-
+	ZGetFlashBangEffect()->PlaySound();
 }
 
 //////////////////////////////////////////////////////////////////////////
@@ -276,7 +276,6 @@
 		RGetDevice()->DrawPrimitiveUP( D3DPT_TRIANGLEFAN, 2, mBuffer, sizeof(RTLVertex) );
 		RGetDevice()->SetRenderState( D3DRS_ZENABLE, dw );
 
-		PlaySound();
 	}
 	else
 		End();
@@ -304,94 +303,15 @@
 //////////////////////////////////////////////////////////////////////////
 void ZEffectFlashBang::PlaySound()
 {
-#ifdef _BIRDSOUND
-	return;
-#else
-	FSOUND_SAMPLE* pFS = ZGetSoundEngine()->GetFS("fx_flashbang", true);
-
-	if( pFS == NULL )
-	{
-		return;
-	}
-
-	//float volumn;
-	float restDuration	= mfDuration - ( ZGetGame()->GetTime() - mfStartTime );
-
-	//volumn	= MAX_MUSIC_VOLUMN * ( 1.0f / (restDuration*restDuration) ) + MIN_VOLUMN;
-	//volumn	= max( min( MAX_MUSIC_VOLUMN, volumn ), 0.01f );
-	//ZGetSoundEngine()->SetMusicVolume( volumn );
-	//volumn	= MAX_EFFECT_VOLUMN * ( 1.0f / (restDuration*restDuration) ) + MIN_VOLUMN;
-	//volumn	= max( min( MAX_EFFECT_VOLUMN, volumn ), 0.01f );
-	//ZGetSoundEngine()->SetEffectVolume( volumn );
-
-	static int stage = 0;
-
-	switch(stage) 
-	{
-	case 0:
-		if( restDuration >= 5 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.2 );
-			ZGetSoundEngine()->SetMusicVolume( 0.2 );
-			stage = 1;
-		}
-		break;
-	case 1:
-		if( restDuration < 5 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.4 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.4 * Z_AUDIO_BGM_VOLUME );
-			stage = 2;
-		}
-		break;
-	case 2:
-		if( restDuration < 4 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.6 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.6 * Z_AUDIO_BGM_VOLUME );
-			stage = 3;
-		}
-		break;
-	case 3:
-		if( restDuration < 3 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.8 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.8 * Z_AUDIO_BGM_VOLUME );
-			stage = 4;
-		}
-		break;
-	case 4:
-		if( restDuration < 2 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( 0.9 * Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( 0.9 * Z_AUDIO_BGM_VOLUME );
-			stage = 5;
-		}
-		break;
-	case 5:
-		if( restDuration < 1 )
-		{
-			ZGetSoundEngine()->SetEffectVolume( Z_AUDIO_EFFECT_VOLUME );
-			ZGetSoundEngine()->SetMusicVolume( Z_AUDIO_BGM_VOLUME );
-			stage = 0;
-		}
-		break;
-	}
-	
-	if( mbInitialSound && pFS != NULL )
-	{		
-		m_iChannel = ZGetSoundEngine()->PlaySE( pFS, rvector(0,0,0), 200, false, true );
-		mbInitialSound	= false;
-		if( m_iChannel == -1 ) return;
-		ZGetSoundEngine()->SetEffectVolume( m_iChannel, MAX_EFFECT_VOLUMN );
-	}
-	else if( m_iChannel != -1 )
-	{
-		mfVolumn	= MAX_EFFECT_VOLUMN *1.5* restDuration / mfDuration;
-		mfVolumn	= max( min( 1.0f, mfVolumn ), 0.f );
-		ZGetSoundEngine()->SetEffectVolume( m_iChannel, mfVolumn );
-	}
-#endif
+	FSOUND_SAMPLE* pFS = ZGetSoundEngine()->GetFS("we_grenade_fire", true);
+
+	if (pFS != nullptr)
+	{
+		m_iChannel = ZGetSoundEngine()->PlaySE(pFS, rvector(0, 0, 0), 200, false, true);
+		mbInitialSound = false;
+		if (m_iChannel == -1) return;
+		ZGetSoundEngine()->SetEffectVolume(m_iChannel, MAX_EFFECT_VOLUMN);
+	}
 }
 
 //////////////////////////////////////////////////////////////////////////

if your having problems understanding or adapting the diff
Code:
void ZEffectFlashBang::Init( rvector& ExplosionPos_, rvector playerPos_, rvector playerDir_, float Duration_  )
{
-- go to bottom --
ZGetFlashBangEffect()->PlaySound();
}

void ZEffectFlashBang::Render()
{
-- Remove --
ZGetFlashBangEffect()->PlaySound();
}

-- Replace --
void ZEffectFlashBang::PlaySound()
{
	FSOUND_SAMPLE* pFS = ZGetSoundEngine()->GetFS("fx_flashbang", true);

	if (pFS != nullptr)
	{
		m_iChannel = ZGetSoundEngine()->PlaySE(pFS, rvector(0, 0, 0), 200, false, true);
		mbInitialSound = false;
		if (m_iChannel == -1) return;
		ZGetSoundEngine()->SetEffectVolume(m_iChannel, MAX_EFFECT_VOLUMN);
	}
}
 
Last edited:
Upvote 0
Back
Top