StopSound: Use new OnBroadcastSound forward from CSSFixes
This commit is contained in:
		
							parent
							
								
									c993d05129
								
							
						
					
					
						commit
						e1bab3c5b8
					
				| @ -7,8 +7,9 @@ | ||||
| #include <cstrike> | ||||
| #include <clientprefs> | ||||
| #include <multicolors> | ||||
| #include <CSSFixes> | ||||
| 
 | ||||
| #define PLUGIN_VERSION "2.1.0" | ||||
| #define PLUGIN_VERSION "3.0" | ||||
| #define MAX_MAPMUSIC_ENTITIES 2048 | ||||
| 
 | ||||
| bool g_bStopWeaponSounds[MAXPLAYERS+1] = { false, ... }; | ||||
| @ -53,17 +54,15 @@ public void OnPluginStart() | ||||
| 	// Detect game and hook appropriate tempent. | ||||
| 	AddTempEntHook("Shotgun Shot", CSS_Hook_ShotgunShot); | ||||
| 
 | ||||
| 	// Ambient sounds | ||||
| 	//AddAmbientSoundHook(Hook_AmbientSound); | ||||
| 
 | ||||
| 	// Map music will be caught here | ||||
| 	HookEvent("round_end", Event_RoundEnd); | ||||
| 	HookEvent("player_spawn", Event_PlayerSpawn); | ||||
| 
 | ||||
| 	CreateConVar("sm_stopsound_version", PLUGIN_VERSION, "Toggle Weapon Sounds", FCVAR_NOTIFY|FCVAR_DONTRECORD|FCVAR_REPLICATED); | ||||
| 	RegConsoleCmd("sm_stopsound", Command_StopSound, "Toggle hearing weapon sounds"); | ||||
| 	//RegConsoleCmd("sm_stopmusic", Command_StopMusic, "Toggle hearing map music"); | ||||
| 	//RegConsoleCmd("sm_music", Command_StopMusic, "Toggle hearing map music"); | ||||
| 	RegConsoleCmd("sm_sound", Command_StopSound, "Toggle hearing weapon sounds"); | ||||
| 	RegConsoleCmd("sm_stopmusic", Command_StopMusic, "Toggle hearing map music"); | ||||
| 	RegConsoleCmd("sm_music", Command_StopMusic, "Toggle hearing map music"); | ||||
| 
 | ||||
| 	// Cookies | ||||
| 	g_hCookieStopSound = RegClientCookie("weaponsound_blocked", "Are weapon sounds enabled", CookieAccess_Protected); | ||||
| @ -119,9 +118,6 @@ public void OnPluginEnd() | ||||
| 	// Remove tempent hook | ||||
| 	RemoveTempEntHook("Shotgun Shot", CSS_Hook_ShotgunShot); | ||||
| 
 | ||||
| 	// Remove ambient sound hook | ||||
| 	//RemoveAmbientSoundHook(Hook_AmbientSound); | ||||
| 
 | ||||
| 	// Find ReloadEffect | ||||
| 	UserMsg ReloadEffect = GetUserMessageId("ReloadEffect"); | ||||
| 
 | ||||
| @ -235,7 +231,7 @@ public void OnClientCookiesCached(int client) | ||||
| 	// Map Music cookie | ||||
| 	GetClientCookie(client, g_hCookieStopMapMusic, sBuffer, sizeof(sBuffer)); | ||||
| 
 | ||||
| 	if(sBuffer[0] != '\0' && false) | ||||
| 	if(sBuffer[0] != '\0') | ||||
| 	{ | ||||
| 		g_bStopMapMusic[client] = true; | ||||
| 		g_bStopMapMusicHooked = true; | ||||
| @ -643,11 +639,8 @@ public void OnReloadEffect(DataPack pack) | ||||
| 	EndMessage(); | ||||
| } | ||||
| 
 | ||||
| public Action Hook_AmbientSound(char sample[PLATFORM_MAX_PATH], int &entity, float &volume, int &level, int &pitch, float pos[3], int &flags, float &delay) | ||||
| public Action OnBroadcastSound(int entity, char sample[PLATFORM_MAX_PATH], int clients[MAXPLAYERS], int &numClients) | ||||
| { | ||||
| 	if(!g_bStopMapMusicHooked) | ||||
| 		return Plugin_Continue; | ||||
| 
 | ||||
| 	// Music | ||||
| 	if(sample[0] != '#') | ||||
| 		return Plugin_Continue; | ||||
| @ -657,26 +650,25 @@ public Action Hook_AmbientSound(char sample[PLATFORM_MAX_PATH], int &entity, flo | ||||
| 
 | ||||
| 	g_MapMusic.SetString(sEntity, sample, true); | ||||
| 
 | ||||
| 	if(!g_bStopMapMusicHooked) | ||||
| 		return Plugin_Continue; | ||||
| 
 | ||||
| 	// Check which clients need to be excluded. | ||||
| 	int[] newClients = new int[MaxClients]; | ||||
| 	int newTotal = 0; | ||||
| 	bool bEmitNew = false; | ||||
| 
 | ||||
| 	for(int i = 1; i <= MaxClients; i++) | ||||
| 	int newClients = 0; | ||||
| 	for(int i = 0; i < numClients; i++) | ||||
| 	{ | ||||
| 		if(!IsClientInGame(i)) | ||||
| 			continue; | ||||
| 
 | ||||
| 		if(!g_bStopMapMusic[i]) | ||||
| 			newClients[newTotal++] = i; | ||||
| 		else | ||||
| 			bEmitNew = true; | ||||
| 		int client = clients[i]; | ||||
| 		if(!g_bStopMapMusic[client]) | ||||
| 		{ | ||||
| 			clients[numClients] = clients[i]; | ||||
| 			newClients++; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if(bEmitNew && newTotal) | ||||
| 	if(newClients != numClients) | ||||
| 	{ | ||||
| 		EmitSound(newClients, newTotal, sample, entity, SNDCHAN_STATIC, level, flags, volume, pitch); | ||||
| 		return Plugin_Handled; | ||||
| 		numClients = newClients; | ||||
| 		return Plugin_Changed; | ||||
| 	} | ||||
| 
 | ||||
| 	return Plugin_Continue; | ||||
|  | ||||
| @ -5,6 +5,7 @@ | ||||
| 
 | ||||
| forward void OnRunThinkFunctions(bool simulating); | ||||
| forward void OnRunThinkFunctionsPost(bool simulating); | ||||
| forward Action OnBroadcastSound(int entity, char sample[PLATFORM_MAX_PATH], int clients[MAXPLAYERS], int &numClients); | ||||
| 
 | ||||
| public Extension __ext_CSSFixes = | ||||
| { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user