Thats pretty strange behavior. The !quake command just opens a panel. I can't imagine it failing.
As for sm_quakesounds_who, are you sure it is actually set to 2 in the console?
Here is code that was in 0.9
Code:
PlayQuakeSound(soundId, attackerClient, victimClient, GetConVarInt(cvarWho));
public PlayQuakeSound(soundKey, attackerClient, victimClient, playPreference)
{
new playersConnected = GetMaxClients();
if(playPreference == 1)
for (new i = 1; i < playersConnected; i++)
if(IsClientInGame(i) && !IsFakeClient(i) && soundPreference[i]) {
EmitSoundToClient(i, soundsList[soundPreference[i]-1][soundKey]);
}
if((playPreference == 2 || playPreference == 3) && attackerClient)
EmitSoundToClient(attackerClient, soundsList[soundPreference[attackerClient]-1][soundKey]);
if((playPreference == 2 || playPreference == 4) && victimClient)
EmitSoundToClient(victimClient, soundsList[soundPreference[victimClient]-1][soundKey]);
}
As you can see, it shouldn't play the sound to everyone unless sm_quakesounds_who is set to 1.
That whole functionality changed in 1.0 through so you might try upgrading. The sounds are now individually set for who can hear them.