had forgotten these two files
This commit is contained in:
parent
206bbfdd91
commit
572ced8387
1229
cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt
Normal file
1229
cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt
Normal file
File diff suppressed because it is too large
Load Diff
408
src/zr/soundeffects/volumecontrol.inc
Normal file
408
src/zr/soundeffects/volumecontrol.inc
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
/*
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* Zombie:Reloaded
|
||||||
|
*
|
||||||
|
* File: volumecontrol.inc
|
||||||
|
* Type: Core
|
||||||
|
* Description: Basic volume control for player to change.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2009-2013 Greyscale, Richard Helgeby
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cookie names for client volume settings.
|
||||||
|
*/
|
||||||
|
#define ZVOLUME_COOKIE_ZSOUND "zr_zombie_volume"
|
||||||
|
#define ZVOLUME_COOKIE_AMBIENT "zr_ambient_volume"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cookie handles for client volume settings.
|
||||||
|
*/
|
||||||
|
new Handle:g_hZSoundVolumeCookie = INVALID_HANDLE;
|
||||||
|
new Handle:g_hAmbientVolumeCookie = INVALID_HANDLE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Per-client volume, as a fraction (0.0 - 1.0), applied on top of sounds
|
||||||
|
* emitted through SEffectsEmitSoundFromClient() and SEffectsEmitAmbientSound().
|
||||||
|
*/
|
||||||
|
new Float:zfZSoundVolume[MAXPLAYERS + 1];
|
||||||
|
new Float:zfAmbientVolume[MAXPLAYERS + 1];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create commands specific to ZVolume.
|
||||||
|
*/
|
||||||
|
ZVolumeOnCommandsCreate()
|
||||||
|
{
|
||||||
|
RegConsoleCmd("sm_zvol", Command_ZVolume, "Brings up the zvolume menu");
|
||||||
|
RegConsoleCmd("sm_zvolume", Command_ZVolume, "Brings up the zvolume menu");
|
||||||
|
RegConsoleCmd("sm_zsound", Command_ZSound, "Brings up the zsound menu");
|
||||||
|
RegConsoleCmd("sm_zombie_volume", Command_ZSound, "Brings up the zsound menu");
|
||||||
|
RegConsoleCmd("sm_zambient", Command_ZAmbient, "Brings up the ambient menu");
|
||||||
|
RegConsoleCmd("sm_ambient_volume", Command_ZAmbient, "Brings up the ambient menu");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create ZVolume-related cookies here.
|
||||||
|
*/
|
||||||
|
ZVolumeOnCookiesCreate()
|
||||||
|
{
|
||||||
|
if (g_hZSoundVolumeCookie == INVALID_HANDLE)
|
||||||
|
{
|
||||||
|
g_hZSoundVolumeCookie = RegClientCookie(ZVOLUME_COOKIE_ZSOUND, "Control Zombie Sound.", CookieAccess_Protected);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_hAmbientVolumeCookie == INVALID_HANDLE)
|
||||||
|
{
|
||||||
|
g_hAmbientVolumeCookie = RegClientCookie(ZVOLUME_COOKIE_AMBIENT, "Control Ambient Sound.", CookieAccess_Protected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called once a client's saved cookies have been loaded from the database.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
ZVolumeOnCookiesCached(client)
|
||||||
|
{
|
||||||
|
decl String:sValue[8];
|
||||||
|
|
||||||
|
sValue[0] = '\0';
|
||||||
|
GetClientCookie(client, g_hZSoundVolumeCookie, sValue, sizeof(sValue));
|
||||||
|
if (!sValue[0])
|
||||||
|
{
|
||||||
|
new Float:seffectsvolume = GetConVarFloat(g_hCvarsList[CVAR_SEFFECTS_VOLUME]);
|
||||||
|
IntToString(RoundToNearest(seffectsvolume * 100.0), sValue, sizeof(sValue));
|
||||||
|
}
|
||||||
|
SetZombieVoiceVolume(client, StringToInt(sValue));
|
||||||
|
|
||||||
|
sValue[0] = '\0';
|
||||||
|
GetClientCookie(client, g_hAmbientVolumeCookie, sValue, sizeof(sValue));
|
||||||
|
if (!sValue[0])
|
||||||
|
{
|
||||||
|
new Float:ambientvolume = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_VOLUME]);
|
||||||
|
IntToString(RoundToNearest(ambientvolume * 100.0), sValue, sizeof(sValue));
|
||||||
|
}
|
||||||
|
SetAmbientVolume(client, StringToInt(sValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the client's personal zombie-voice volume, as a fraction (0.0 - 1.0).
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
Float:ZVolume_GetZSoundVolume(client)
|
||||||
|
{
|
||||||
|
return zfZSoundVolume[client];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the client's personal ambient-sound volume, as a fraction (0.0 - 1.0).
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
Float:ZVolume_GetAmbientVolume(client)
|
||||||
|
{
|
||||||
|
return zfAmbientVolume[client];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Command callback (sm_zvol, sm_zvolume)
|
||||||
|
* Opens the volume control menu.
|
||||||
|
*/
|
||||||
|
public Action:Command_ZVolume(client, args)
|
||||||
|
{
|
||||||
|
if (IsClientInGame(client))
|
||||||
|
{
|
||||||
|
VolumeControlMenu(client);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
VolumeControlMenu(client)
|
||||||
|
{
|
||||||
|
new Handle:menu = CreateMenu(VolumeControlMenuHandler);
|
||||||
|
|
||||||
|
decl String:sMenuTitle[128];
|
||||||
|
Format(sMenuTitle, sizeof(sMenuTitle), "%t", "Volume_Menu_Title");
|
||||||
|
SetMenuTitle(menu, sMenuTitle);
|
||||||
|
|
||||||
|
decl String:sItem[64];
|
||||||
|
|
||||||
|
Format(sItem, sizeof(sItem), "%t", "Zombie Voice");
|
||||||
|
AddMenuItem(menu, "1", sItem);
|
||||||
|
|
||||||
|
Format(sItem, sizeof(sItem), "%t", "Ambient");
|
||||||
|
AddMenuItem(menu, "2", sItem);
|
||||||
|
|
||||||
|
SetMenuExitBackButton(menu, true);
|
||||||
|
DisplayMenu(menu, client, MENU_TIME_FOREVER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public VolumeControlMenuHandler(Handle:menu, MenuAction:action, param1, param2)
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case MenuAction_Select:
|
||||||
|
{
|
||||||
|
decl String:info[32];
|
||||||
|
GetMenuItem(menu, param2, info, sizeof(info));
|
||||||
|
if (StrEqual(info, "1", false))
|
||||||
|
{
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "2"))
|
||||||
|
{
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_Cancel:
|
||||||
|
{
|
||||||
|
if (param2 == MenuCancel_ExitBack)
|
||||||
|
{
|
||||||
|
ZMenuMain(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_End:
|
||||||
|
{
|
||||||
|
CloseHandle(menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zombie Voice Section
|
||||||
|
/**
|
||||||
|
* Command callback (sm_zsound, sm_zombie_volume)
|
||||||
|
*/
|
||||||
|
public Action:Command_ZSound(client, args)
|
||||||
|
{
|
||||||
|
if (args == 0)
|
||||||
|
{
|
||||||
|
ZombieVoiceVolumeMenu(client);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
decl String:sArg[32];
|
||||||
|
GetCmdArg(1, sArg, sizeof(sArg));
|
||||||
|
new iVolume = StringToInt(sArg);
|
||||||
|
|
||||||
|
if (iVolume < 0 || iVolume > 100)
|
||||||
|
{
|
||||||
|
TranslationReplyToCommand(client, "ZombieVoice_Usage");
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
else if (0 <= iVolume <= 100)
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(client, iVolume);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZombieVoiceVolumeMenu(client)
|
||||||
|
{
|
||||||
|
new Handle:menu = CreateMenu(ZombieVoiceVolumeMenuHandler);
|
||||||
|
|
||||||
|
decl String:sMenuTitle[128];
|
||||||
|
Format(sMenuTitle, sizeof(sMenuTitle), "%t\n%t", "ZombieVoice_Title_Menu", RoundToNearest(zfZSoundVolume[client] * 100), "ZombieVoice_CommandUsage");
|
||||||
|
SetMenuTitle(menu, sMenuTitle);
|
||||||
|
|
||||||
|
AddMenuItem(menu, "1", "100%");
|
||||||
|
AddMenuItem(menu, "2", "80%");
|
||||||
|
AddMenuItem(menu, "3", "60%");
|
||||||
|
AddMenuItem(menu, "4", "40%");
|
||||||
|
AddMenuItem(menu, "5", "20%");
|
||||||
|
|
||||||
|
SetMenuExitBackButton(menu, true);
|
||||||
|
DisplayMenu(menu, client, MENU_TIME_FOREVER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ZombieVoiceVolumeMenuHandler(Handle:menu, MenuAction:action, param1, param2)
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case MenuAction_Select:
|
||||||
|
{
|
||||||
|
decl String:info[32];
|
||||||
|
GetMenuItem(menu, param2, info, sizeof(info));
|
||||||
|
if (StrEqual(info, "1", false))
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(param1, 100);
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "2"))
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(param1, 80);
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "3"))
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(param1, 60);
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "4"))
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(param1, 40);
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "5"))
|
||||||
|
{
|
||||||
|
SetZombieVoiceVolume(param1, 20);
|
||||||
|
ZombieVoiceVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_Cancel:
|
||||||
|
{
|
||||||
|
if (param2 == MenuCancel_ExitBack)
|
||||||
|
{
|
||||||
|
VolumeControlMenu(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_End:
|
||||||
|
{
|
||||||
|
CloseHandle(menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetZombieVoiceVolume(client, volume)
|
||||||
|
{
|
||||||
|
zfZSoundVolume[client] = volume * 0.01;
|
||||||
|
|
||||||
|
decl String:sValue[8];
|
||||||
|
IntToString(volume, sValue, sizeof(sValue));
|
||||||
|
SetClientCookie(client, g_hZSoundVolumeCookie, sValue);
|
||||||
|
|
||||||
|
if (IsClientInGame(client))
|
||||||
|
{
|
||||||
|
TranslationPrintToChat(client, "Set_ZombieVoice_Volume", volume);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ambient Section
|
||||||
|
/**
|
||||||
|
* Command callback (sm_zambient, sm_ambient_volume)
|
||||||
|
*/
|
||||||
|
public Action:Command_ZAmbient(client, args)
|
||||||
|
{
|
||||||
|
if (args == 0)
|
||||||
|
{
|
||||||
|
AmbientVolumeMenu(client);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
decl String:sArg[32];
|
||||||
|
GetCmdArg(1, sArg, sizeof(sArg));
|
||||||
|
new iVolume = StringToInt(sArg);
|
||||||
|
|
||||||
|
if (iVolume < 0 || iVolume > 100)
|
||||||
|
{
|
||||||
|
TranslationReplyToCommand(client, "Ambient_Usage");
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
else if (0 <= iVolume <= 100)
|
||||||
|
{
|
||||||
|
SetAmbientVolume(client, iVolume);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
AmbientVolumeMenu(client)
|
||||||
|
{
|
||||||
|
new Handle:menu = CreateMenu(AmbientVolumeMenuHandler);
|
||||||
|
|
||||||
|
decl String:sMenuTitle[128];
|
||||||
|
Format(sMenuTitle, sizeof(sMenuTitle), "%t\n%t", "Ambient_Title_Menu", RoundToNearest(zfAmbientVolume[client] * 100), "Ambient_CommandUsage");
|
||||||
|
SetMenuTitle(menu, sMenuTitle);
|
||||||
|
|
||||||
|
AddMenuItem(menu, "1", "100%");
|
||||||
|
AddMenuItem(menu, "2", "80%");
|
||||||
|
AddMenuItem(menu, "3", "60%");
|
||||||
|
AddMenuItem(menu, "4", "40%");
|
||||||
|
AddMenuItem(menu, "5", "20%");
|
||||||
|
|
||||||
|
SetMenuExitBackButton(menu, true);
|
||||||
|
DisplayMenu(menu, client, MENU_TIME_FOREVER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public AmbientVolumeMenuHandler(Handle:menu, MenuAction:action, param1, param2)
|
||||||
|
{
|
||||||
|
switch (action)
|
||||||
|
{
|
||||||
|
case MenuAction_Select:
|
||||||
|
{
|
||||||
|
decl String:info[32];
|
||||||
|
GetMenuItem(menu, param2, info, sizeof(info));
|
||||||
|
if (StrEqual(info, "1", false))
|
||||||
|
{
|
||||||
|
SetAmbientVolume(param1, 100);
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "2"))
|
||||||
|
{
|
||||||
|
SetAmbientVolume(param1, 80);
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "3"))
|
||||||
|
{
|
||||||
|
SetAmbientVolume(param1, 60);
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "4"))
|
||||||
|
{
|
||||||
|
SetAmbientVolume(param1, 40);
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
else if (StrEqual(info, "5"))
|
||||||
|
{
|
||||||
|
SetAmbientVolume(param1, 20);
|
||||||
|
AmbientVolumeMenu(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_Cancel:
|
||||||
|
{
|
||||||
|
if (param2 == MenuCancel_ExitBack)
|
||||||
|
{
|
||||||
|
VolumeControlMenu(param1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case MenuAction_End:
|
||||||
|
{
|
||||||
|
CloseHandle(menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetAmbientVolume(client, volume)
|
||||||
|
{
|
||||||
|
zfAmbientVolume[client] = volume * 0.01;
|
||||||
|
|
||||||
|
decl String:sValue[8];
|
||||||
|
IntToString(volume, sValue, sizeof(sValue));
|
||||||
|
SetClientCookie(client, g_hAmbientVolumeCookie, sValue);
|
||||||
|
|
||||||
|
if (IsClientInGame(client))
|
||||||
|
{
|
||||||
|
TranslationPrintToChat(client, "Set_Ambient_Volume", volume);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user