Removed debug test commands from previous commit, added ambientsounds module, removed old, and removed some unused translations phrases.
This commit is contained in:
parent
ee9d3a9f39
commit
d5e29b883c
@ -646,40 +646,6 @@
|
|||||||
"ru" "Команда не используется для консоли."
|
"ru" "Команда не используется для консоли."
|
||||||
}
|
}
|
||||||
|
|
||||||
"Restrict weapon mapstart"
|
|
||||||
{
|
|
||||||
"#format" "{1:s}"
|
|
||||||
"en" "Restricted weapon: {1}"
|
|
||||||
"ru" "Запрещенное оружие: {1}"
|
|
||||||
}
|
|
||||||
|
|
||||||
"Restrict weapon group mapstart"
|
|
||||||
{
|
|
||||||
"#format" "{1:s}"
|
|
||||||
"en" "Restricted group: {1}"
|
|
||||||
"ru" "Запрещенная группа: {1}"
|
|
||||||
}
|
|
||||||
|
|
||||||
"Ambient sound load failed"
|
|
||||||
{
|
|
||||||
"#format" "{1:s}"
|
|
||||||
"en" "Invalid sound file: {1}"
|
|
||||||
"ru" "Неправильный звуковой файл: {1}"
|
|
||||||
}
|
|
||||||
|
|
||||||
"Class limit"
|
|
||||||
{
|
|
||||||
"#format" "{1:d}"
|
|
||||||
"en" "The max amount of classes have been exceeded, only loading first {1}."
|
|
||||||
"ru" "Превышено максимальное количество классов, загружаются только первые {1}."
|
|
||||||
}
|
|
||||||
|
|
||||||
"Class auto-disable"
|
|
||||||
{
|
|
||||||
"en" "No classes defined in \"{1}\", disabling classes."
|
|
||||||
"ru" "В \"{1}\" отсутствуют определения классов, классы отключены."
|
|
||||||
}
|
|
||||||
|
|
||||||
"Models loaded"
|
"Models loaded"
|
||||||
{
|
{
|
||||||
"en" "--- Models Loaded ---"
|
"en" "--- Models Loaded ---"
|
||||||
|
@ -22,16 +22,12 @@
|
|||||||
#include "zr/cvars"
|
#include "zr/cvars"
|
||||||
#include "zr/translation"
|
#include "zr/translation"
|
||||||
#include "zr/offsets"
|
#include "zr/offsets"
|
||||||
#include "zr/ambience"
|
|
||||||
#include "zr/models"
|
#include "zr/models"
|
||||||
#include "zr/overlays"
|
#include "zr/overlays"
|
||||||
|
|
||||||
// Class system
|
// Class system
|
||||||
#include "zr/playerclasses/playerclasses"
|
#include "zr/playerclasses/playerclasses"
|
||||||
|
|
||||||
// Antistick
|
|
||||||
#include "zr/antistick"
|
|
||||||
|
|
||||||
#include "zr/anticamp"
|
#include "zr/anticamp"
|
||||||
#include "zr/teleport"
|
#include "zr/teleport"
|
||||||
#include "zr/zombie"
|
#include "zr/zombie"
|
||||||
@ -44,6 +40,9 @@
|
|||||||
// Sound effects
|
// Sound effects
|
||||||
#include "zr/soundeffects/soundeffects"
|
#include "zr/soundeffects/soundeffects"
|
||||||
|
|
||||||
|
// Antistick
|
||||||
|
#include "zr/antistick"
|
||||||
|
|
||||||
// Hitgroups
|
// Hitgroups
|
||||||
#include "zr/hitgroups"
|
#include "zr/hitgroups"
|
||||||
|
|
||||||
@ -146,12 +145,14 @@ public OnMapStart()
|
|||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassLoad();
|
ClassLoad();
|
||||||
WeaponsLoad();
|
WeaponsLoad();
|
||||||
|
SEffectsOnMapStart();
|
||||||
HitgroupsLoad();
|
HitgroupsLoad();
|
||||||
Anticamp_Startup();
|
Anticamp_Startup();
|
||||||
}
|
}
|
||||||
|
|
||||||
public OnMapEnd()
|
public OnMapEnd()
|
||||||
{
|
{
|
||||||
|
// Forward event to modules.
|
||||||
Anticamp_Disable();
|
Anticamp_Disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +177,9 @@ public OnConfigsExecuted()
|
|||||||
}
|
}
|
||||||
|
|
||||||
FindMapSky();
|
FindMapSky();
|
||||||
LoadAmbienceData();
|
|
||||||
|
// Forward event to modules.
|
||||||
|
SEffectsLoad();
|
||||||
}
|
}
|
||||||
|
|
||||||
public OnClientPutInServer(client)
|
public OnClientPutInServer(client)
|
||||||
@ -185,14 +188,12 @@ public OnClientPutInServer(client)
|
|||||||
|
|
||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassClientInit(client);
|
ClassClientInit(client);
|
||||||
ZombieSoundsClientInit(client);
|
SEffectsClientInit(client);
|
||||||
WeaponsClientInit(client);
|
WeaponsClientInit(client);
|
||||||
SpawnProtectClientInit(client);
|
SpawnProtectClientInit(client);
|
||||||
RespawnClientInit(client);
|
RespawnClientInit(client);
|
||||||
ZHPClientInit(client);
|
ZHPClientInit(client);
|
||||||
|
|
||||||
if (!IsFakeClient(client)) AmbienceStart(client);
|
|
||||||
|
|
||||||
ClientHookAttack(client);
|
ClientHookAttack(client);
|
||||||
FindClientDXLevel(client);
|
FindClientDXLevel(client);
|
||||||
|
|
||||||
@ -214,7 +215,6 @@ public OnClientDisconnect(client)
|
|||||||
ClassOnClientDisconnect(client);
|
ClassOnClientDisconnect(client);
|
||||||
WeaponsOnClientDisconnect(client);
|
WeaponsOnClientDisconnect(client);
|
||||||
ZTeleResetClient(client);
|
ZTeleResetClient(client);
|
||||||
AmbienceStop(client);
|
|
||||||
|
|
||||||
for (new x = 0; x < MAXTIMERS; x++)
|
for (new x = 0; x < MAXTIMERS; x++)
|
||||||
{
|
{
|
||||||
@ -232,7 +232,6 @@ MapChangeCleanup()
|
|||||||
{
|
{
|
||||||
tRound = INVALID_HANDLE;
|
tRound = INVALID_HANDLE;
|
||||||
tInfect = INVALID_HANDLE;
|
tInfect = INVALID_HANDLE;
|
||||||
AmbienceStopAll();
|
|
||||||
AntiStickReset();
|
AntiStickReset();
|
||||||
|
|
||||||
// x = client index.
|
// x = client index.
|
||||||
|
@ -1,139 +0,0 @@
|
|||||||
/**
|
|
||||||
* ====================
|
|
||||||
* Zombie:Reloaded
|
|
||||||
* File: ambience.inc
|
|
||||||
* Author: Greyscale
|
|
||||||
* ====================
|
|
||||||
*/
|
|
||||||
|
|
||||||
// TODO: Move skybox and lightning functions into this file.
|
|
||||||
|
|
||||||
new bool:AmbienceLoaded = false;
|
|
||||||
new String:AmbienceSound[64];
|
|
||||||
new Float:AmbienceVolume;
|
|
||||||
new Handle:tAmbience[MAXPLAYERS + 1] = {INVALID_HANDLE, ...};
|
|
||||||
|
|
||||||
LoadAmbienceData()
|
|
||||||
{
|
|
||||||
new bool:ambience = GetConVarBool(gCvars[CVAR_AMBIENCE]);
|
|
||||||
if (!ambience)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
decl String:sound[64];
|
|
||||||
GetConVarString(gCvars[CVAR_AMBIENCE_FILE], AmbienceSound, sizeof(AmbienceSound));
|
|
||||||
Format(sound, sizeof(sound), "sound/%s", AmbienceSound);
|
|
||||||
|
|
||||||
AmbienceLoaded = FileExists(sound, true);
|
|
||||||
|
|
||||||
if (AmbienceLoaded)
|
|
||||||
{
|
|
||||||
AddFileToDownloadsTable(sound);
|
|
||||||
PrecacheSound(AmbienceSound);
|
|
||||||
AmbienceVolume = GetConVarFloat(gCvars[CVAR_AMBIENCE_VOLUME]);
|
|
||||||
|
|
||||||
if (AmbienceVolume <= 0.0)
|
|
||||||
{
|
|
||||||
// No reason to play ambience sound if it's muted.
|
|
||||||
AmbienceLoaded = false;
|
|
||||||
if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_AMBIENCE)) ZR_LogMessageFormatted(-1, "ambience", "startup", "Ambience volume is muted or invalid.", LOG_FORMAT_TYPE_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LogFlagCheck(LOG_DEBUG, LOG_MODULE_AMBIENCE)) ZR_LogMessageFormatted(-1, "ambience", "startup", "Ambience sound loaded.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_AMBIENCE))
|
|
||||||
{
|
|
||||||
decl String:log_message[256];
|
|
||||||
ZR_TranslateMessage(log_message, sizeof(log_message), "Ambience sound load failed", sound);
|
|
||||||
ZR_LogMessageFormatted(-1, "ambience", "startup", log_message, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbienceStart(client)
|
|
||||||
{
|
|
||||||
if (!AmbienceLoaded)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
new bool:ambience = GetConVarBool(gCvars[CVAR_AMBIENCE]);
|
|
||||||
if (!ambience)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
new Float:delay = GetConVarFloat(gCvars[CVAR_AMBIENCE_LENGTH]);
|
|
||||||
if (delay <= 0.0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsClientConnected(client) || !IsClientInGame(client))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LogFlagCheck(LOG_DEBUG, LOG_MODULE_AMBIENCE)) ZR_LogMessageFormatted(client, "ambience", "start", "Starting ambience on client %d...", _, client);
|
|
||||||
AmbiencePlay(client);
|
|
||||||
tAmbience[client] = CreateTimer(delay, AmbienceTimer, client, TIMER_FLAG_NO_MAPCHANGE | TIMER_REPEAT);
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbienceStop(client)
|
|
||||||
{
|
|
||||||
if (tAmbience[client] != INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
KillTimer(tAmbience[client]);
|
|
||||||
tAmbience[client] = INVALID_HANDLE;
|
|
||||||
if (IsClientConnected(client) && IsClientInGame(client))
|
|
||||||
{
|
|
||||||
StopSound(client, SNDCHAN_AUTO, AmbienceSound);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbienceStopAll()
|
|
||||||
{
|
|
||||||
// x = client index.
|
|
||||||
for (new x = 1; x < MaxClients; x++)
|
|
||||||
{
|
|
||||||
AmbienceStop(x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbienceRestart(client)
|
|
||||||
{
|
|
||||||
AmbienceStop(client);
|
|
||||||
AmbienceStart(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbienceRestartAll()
|
|
||||||
{
|
|
||||||
// x = client index.
|
|
||||||
for (new x = 1; x < MaxClients; x++)
|
|
||||||
{
|
|
||||||
AmbienceRestart(x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Action:AmbienceTimer(Handle:timer, any:client)
|
|
||||||
{
|
|
||||||
new bool:ambience = GetConVarBool(gCvars[CVAR_AMBIENCE]);
|
|
||||||
if (!ambience || !AmbienceLoaded)
|
|
||||||
{
|
|
||||||
KillTimer(tAmbience[client]);
|
|
||||||
tAmbience[client] = INVALID_HANDLE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbiencePlay(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
AmbiencePlay(client)
|
|
||||||
{
|
|
||||||
EmitSoundToClient(client, AmbienceSound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, AmbienceVolume, SNDPITCH_NORMAL, -1, NULL_VECTOR, NULL_VECTOR, true, 0.0);
|
|
||||||
if (LogFlagCheck(LOG_DEBUG, LOG_MODULE_AMBIENCE)) ZR_LogMessageFormatted(client, "ambience", "play", "Playing ambience sound on client %d.", _, client);
|
|
||||||
}
|
|
@ -21,6 +21,15 @@
|
|||||||
*/
|
*/
|
||||||
new Handle:tAntiStick = INVALID_HANDLE;
|
new Handle:tAntiStick = INVALID_HANDLE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The round is starting.
|
||||||
|
*/
|
||||||
|
AntiStickOnRoundStart()
|
||||||
|
{
|
||||||
|
// Restart antistick timer.
|
||||||
|
AntiStickRestart();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restarts the AntiStickTimer function.
|
* Restarts the AntiStickTimer function.
|
||||||
*/
|
*/
|
||||||
@ -97,8 +106,7 @@ AntiStickIsStuck(client)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repeated timer function.
|
* Timer callback, automatically unsticks players that are stuck together.
|
||||||
* Automatically unsticks players that are stuck together.
|
|
||||||
*/
|
*/
|
||||||
public Action:AntiStickTimer(Handle:timer)
|
public Action:AntiStickTimer(Handle:timer)
|
||||||
{
|
{
|
||||||
|
@ -311,7 +311,7 @@ public Action:Command_LogFlags(client, argc)
|
|||||||
ReplyToCommand(client, message);
|
ReplyToCommand(client, message);
|
||||||
message[0] = 0;
|
message[0] = 0;
|
||||||
|
|
||||||
StrCat(message, sizeof(message), "LOG_MODULE_AMBIENCE (2048) - ambience.inc\n");
|
StrCat(message, sizeof(message), "LOG_MODULE_AMBIENTSOUNDS (2048) - ambientsounds.inc\n");
|
||||||
StrCat(message, sizeof(message), "LOG_MODULE_OVERLAYS (4096) - overlays.inc\n");
|
StrCat(message, sizeof(message), "LOG_MODULE_OVERLAYS (4096) - overlays.inc\n");
|
||||||
StrCat(message, sizeof(message), "LOG_MODULE_SAYTRIGGERS (8192) - sayhooks.inc\n");
|
StrCat(message, sizeof(message), "LOG_MODULE_SAYTRIGGERS (8192) - sayhooks.inc\n");
|
||||||
StrCat(message, sizeof(message), "LOG_MODULE_TELEPORT (16384) - teleport.inc\n");
|
StrCat(message, sizeof(message), "LOG_MODULE_TELEPORT (16384) - teleport.inc\n");
|
||||||
|
@ -11,10 +11,10 @@ enum ZRSettings
|
|||||||
Handle:CVAR_ENABLE,
|
Handle:CVAR_ENABLE,
|
||||||
Handle:CVAR_LOG,
|
Handle:CVAR_LOG,
|
||||||
Handle:CVAR_ALLOW_PLAYER_TEAM,
|
Handle:CVAR_ALLOW_PLAYER_TEAM,
|
||||||
Handle:CVAR_AMBIENCE,
|
Handle:CVAR_AMBIENTSOUNDS,
|
||||||
Handle:CVAR_AMBIENCE_FILE,
|
Handle:CVAR_AMBIENTSOUNDS_FILE,
|
||||||
Handle:CVAR_AMBIENCE_LENGTH,
|
Handle:CVAR_AMBIENTSOUNDS_LENGTH,
|
||||||
Handle:CVAR_AMBIENCE_VOLUME,
|
Handle:CVAR_AMBIENTSOUNDS_VOLUME,
|
||||||
Handle:CVAR_SOUNDEFFECTS_MOAN,
|
Handle:CVAR_SOUNDEFFECTS_MOAN,
|
||||||
Handle:CVAR_SOUNDEFFECTS_GROAN,
|
Handle:CVAR_SOUNDEFFECTS_GROAN,
|
||||||
Handle:CVAR_SOUNDEFFECTS_DEATH,
|
Handle:CVAR_SOUNDEFFECTS_DEATH,
|
||||||
@ -101,10 +101,10 @@ CreateCvars()
|
|||||||
gCvars[CVAR_ENABLE] = CreateConVar("zr_enable", "1", "Enable zombie gameplay (0: Disable)");
|
gCvars[CVAR_ENABLE] = CreateConVar("zr_enable", "1", "Enable zombie gameplay (0: Disable)");
|
||||||
gCvars[CVAR_LOG] = CreateConVar("zr_log", "331", "Logging flags. Log messages to sourcemod logs, server console or client console. Use zr_log_flags to see a list of flags. (0: Disable)");
|
gCvars[CVAR_LOG] = CreateConVar("zr_log", "331", "Logging flags. Log messages to sourcemod logs, server console or client console. Use zr_log_flags to see a list of flags. (0: Disable)");
|
||||||
gCvars[CVAR_ALLOW_PLAYER_TEAM] = CreateConVar("zr_allow_player_team", "0", "This will allow the player_team event to be fired on first team join, enable when using mani model menu (0: Disable)");
|
gCvars[CVAR_ALLOW_PLAYER_TEAM] = CreateConVar("zr_allow_player_team", "0", "This will allow the player_team event to be fired on first team join, enable when using mani model menu (0: Disable)");
|
||||||
gCvars[CVAR_AMBIENCE] = CreateConVar("zr_ambience", "1", "Enable creepy ambience to be played throughout the game (0: Disable)");
|
gCvars[CVAR_AMBIENTSOUNDS] = CreateConVar("zr_ambientsounds", "1", "Enable creepy ambience to be played throughout the game (0: Disable)");
|
||||||
gCvars[CVAR_AMBIENCE_FILE] = CreateConVar("zr_ambience_file", "ambient/zr/zr_ambience.mp3", "Path to ambient sound file that will be played throughout the game, when zr_ambience is 1");
|
gCvars[CVAR_AMBIENTSOUNDS_FILE] = CreateConVar("zr_ambientsounds_file", "ambient/zr/zr_ambience.mp3", "Path to ambient sound file that will be played throughout the game, when zr_ambience is 1");
|
||||||
gCvars[CVAR_AMBIENCE_LENGTH] = CreateConVar("zr_ambience_length", "60.0", "The length, in seconds, of the ambient sound file");
|
gCvars[CVAR_AMBIENTSOUNDS_LENGTH] = CreateConVar("zr_ambientsounds_length", "60.0", "The length, in seconds, of the ambient sound file");
|
||||||
gCvars[CVAR_AMBIENCE_VOLUME] = CreateConVar("zr_ambience_volume", "0.6", "Volume of ambient sounds when zr_ambience is 1 (0.0: Unhearable, 1.0: Max volume)");
|
gCvars[CVAR_AMBIENTSOUNDS_VOLUME] = CreateConVar("zr_ambientsounds_volume", "1.0", "Volume of ambient sounds when zr_ambience is 1 (0.0: Unhearable, 1.0: Max volume)");
|
||||||
gCvars[CVAR_SOUNDEFFECTS_MOAN] = CreateConVar("zr_soundeffects_moan", "50", "How often, in seconds, a zombie moans (0: Disable)");
|
gCvars[CVAR_SOUNDEFFECTS_MOAN] = CreateConVar("zr_soundeffects_moan", "50", "How often, in seconds, a zombie moans (0: Disable)");
|
||||||
gCvars[CVAR_SOUNDEFFECTS_GROAN] = CreateConVar("zr_soundeffects_groan", "5", "Chance factor a zombie will groan when shot (Lower: More often, 0: Disable)");
|
gCvars[CVAR_SOUNDEFFECTS_GROAN] = CreateConVar("zr_soundeffects_groan", "5", "Chance factor a zombie will groan when shot (Lower: More often, 0: Disable)");
|
||||||
gCvars[CVAR_SOUNDEFFECTS_DEATH] = CreateConVar("zr_soundeffects_death", "1", "Zombie will emit a death sound when killed 0: Disable)");
|
gCvars[CVAR_SOUNDEFFECTS_DEATH] = CreateConVar("zr_soundeffects_death", "1", "Zombie will emit a death sound when killed 0: Disable)");
|
||||||
|
@ -33,10 +33,12 @@ UnhookEvents()
|
|||||||
public Action:RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
|
public Action:RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
|
||||||
{
|
{
|
||||||
ChangeLightStyle();
|
ChangeLightStyle();
|
||||||
AmbienceRestartAll();
|
|
||||||
AntiStickRestart();
|
|
||||||
RefreshList();
|
RefreshList();
|
||||||
|
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
SEffectsOnRoundStart();
|
||||||
|
AntiStickOnRoundStart();
|
||||||
|
|
||||||
if (tRound != INVALID_HANDLE)
|
if (tRound != INVALID_HANDLE)
|
||||||
{
|
{
|
||||||
KillTimer(tRound);
|
KillTimer(tRound);
|
||||||
@ -74,6 +76,7 @@ public Action:RoundFreezeEnd(Handle:event, const String:name[], bool:dontBroadca
|
|||||||
new Float:randlen = GetRandomFloat(min, max);
|
new Float:randlen = GetRandomFloat(min, max);
|
||||||
tInfect = CreateTimer(randlen, MotherZombie, _, TIMER_FLAG_NO_MAPCHANGE);
|
tInfect = CreateTimer(randlen, MotherZombie, _, TIMER_FLAG_NO_MAPCHANGE);
|
||||||
|
|
||||||
|
// Forward events to modules.
|
||||||
ZTeleEnable();
|
ZTeleEnable();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -193,7 +196,7 @@ public Action:PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
|
|||||||
|
|
||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassOnClientSpawn(index);
|
ClassOnClientSpawn(index);
|
||||||
ZombieSoundsOnClientSpawn(index);
|
SEffectsOnClientSpawn(index);
|
||||||
SpawnProtectOnClientSpawn(index);
|
SpawnProtectOnClientSpawn(index);
|
||||||
RespawnOnClientSpawn(index);
|
RespawnOnClientSpawn(index);
|
||||||
ZHPOnClientSpawn(index);
|
ZHPOnClientSpawn(index);
|
||||||
@ -241,7 +244,7 @@ public Action:PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
|
|||||||
|
|
||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassAlphaUpdate(index);
|
ClassAlphaUpdate(index);
|
||||||
ZombieSoundsOnClientHurt(index);
|
SEffectsOnClientHurt(index);
|
||||||
KnockbackOnClientHurt(index, attacker, weapon, hitgroup, dmg_health);
|
KnockbackOnClientHurt(index, attacker, weapon, hitgroup, dmg_health);
|
||||||
ZHPOnPlayerHurt(index);
|
ZHPOnPlayerHurt(index);
|
||||||
}
|
}
|
||||||
@ -308,7 +311,7 @@ public Action:PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
|
|||||||
|
|
||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassOnClientDeath(index);
|
ClassOnClientDeath(index);
|
||||||
ZombieSoundsOnClientDeath(index);
|
SEffectsOnClientDeath(index);
|
||||||
SpawnProtectOnClientDeath(index);
|
SpawnProtectOnClientDeath(index);
|
||||||
RespawnOnClientDeath(index, attacker, weapon);
|
RespawnOnClientDeath(index, attacker, weapon);
|
||||||
ZHPOnClientDeath(index);
|
ZHPOnClientDeath(index);
|
||||||
|
@ -16,57 +16,67 @@
|
|||||||
*/
|
*/
|
||||||
KnockbackOnClientHurt(client, attacker, const String:weapon[], hitgroup, dmg_health)
|
KnockbackOnClientHurt(client, attacker, const String:weapon[], hitgroup, dmg_health)
|
||||||
{
|
{
|
||||||
// Check if the attacker is a player.
|
// If attacker is invalid, then stop.
|
||||||
if (attacker != 0)
|
if (!ZRIsValidClient(attacker))
|
||||||
{
|
{
|
||||||
// Check if a human attacks a zombie.
|
return;
|
||||||
if (IsPlayerZombie(client) && IsPlayerHuman(attacker))
|
}
|
||||||
|
|
||||||
|
// Client is a human, then stop.
|
||||||
|
if (IsPlayerHuman(client))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If attacker is a zombie, then stop.
|
||||||
|
if (IsPlayerZombie(attacker))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get zombie knockback value.
|
||||||
|
new Float:knockback = ClassGetKnockback(client);
|
||||||
|
|
||||||
|
new Float:clientloc[3];
|
||||||
|
new Float:attackerloc[3];
|
||||||
|
|
||||||
|
GetClientAbsOrigin(client, clientloc);
|
||||||
|
|
||||||
|
// Check if a grenade was thrown.
|
||||||
|
if (StrEqual(weapon, "hegrenade"))
|
||||||
|
{
|
||||||
|
// Get the location of the grenade.
|
||||||
|
if (KnockbackFindExplodingGrenade(attackerloc) == -1)
|
||||||
{
|
{
|
||||||
// Get zombie knockback value.
|
// If the grenade wasn't found, then stop.
|
||||||
new Float:knockback = ClassGetKnockback(client);
|
return;
|
||||||
|
|
||||||
new Float:clientloc[3];
|
|
||||||
new Float:attackerloc[3];
|
|
||||||
|
|
||||||
GetClientAbsOrigin(client, clientloc);
|
|
||||||
|
|
||||||
// Check if a grenade was thrown.
|
|
||||||
if (StrEqual(weapon, "hegrenade"))
|
|
||||||
{
|
|
||||||
// Get the location of the grenade.
|
|
||||||
if (KnockbackFindExplodingGrenade(attackerloc) == -1)
|
|
||||||
{
|
|
||||||
// If the grenade wasn't found, then stop.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Get attackers eye position.
|
|
||||||
GetPlayerEyePosition(attacker, attackerloc);
|
|
||||||
|
|
||||||
// Get attackers eye angles.
|
|
||||||
new Float:attackerang[3];
|
|
||||||
GetPlayerEyeAngles(attacker, attackerang);
|
|
||||||
|
|
||||||
// Calculate knockback end-vector.
|
|
||||||
TR_TraceRayFilter(attackerloc, attackerang, MASK_ALL, RayType_Infinite, KnockbackTRFilter);
|
|
||||||
TR_GetEndPosition(clientloc);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Retrieve weapon knockback boost.
|
|
||||||
new Float:boostWeapon = WeaponGetWeaponKnockback(weapon);
|
|
||||||
|
|
||||||
// Retrieve hitgroup knockback boost.
|
|
||||||
new Float:boostHitgroup = HitgroupsGetHitgroupKnockback(hitgroup);
|
|
||||||
|
|
||||||
// Apply all knockback multipliers.
|
|
||||||
knockback *= float(dmg_health) * boostWeapon * boostHitgroup;
|
|
||||||
|
|
||||||
// Apply knockback.
|
|
||||||
KnockbackSetVelocity(client, attackerloc, clientloc, knockback);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Get attackers eye position.
|
||||||
|
GetPlayerEyePosition(attacker, attackerloc);
|
||||||
|
|
||||||
|
// Get attackers eye angles.
|
||||||
|
new Float:attackerang[3];
|
||||||
|
GetPlayerEyeAngles(attacker, attackerang);
|
||||||
|
|
||||||
|
// Calculate knockback end-vector.
|
||||||
|
TR_TraceRayFilter(attackerloc, attackerang, MASK_ALL, RayType_Infinite, KnockbackTRFilter);
|
||||||
|
TR_GetEndPosition(clientloc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve weapon knockback boost.
|
||||||
|
new Float:boostWeapon = WeaponGetWeaponKnockback(weapon);
|
||||||
|
|
||||||
|
// Retrieve hitgroup knockback boost.
|
||||||
|
new Float:boostHitgroup = HitgroupsGetHitgroupKnockback(hitgroup);
|
||||||
|
|
||||||
|
// Apply all knockback multipliers.
|
||||||
|
knockback *= float(dmg_health) * boostWeapon * boostHitgroup;
|
||||||
|
|
||||||
|
// Apply knockback.
|
||||||
|
KnockbackSetVelocity(client, attackerloc, clientloc, knockback);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,14 +75,6 @@ public Action:SayCommand(client, argc)
|
|||||||
{
|
{
|
||||||
ZR_PrintToChat(client, "!ztele stuck");
|
ZR_PrintToChat(client, "!ztele stuck");
|
||||||
}
|
}
|
||||||
else if (StrEqual(args, "play", false))
|
|
||||||
{
|
|
||||||
SEffectsEmitAmbientSound("ambient/machines/heli_pass_distant1.wav");
|
|
||||||
}
|
|
||||||
else if (StrEqual(args, "stop", false))
|
|
||||||
{
|
|
||||||
SEffectsStopAmbientSound("ambient/machines/heli_pass_distant1.wav");
|
|
||||||
}
|
|
||||||
|
|
||||||
return Plugin_Continue;
|
return Plugin_Continue;
|
||||||
}
|
}
|
||||||
|
214
src/zr/soundeffects/ambientsounds.inc
Normal file
214
src/zr/soundeffects/ambientsounds.inc
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
/*
|
||||||
|
* ============================================================================
|
||||||
|
*
|
||||||
|
* Zombie:Reloaded
|
||||||
|
*
|
||||||
|
* File: ambientsounds.inc
|
||||||
|
* Description: Plays ambient sounds to clients.
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global variable that tells if ambient sound cvar data was loaded successfully.
|
||||||
|
*/
|
||||||
|
new bool:g_bAmbientSounds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global variable to store ambient sounds timer handle.
|
||||||
|
*/
|
||||||
|
new Handle:tAmbientSounds = INVALID_HANDLE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array for flagging client to play sound.
|
||||||
|
*/
|
||||||
|
new bool:bAmbientSoundsIsPlaying[MAXPLAYERS + 1];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load ambient sound data.
|
||||||
|
*/
|
||||||
|
AmbientSoundsLoad()
|
||||||
|
{
|
||||||
|
// Validate cvars.
|
||||||
|
g_bAmbientSounds = AmbientSoundsValidateConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client is joining the server.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
AmbientSoundsClientInit(client)
|
||||||
|
{
|
||||||
|
// Reset flag to play sound on client.
|
||||||
|
bAmbientSoundsIsPlaying[client] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate ambient sounds cvars.
|
||||||
|
*/
|
||||||
|
bool:AmbientSoundsValidateConfig()
|
||||||
|
{
|
||||||
|
// If ambience is disabled, then stop.
|
||||||
|
new bool:ambience = GetConVarBool(gCvars[CVAR_AMBIENTSOUNDS]);
|
||||||
|
if (!ambience)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If logging is disabled for ambient sounds, then stop.
|
||||||
|
if (!LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_AMBIENTSOUNDS))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get ambient sound file.
|
||||||
|
decl String:sound[SOUND_MAX_PATH];
|
||||||
|
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
|
||||||
|
Format(sound, sizeof(sound), "sound/%s", sound);
|
||||||
|
|
||||||
|
// If file doesn't exist, then log error and stop.
|
||||||
|
if (!FileExists(sound, true))
|
||||||
|
{
|
||||||
|
// Log invalid sound file error.
|
||||||
|
ZR_LogMessageFormatted(-1, "Ambient Sounds", "Config Validation", "Invalid sound file specified in zr_ambientsounds_file.", LOG_FORMAT_TYPE_ERROR);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If volume is muted or invalid, then log error and stop.
|
||||||
|
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]);
|
||||||
|
if (ambientvolume <= 0.0)
|
||||||
|
{
|
||||||
|
// Log invalid ambient sound volume error.
|
||||||
|
ZR_LogMessageFormatted(-1, "Ambient Sounds", "Config Validation", "Ambient sound is either muted or invalid.", LOG_FORMAT_TYPE_ERROR);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If length is invalid, then log error and stop.
|
||||||
|
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]);
|
||||||
|
if (ambientlength <= 0.0)
|
||||||
|
{
|
||||||
|
// Log invalid ambient sound length error.
|
||||||
|
ZR_LogMessageFormatted(-1, "Ambient Sounds", "Config Validation", "Ambient sound length is invalid.", LOG_FORMAT_TYPE_ERROR);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add sound file to downloads table.
|
||||||
|
AddFileToDownloadsTable(sound);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map is starting.
|
||||||
|
*/
|
||||||
|
AmbientSoundsOnMapStart()
|
||||||
|
{
|
||||||
|
// Reset timer handle.
|
||||||
|
tAmbientSounds = INVALID_HANDLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The round is starting.
|
||||||
|
*/
|
||||||
|
AmbientSoundsOnRoundStart()
|
||||||
|
{
|
||||||
|
// Restart ambient sound for all clients.
|
||||||
|
AmbientSoundsRestart();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client is spawning into the game.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
AmbientSoundsOnClientSpawn(client)
|
||||||
|
{
|
||||||
|
// If ambience is disabled, then stop.
|
||||||
|
if (!g_bAmbientSounds)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If flag is enabled, then stop.
|
||||||
|
if (bAmbientSoundsIsPlaying[client])
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get ambient sound file.
|
||||||
|
decl String:sound[SOUND_MAX_PATH];
|
||||||
|
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
|
||||||
|
|
||||||
|
// Get ambient sound volume.
|
||||||
|
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]);
|
||||||
|
|
||||||
|
// Emit ambient sound.
|
||||||
|
SEffectsEmitAmbientSound(sound, ambientvolume, client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restart ambient sound for all clients.
|
||||||
|
*/
|
||||||
|
AmbientSoundsRestart()
|
||||||
|
{
|
||||||
|
// If timer is running, kill it.
|
||||||
|
if (tAmbientSounds != INVALID_HANDLE)
|
||||||
|
{
|
||||||
|
KillTimer(tAmbientSounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If ambience is disabled, then stop.
|
||||||
|
if (!g_bAmbientSounds)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// x = client index
|
||||||
|
for (new x = 1; x <= MaxClients; x++)
|
||||||
|
{
|
||||||
|
// If client isn't in-game, then stop.
|
||||||
|
if (!IsClientInGame(x))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
bAmbientSoundsIsPlaying[x] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get ambient sound length.
|
||||||
|
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]);
|
||||||
|
|
||||||
|
// Start ambient sounds timer.
|
||||||
|
tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Timer callback, Replays ambient sound on all clients.
|
||||||
|
*
|
||||||
|
* @param timer The timer handle.
|
||||||
|
*/
|
||||||
|
public Action:AmbientSoundsTimer(Handle:timer)
|
||||||
|
{
|
||||||
|
// If ambience is disabled, then stop.
|
||||||
|
if (!g_bAmbientSounds)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get ambient sound file.
|
||||||
|
decl String:sound[SOUND_MAX_PATH];
|
||||||
|
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
|
||||||
|
|
||||||
|
// Get ambient sound volume.
|
||||||
|
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]);
|
||||||
|
|
||||||
|
// Emit ambient sound.
|
||||||
|
SEffectsEmitAmbientSound(sound, ambientvolume);
|
||||||
|
|
||||||
|
// Get ambient sound length.
|
||||||
|
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]);
|
||||||
|
|
||||||
|
// Start new timer with sound length as delay.
|
||||||
|
tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE);
|
||||||
|
}
|
@ -19,22 +19,139 @@
|
|||||||
*/
|
*/
|
||||||
#define SOUND_AMBIENT_CHANNEL 8
|
#define SOUND_AMBIENT_CHANNEL 8
|
||||||
|
|
||||||
|
#include "zr/soundeffects/ambientsounds"
|
||||||
#include "zr/soundeffects/zombiesounds"
|
#include "zr/soundeffects/zombiesounds"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Emits an ambient sound
|
* Load sound effects data.
|
||||||
*/
|
*/
|
||||||
SEffectsEmitAmbientSound(const String:sound[], Float:soundvolume = 1.0)
|
SEffectsLoad()
|
||||||
|
{
|
||||||
|
// Load ambient sound cvars.
|
||||||
|
AmbientSoundsLoad();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map is starting.
|
||||||
|
*/
|
||||||
|
SEffectsOnMapStart()
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
AmbientSoundsOnMapStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client is joining the server.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
SEffectsClientInit(client)
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
AmbientSoundsClientInit(client);
|
||||||
|
ZombieSoundsClientInit(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The round is starting.
|
||||||
|
*/
|
||||||
|
SEffectsOnRoundStart()
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
AmbientSoundsOnRoundStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client is spawning into the game.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
SEffectsOnClientSpawn(client)
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
AmbientSoundsOnClientSpawn(client);
|
||||||
|
ZombieSoundsOnClientSpawn(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client has been killed.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
SEffectsOnClientDeath(client)
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
ZombieSoundsOnClientDeath(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client has been hurt.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
SEffectsOnClientHurt(client)
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
ZombieSoundsOnClientHurt(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Client has been infected.
|
||||||
|
*
|
||||||
|
* @param client The client index.
|
||||||
|
*/
|
||||||
|
SEffectsOnClientInfected(client)
|
||||||
|
{
|
||||||
|
// Forward event to sub-modules.
|
||||||
|
ZombieSoundsOnClientInfected(client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Emits an ambient sound
|
||||||
|
*
|
||||||
|
* @param sound The path to the sound file (relative to sounds/)
|
||||||
|
* @param soundvolume The volume of the sound (0.0 - 1.0)
|
||||||
|
* @param client (Optional) Client index to play sound to.
|
||||||
|
*/
|
||||||
|
SEffectsEmitAmbientSound(const String:sound[], Float:ambientvolume = 1.0, client = -1)
|
||||||
{
|
{
|
||||||
// Precache sound before playing.
|
// Precache sound before playing.
|
||||||
PrecacheSound(sound);
|
PrecacheSound(sound);
|
||||||
|
|
||||||
// Emit ambient sound.
|
// Stop sound before playing again.
|
||||||
EmitSoundToAll(sound, SOUND_FROM_PLAYER, SOUND_AMBIENT_CHANNEL, _, _, soundvolume);
|
SEffectsStopAmbientSound(sound);
|
||||||
|
|
||||||
|
if (ZRIsValidClient(client))
|
||||||
|
{
|
||||||
|
// Emit ambient sound.
|
||||||
|
EmitSoundToClient(client, sound, SOUND_FROM_PLAYER, SOUND_AMBIENT_CHANNEL, _, _, ambientvolume);
|
||||||
|
|
||||||
|
// Flag client that sound is playing.
|
||||||
|
bAmbientSoundsIsPlaying[client] = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (new x = 1; x <= MaxClients; x++)
|
||||||
|
{
|
||||||
|
// If client isn't in-game, then stop.
|
||||||
|
if (!IsClientInGame(x))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Emit ambient sound.
|
||||||
|
EmitSoundToClient(x, sound, SOUND_FROM_PLAYER, SOUND_AMBIENT_CHANNEL, _, _, ambientvolume);
|
||||||
|
|
||||||
|
// Flag client that sound is playing.
|
||||||
|
bAmbientSoundsIsPlaying[x] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop an ambient sound
|
* Stop an ambient sound
|
||||||
|
*
|
||||||
|
* @param sound The path to the sound file (relative to sounds/)
|
||||||
*/
|
*/
|
||||||
SEffectsStopAmbientSound(const String:sound[])
|
SEffectsStopAmbientSound(const String:sound[])
|
||||||
{
|
{
|
||||||
@ -52,6 +169,12 @@ SEffectsStopAmbientSound(const String:sound[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replay an ambient sound
|
||||||
|
*
|
||||||
|
* @param sound The path to the sound file (relative to sounds/)
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Emits a sound from a client.
|
* Emits a sound from a client.
|
||||||
*
|
*
|
||||||
|
@ -176,7 +176,8 @@ ZombieSoundsOnClientInfected(client)
|
|||||||
/**
|
/**
|
||||||
* Gets a random zombie sound from hl2 folder.
|
* Gets a random zombie sound from hl2 folder.
|
||||||
*
|
*
|
||||||
* @param sound The randomly picked moan sound.
|
* @param sound The randomly picked sound.
|
||||||
|
* @param soundtype The type of sound to get. (See enum ZombieSounds)
|
||||||
* @return True if sound was successfully picked, false otherwise.
|
* @return True if sound was successfully picked, false otherwise.
|
||||||
*/
|
*/
|
||||||
bool:ZombieSoundsGetRandomSound(String:sound[], ZombieSounds:soundtype)
|
bool:ZombieSoundsGetRandomSound(String:sound[], ZombieSounds:soundtype)
|
||||||
|
@ -514,7 +514,7 @@ ZRLogFlagsMenu(client)
|
|||||||
decl String:z_log_ignore_console[64];
|
decl String:z_log_ignore_console[64];
|
||||||
decl String:z_log_modules_enabled[64];
|
decl String:z_log_modules_enabled[64];
|
||||||
decl String:z_log_module_zombie[64];
|
decl String:z_log_module_zombie[64];
|
||||||
decl String:z_log_module_ambience[64];
|
decl String:z_log_module_ambientsounds[64];
|
||||||
decl String:z_log_module_overlays[64];
|
decl String:z_log_module_overlays[64];
|
||||||
decl String:z_log_module_saytriggers[64];
|
decl String:z_log_module_saytriggers[64];
|
||||||
decl String:z_log_module_teleport[64];
|
decl String:z_log_module_teleport[64];
|
||||||
@ -537,7 +537,7 @@ ZRLogFlagsMenu(client)
|
|||||||
Format(z_log_ignore_console, sizeof(z_log_ignore_console), "Don't log messages from the console (%d)", LogHasFlag(LOG_IGNORE_CONSOLE));
|
Format(z_log_ignore_console, sizeof(z_log_ignore_console), "Don't log messages from the console (%d)", LogHasFlag(LOG_IGNORE_CONSOLE));
|
||||||
Format(z_log_modules_enabled, sizeof(z_log_modules_enabled), "Module based log control (%d)", LogHasFlag(LOG_MODULES_ENABLED));
|
Format(z_log_modules_enabled, sizeof(z_log_modules_enabled), "Module based log control (%d)", LogHasFlag(LOG_MODULES_ENABLED));
|
||||||
Format(z_log_module_zombie, sizeof(z_log_module_zombie), "Zombie (%d)", LogHasFlag(LOG_MODULE_ZOMBIE));
|
Format(z_log_module_zombie, sizeof(z_log_module_zombie), "Zombie (%d)", LogHasFlag(LOG_MODULE_ZOMBIE));
|
||||||
Format(z_log_module_ambience, sizeof(z_log_module_ambience), "Ambience (%d)", LogHasFlag(LOG_MODULE_AMBIENCE));
|
Format(z_log_module_ambientsounds, sizeof(z_log_module_ambientsounds), "Ambient Sounds (%d)", LogHasFlag(LOG_MODULE_AMBIENTSOUNDS));
|
||||||
Format(z_log_module_overlays, sizeof(z_log_module_overlays), "Overlays (%d)", LogHasFlag(LOG_MODULE_OVERLAYS));
|
Format(z_log_module_overlays, sizeof(z_log_module_overlays), "Overlays (%d)", LogHasFlag(LOG_MODULE_OVERLAYS));
|
||||||
Format(z_log_module_saytriggers, sizeof(z_log_module_saytriggers), "Chat commands (%d)", LogHasFlag(LOG_MODULE_SAYTRIGGERS));
|
Format(z_log_module_saytriggers, sizeof(z_log_module_saytriggers), "Chat commands (%d)", LogHasFlag(LOG_MODULE_SAYTRIGGERS));
|
||||||
Format(z_log_module_teleport, sizeof(z_log_module_teleport), "Teleporter (%d)", LogHasFlag(LOG_MODULE_TELEPORT));
|
Format(z_log_module_teleport, sizeof(z_log_module_teleport), "Teleporter (%d)", LogHasFlag(LOG_MODULE_TELEPORT));
|
||||||
@ -560,7 +560,7 @@ ZRLogFlagsMenu(client)
|
|||||||
AddMenuItem(menu_log_flags, z_log_ignore_console, z_log_ignore_console, item_state);
|
AddMenuItem(menu_log_flags, z_log_ignore_console, z_log_ignore_console, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_modules_enabled, z_log_modules_enabled, item_state);
|
AddMenuItem(menu_log_flags, z_log_modules_enabled, z_log_modules_enabled, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_module_zombie, z_log_module_zombie, item_state);
|
AddMenuItem(menu_log_flags, z_log_module_zombie, z_log_module_zombie, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_module_ambience, z_log_module_ambience, item_state);
|
AddMenuItem(menu_log_flags, z_log_module_ambientsounds, z_log_module_ambientsounds, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_module_overlays, z_log_module_overlays, item_state);
|
AddMenuItem(menu_log_flags, z_log_module_overlays, z_log_module_overlays, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_module_saytriggers, z_log_module_saytriggers, item_state);
|
AddMenuItem(menu_log_flags, z_log_module_saytriggers, z_log_module_saytriggers, item_state);
|
||||||
AddMenuItem(menu_log_flags, z_log_module_teleport, z_log_module_teleport, item_state);
|
AddMenuItem(menu_log_flags, z_log_module_teleport, z_log_module_teleport, item_state);
|
||||||
@ -638,7 +638,7 @@ public ZRLogFlagsMenuHandle(Handle:menu_log_flags, MenuAction:action, client, sl
|
|||||||
}
|
}
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
ToggleLogFlag(LOG_MODULE_AMBIENCE);
|
ToggleLogFlag(LOG_MODULE_AMBIENTSOUNDS);
|
||||||
ZRLogFlagsMenu(client);
|
ZRLogFlagsMenu(client);
|
||||||
}
|
}
|
||||||
case 12:
|
case 12:
|
||||||
|
@ -202,7 +202,7 @@ InfectPlayer(client, attacker = -1, bool:motherinfect = false)
|
|||||||
|
|
||||||
// Forward event to modules.
|
// Forward event to modules.
|
||||||
ClassOnClientInfected(client, motherinfect);
|
ClassOnClientInfected(client, motherinfect);
|
||||||
ZombieSoundsOnClientInfected(client);
|
SEffectsOnClientInfected(client);
|
||||||
ZHPOnClientInfected(client);
|
ZHPOnClientInfected(client);
|
||||||
AbortTeleport(client);
|
AbortTeleport(client);
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ enum ZTeam
|
|||||||
#define LOG_MODULE_CLASSES 4096 /** Class system - playerclasses/ *.inc */
|
#define LOG_MODULE_CLASSES 4096 /** Class system - playerclasses/ *.inc */
|
||||||
#define LOG_MODULE_ZOMBIE 8192 /** zombie.inc */
|
#define LOG_MODULE_ZOMBIE 8192 /** zombie.inc */
|
||||||
#define LOG_MODULE_SAYTRIGGERS 16384 /** sayhooks.inc */
|
#define LOG_MODULE_SAYTRIGGERS 16384 /** sayhooks.inc */
|
||||||
#define LOG_MODULE_AMBIENCE 32768 /** ambience.inc */
|
#define LOG_MODULE_AMBIENTSOUNDS 32768 /** ambientsounds.inc */
|
||||||
#define LOG_MODULE_OVERLAYS 65536 /** overlays.inc */
|
#define LOG_MODULE_OVERLAYS 65536 /** overlays.inc */
|
||||||
#define LOG_MODULE_TELEPORT 131072 /** teleport.inc */
|
#define LOG_MODULE_TELEPORT 131072 /** teleport.inc */
|
||||||
#define LOG_MODULE_WEAPONS 262144 /** Weapons module - weapons/ *.inc */
|
#define LOG_MODULE_WEAPONS 262144 /** Weapons module - weapons/ *.inc */
|
||||||
|
Loading…
Reference in New Issue
Block a user