Reorganized cvars.inc, organized all cvars into module groups (to be updated later), removed unused cvars, made classes and weapons core modules (event forwarding priority), updated spawn protect cvars, added cvars to disable weapons, restrict, and hitgroups

This commit is contained in:
Greyscale 2009-04-20 02:56:26 +02:00
parent 8ac1361a70
commit 41153af5f4
30 changed files with 533 additions and 297 deletions

View File

@ -26,6 +26,9 @@
// Cvars (core) // Cvars (core)
#include "zr/cvars" #include "zr/cvars"
// Log (TODO)
// #include "zr/log"
// Translations (core) // Translations (core)
#include "zr/translation" #include "zr/translation"
@ -35,37 +38,31 @@
// Models (core) // Models (core)
#include "zr/models" #include "zr/models"
// Round end (core) // Class System (core)
#include "zr/playerclasses/playerclasses"
// Round End (core)
#include "zr/roundend" #include "zr/roundend"
// Damage (core) // Damage (core)
#include "zr/damage" #include "zr/damage"
// Class system (module) // Weapons (core)
#include "zr/playerclasses/playerclasses"
#include "zr/anticamp"
#include "zr/teleport"
#include "zr/zombie"
#include "zr/menu"
#include "zr/sayhooks"
// Weapons (module)
#include "zr/weapons/weapons" #include "zr/weapons/weapons"
// Sound effects (module) // Hitgroups (core)
#include "zr/hitgroups"
// Sound Effects (module)
#include "zr/soundeffects/soundeffects" #include "zr/soundeffects/soundeffects"
// Antistick (module) // Antistick (module)
#include "zr/antistick" #include "zr/antistick"
// Hitgroups (module)
#include "zr/hitgroups"
// Knockback (module) // Knockback (module)
#include "zr/knockback" #include "zr/knockback"
// Spawn protect (module) // Spawn Protect (module)
#include "zr/spawnprotect" #include "zr/spawnprotect"
// Respawn (module) // Respawn (module)
@ -77,6 +74,11 @@
// ZHP (module) // ZHP (module)
#include "zr/zhp" #include "zr/zhp"
#include "zr/anticamp"
#include "zr/teleport"
#include "zr/zombie"
#include "zr/menu"
#include "zr/sayhooks"
#include "zr/zadmin" #include "zr/zadmin"
#include "zr/commands" #include "zr/commands"
#include "zr/event" #include "zr/event"
@ -109,10 +111,13 @@ public OnPluginStart()
// ====================================================================== // ======================================================================
// Cvars
CvarsInit();
CvarsHook();
// TODO: Be modulized/recoded.
HookEvents(); HookEvents();
HookChatCmds(); HookChatCmds();
CreateCvars();
HookCvars();
CreateCommands(); CreateCommands();
HookCommands(); HookCommands();
FindOffsets(); FindOffsets();
@ -163,11 +168,11 @@ public OnMapStart()
LoadDownloadData(); LoadDownloadData();
// Forward event to modules. // Forward event to modules.
RoundEndOnMapStart();
ClassLoad(); ClassLoad();
RoundEndOnMapStart();
WeaponsLoad(); WeaponsLoad();
SEffectsOnMapStart();
HitgroupsLoad(); HitgroupsLoad();
SEffectsOnMapStart();
Anticamp_Startup(); Anticamp_Startup();
} }
@ -208,9 +213,9 @@ public OnClientPutInServer(client)
bMotherInfectImmune[client] = false; bMotherInfectImmune[client] = false;
// Forward event to modules. // Forward event to modules.
ClassClientInit(client);
RoundEndClientInit(client); RoundEndClientInit(client);
DamageClientInit(client); DamageClientInit(client);
ClassClientInit(client);
SEffectsClientInit(client); SEffectsClientInit(client);
WeaponsClientInit(client); WeaponsClientInit(client);
SpawnProtectClientInit(client); SpawnProtectClientInit(client);
@ -228,8 +233,8 @@ public OnClientDisconnect(client)
PlayerLeft(client); PlayerLeft(client);
// Forward event to modules. // Forward event to modules.
DamageOnClientDisconnect(client);
ClassOnClientDisconnect(client); ClassOnClientDisconnect(client);
DamageOnClientDisconnect(client);
WeaponsOnClientDisconnect(client); WeaponsOnClientDisconnect(client);
ZTeleResetClient(client); ZTeleResetClient(client);
@ -265,8 +270,8 @@ MapChangeCleanup()
{ {
TerminateRound(3.0, Game_Commencing); TerminateRound(3.0, Game_Commencing);
UnhookCvars(); CvarsHook();
UnhookEvents(); CvarsUnhook();
// TODO: Disable all modules! Teleport, ambience, overlays, antistick, etc. // TODO: Disable all modules! Teleport, ambience, overlays, antistick, etc.

View File

@ -31,7 +31,7 @@ new Handle:hUpdateTimer;
Anticamp_Startup(bool:no_reset = false) Anticamp_Startup(bool:no_reset = false)
{ {
new Float:interval = GetConVarFloat(gCvars[CVAR_ANTICAMP_UPDATE_INTERVAL]); new Float:interval = GetConVarFloat(g_hCvarsList[CVAR_ANTICAMP_UPDATE_INTERVAL]);
// Create timer for updating player locations. // Create timer for updating player locations.
if (hUpdateTimer != INVALID_HANDLE) if (hUpdateTimer != INVALID_HANDLE)
@ -342,7 +342,7 @@ HurtPlayersInVolume(volume_index)
new client_health; new client_health;
decl String:client_name[64]; decl String:client_name[64];
decl String:buffer[192]; decl String:buffer[192];
new anticamp_echo = GetConVarBool(gCvars[CVAR_ANTICAMP_ECHO]); new anticamp_echo = GetConVarBool(g_hCvarsList[CVAR_ANTICAMP_ECHO]);
// x = client index. // x = client index.
for (new x = 1; x <= MaxClients; x++) for (new x = 1; x <= MaxClients; x++)

View File

@ -40,10 +40,10 @@ AntiStickRestart()
KillTimer(tAntiStick); KillTimer(tAntiStick);
} }
new bool:antistick = GetConVarBool(gCvars[CVAR_ANTISTICK]); new bool:antistick = GetConVarBool(g_hCvarsList[CVAR_ANTISTICK]);
if (antistick) if (antistick)
{ {
new Float:interval = GetConVarFloat(gCvars[CVAR_ANTISTICK_INTERVAL]); new Float:interval = GetConVarFloat(g_hCvarsList[CVAR_ANTISTICK_INTERVAL]);
tAntiStick = CreateTimer(interval, AntiStickTimer, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE); tAntiStick = CreateTimer(interval, AntiStickTimer, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
} }
} }

View File

@ -37,7 +37,7 @@ CreateCommands()
public Action:Command_Infect(client, argc) public Action:Command_Infect(client, argc)
{ {
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (argc < 1 || !enabled) if (argc < 1 || !enabled)
{ {
return Plugin_Handled; return Plugin_Handled;
@ -84,7 +84,7 @@ public Action:Command_Infect(client, argc)
public Action:Command_Respawn(client, argc) public Action:Command_Respawn(client, argc)
{ {
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (argc < 1 || !enabled) if (argc < 1 || !enabled)
{ {
return Plugin_Handled; return Plugin_Handled;
@ -136,17 +136,38 @@ public Action:Command_Respawn(client, argc)
} }
/** /**
* Command callback for client command "zr_restrict" * Command callback (zr_restrict)
* Restricts a weapon or group
*
* @param client The client index. * @param client The client index.
* @param argc Argument count. * @param argc Argument count.
*/ */
public Action:Command_Restrict(client, argc) public Action:Command_Restrict(client, argc)
{ {
// Disabled.
// If plugin is disabled then stop // If plugin is disabled then stop
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); /**new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (argc < 1 || !enabled) if (argc < 1 || !enabled)
{ {
return Plugin_Handled; return Plugin_Handled;
}*/
// If weapons module is disabled, then stop.
new bool:weapons = GetConVarBool(g_hCvarsList[CVAR_WEAPONS]);
if (!weapons)
{
// Tell client command is disabled.
ZR_ReplyToCommand(client, "Feature is disabled");
return Plugin_Handled;
}
// If restrict module is disabled, then stop.
new bool:restrict = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_RESTRICT]);
if (!restrict)
{
// Tell client command is disabled.
ZR_ReplyToCommand(client, "Feature is disabled");
return Plugin_Handled;
} }
// arg1 = weapon being restricted // arg1 = weapon being restricted
@ -165,17 +186,38 @@ public Action:Command_Restrict(client, argc)
} }
/** /**
* Command callback for client command "zr_unrestrict" * Command callback (zr_unrestrict)
* Unrestricts a weapon or group
*
* @param client The client index. * @param client The client index.
* @param argc Argument count. * @param argc Argument count.
*/ */
public Action:Command_Unrestrict(client, argc) public Action:Command_Unrestrict(client, argc)
{ {
// Disabled.
// If plugin is disabled then stop // If plugin is disabled then stop
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); /**new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (argc < 1 || !enabled) if (argc < 1 || !enabled)
{ {
return Plugin_Handled; return Plugin_Handled;
}*/
// If weapons module is disabled, then stop.
new bool:weapons = GetConVarBool(g_hCvarsList[CVAR_WEAPONS]);
if (!weapons)
{
// Tell client command is disabled.
ZR_ReplyToCommand(client, "Feature is disabled");
return Plugin_Handled;
}
// If restrict module is disabled, then stop.
new bool:restrict = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_RESTRICT]);
if (!restrict)
{
// Tell client command is disabled.
ZR_ReplyToCommand(client, "Feature is disabled");
return Plugin_Handled;
} }
// arg1 = weapon being restricted // arg1 = weapon being restricted

View File

@ -1,49 +1,55 @@
/** /*
* ==================== * ============================================================================
*
* Zombie:Reloaded * Zombie:Reloaded
*
* File: cvars.inc * File: cvars.inc
* Author: Greyscale * Description: Config creation and cvar control.
* ==================== *
* ============================================================================
*/ */
enum ZRSettings /**
* List of cvars used by the plugin.
*/
enum CvarsList
{ {
Handle:CVAR_ENABLE, Handle:CVAR_ENABLE,
Handle:CVAR_LOG, Handle:CVAR_LOG,
Handle:CVAR_ALLOW_PLAYER_TEAM, Handle:CVAR_ROUNDEND_OVERLAY,
Handle:CVAR_AMBIENTSOUNDS, Handle:CVAR_ROUNDEND_OVERLAY_ZOMBIE,
Handle:CVAR_AMBIENTSOUNDS_FILE, Handle:CVAR_ROUNDEND_OVERLAY_HUMAN,
Handle:CVAR_AMBIENTSOUNDS_LENGTH,
Handle:CVAR_AMBIENTSOUNDS_VOLUME,
Handle:CVAR_SOUNDEFFECTS_MOAN,
Handle:CVAR_SOUNDEFFECTS_GROAN,
Handle:CVAR_SOUNDEFFECTS_DEATH,
Handle:CVAR_NAPALM_IGNITEGRENADE,
Handle:CVAR_CLASSES,
Handle:CVAR_CLASSES_SPAWN, Handle:CVAR_CLASSES_SPAWN,
Handle:CVAR_CLASSES_RANDOM, Handle:CVAR_CLASSES_RANDOM,
Handle:CVAR_CLASSES_DEFAULT_ZOMBIE, Handle:CVAR_CLASSES_DEFAULT_ZOMBIE,
Handle:CVAR_CLASSES_DEFAULT_HUMAN, Handle:CVAR_CLASSES_DEFAULT_HUMAN,
Handle:CVAR_CLASSES_DEFAULT_ADMIN, Handle:CVAR_CLASSES_DEFAULT_ADMIN,
Handle:CVAR_CLASSES_FILE, Handle:CVAR_CLASSES_FILE,
Handle:CVAR_ZOMBIE_HEALTH, Handle:CVAR_DAMAGE_SUICIDE_ZOMBIE,
Handle:CVAR_ZOMBIE_SPEED, Handle:CVAR_DAMAGE_SUICIDE_HUMAN,
Handle:CVAR_ZOMBIE_JUMP_DISTANCE, Handle:CVAR_DAMAGE_SUICIDE_CMDS,
Handle:CVAR_ZOMBIE_JUMP_HEIGHT, Handle:CVAR_WEAPONS,
Handle:CVAR_ZOMBIE_NVGS, Handle:CVAR_WEAPONS_RESTRICT,
Handle:CVAR_ZOMBIE_FOV, Handle:CVAR_HITGROUPS,
Handle:CVAR_ZOMBIE_REGEN, Handle:CVAR_SOUNDEFFECTS_MOAN,
Handle:CVAR_ZOMBIE_REGEN_HEALTH, Handle:CVAR_SOUNDEFFECTS_GROAN,
Handle:CVAR_ZOMBIE_REGEN_INTERVAL, Handle:CVAR_SOUNDEFFECTS_DEATH,
Handle:CVAR_ZOMBIE_NAPALM, Handle:CVAR_AMBIENTSOUNDS,
Handle:CVAR_ZOMBIE_NAPALM_TIME, Handle:CVAR_AMBIENTSOUNDS_FILE,
Handle:CVAR_ZOMBIE_NOFALLDAMAGE, Handle:CVAR_AMBIENTSOUNDS_LENGTH,
Handle:CVAR_ZOMBIE_KILL_BONUS, Handle:CVAR_AMBIENTSOUNDS_VOLUME,
Handle:CVAR_ZOMBIE_INFECT_HEALTH, Handle:CVAR_ANTISTICK,
Handle:CVAR_ZOMBIE_ZVISION, Handle:CVAR_ANTISTICK_INTERVAL,
Handle:CVAR_ZOMBIE_ALPHA_SPAWN, Handle:CVAR_SPAWNPROTECT,
Handle:CVAR_ZOMBIE_ALPHA_DAMAGED, Handle:CVAR_SPAWNPROTECT_TIME,
Handle:CVAR_ZOMBIE_ALPHA_DAMAGE, Handle:CVAR_RESPAWN,
Handle:CVAR_RESPAWN_DELAY,
Handle:CVAR_RESPAWN_ZOMBIE,
Handle:CVAR_RESPAWN_ZOMBIE_WORLD,
Handle:CVAR_ZHP,
Handle:CVAR_ZHP_DEFAULT,
// To be modulized/recoded.
Handle:CVAR_OVERLAY_REDISPLAY, Handle:CVAR_OVERLAY_REDISPLAY,
Handle:CVAR_ZVISION_ALLOW_DISABLE, Handle:CVAR_ZVISION_ALLOW_DISABLE,
Handle:CVAR_MENU_AUTOCLOSE, Handle:CVAR_MENU_AUTOCLOSE,
@ -52,22 +58,10 @@ enum ZRSettings
Handle:CVAR_DARK_SKY, Handle:CVAR_DARK_SKY,
Handle:CVAR_MOTHER_ZOMBIE_RATIO, Handle:CVAR_MOTHER_ZOMBIE_RATIO,
Handle:CVAR_MOTHER_ZOMBIE_RESPAWN, Handle:CVAR_MOTHER_ZOMBIE_RESPAWN,
Handle:CVAR_RESPAWN,
Handle:CVAR_RESPAWN_ZOMBIE,
Handle:CVAR_RESPAWN_DELAY,
Handle:CVAR_SUICIDE_ZOMBIE,
Handle:CVAR_SUICIDE_HUMAN,
Handle:CVAR_SUICIDE_CMDS,
Handle:CVAR_SUICIDE_WORLD_DAMAGE, Handle:CVAR_SUICIDE_WORLD_DAMAGE,
Handle:CVAR_SPAWN_MIN, Handle:CVAR_SPAWN_MIN,
Handle:CVAR_SPAWN_MAX, Handle:CVAR_SPAWN_MAX,
Handle:CVAR_ANTISTICK,
Handle:CVAR_ANTISTICK_INTERVAL,
Handle:CVAR_PROTECT,
Handle:CVAR_CONSECUTIVE_INFECT, Handle:CVAR_CONSECUTIVE_INFECT,
Handle:CVAR_ROUNDEND_OVERLAY,
Handle:CVAR_ROUNDEND_OVERLAY_ZOMBIE,
Handle:CVAR_ROUNDEND_OVERLAY_HUMAN,
Handle:CVAR_ZMARKET_BUYZONE, Handle:CVAR_ZMARKET_BUYZONE,
Handle:CVAR_ZSPAWN, Handle:CVAR_ZSPAWN,
Handle:CVAR_ZTELE, Handle:CVAR_ZTELE,
@ -78,8 +72,6 @@ enum ZRSettings
Handle:CVAR_ZTELE_ZOMBIE_DELAY, Handle:CVAR_ZTELE_ZOMBIE_DELAY,
Handle:CVAR_ZTELE_ZOMBIE_LIMIT, Handle:CVAR_ZTELE_ZOMBIE_LIMIT,
Handle:CVAR_ZTELE_RESET_BUFFERS, Handle:CVAR_ZTELE_RESET_BUFFERS,
Handle:CVAR_ZHP,
Handle:CVAR_ZHP_DEFAULT,
Handle:CVAR_CASHFILL, Handle:CVAR_CASHFILL,
Handle:CVAR_CASHAMOUNT, Handle:CVAR_CASHAMOUNT,
Handle:CVAR_INFECT_FIREBALL, Handle:CVAR_INFECT_FIREBALL,
@ -93,119 +85,292 @@ enum ZRSettings
Handle:CVAR_INFECT_SHAKE_DURATION, Handle:CVAR_INFECT_SHAKE_DURATION,
Handle:CVAR_ANTICAMP, Handle:CVAR_ANTICAMP,
Handle:CVAR_ANTICAMP_UPDATE_INTERVAL, Handle:CVAR_ANTICAMP_UPDATE_INTERVAL,
Handle:CVAR_ANTICAMP_ECHO Handle:CVAR_ANTICAMP_ECHO,
} }
new gCvars[ZRSettings]; /**
* Array to store cvar data in.
*/
new g_hCvarsList[CvarsList];
CreateCvars() /**
* Cvars module init function.
*/
CvarsInit()
{ {
gCvars[CVAR_ENABLE] = CreateConVar("zr_enable", "1", "Enable zombie gameplay (0: Disable)"); // Cvar naming guidelines:
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)"); // 1. Prefix: "zr_"
gCvars[CVAR_AMBIENTSOUNDS] = CreateConVar("zr_ambientsounds", "1", "Enable creepy ambience to be played throughout the game (0: Disable)"); // 2. Module name next. "zr_modulename_"
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"); // 3. (If applys) Submodule name next. "zr_modulename_submodulename_" Ex "zr_weapons_restrict_"
gCvars[CVAR_AMBIENTSOUNDS_LENGTH] = CreateConVar("zr_ambientsounds_length", "60.0", "The length, in seconds, of the ambient sound file"); // 4. Name last part to be defaulted to "1" (if boolean cvar) Ex "zr_damage_suicide_zombie",
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)"); // because it will be defaulted to "1". "zr_damage_suicide_zombie_disable" = bad. Because we want
gCvars[CVAR_SOUNDEFFECTS_MOAN] = CreateConVar("zr_soundeffects_moan", "50", "How often, in seconds, a zombie moans (0: Disable)"); // to try to default everything to "1" and let hosts disable what they don't want.
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)"); // Cvar description guidelines
gCvars[CVAR_NAPALM_IGNITEGRENADE] = CreateConVar("zr_napalm_ignitegrenade", "1", "Ignites all thrown grenades. (0: Disable)"); // Assume cvar is enabled.
gCvars[CVAR_CLASSES] = CreateConVar("zr_classes", "1", "Enable zombie classes"); // Ex. "zr_roundend_overlay" "1" "Display round win overlays to all clients."
gCvars[CVAR_CLASSES_SPAWN] = CreateConVar("zr_classes_spawn", "0", "Classmenu is re-displayed every spawn (0: Disable)"); // Explain (additional) options in brackets.
gCvars[CVAR_CLASSES_RANDOM] = CreateConVar("zr_classes_random", "0", "A random class is assigned to each player every round. Overrides zr_classes_spawn and default classes. (0: Disable)"); // Ex. "zr_classes_default_zombie" "" "Default zombie class. ['""' = Class config defaults. 'random' = Give client random class on connect.]"
gCvars[CVAR_CLASSES_DEFAULT_ZOMBIE] = CreateConVar("zr_classes_default_zombie", "random", "Default zombie class selected for all players when they connect. Use \"random\" to select a random class, or blank to use class config defaults."); // Any thing else?
gCvars[CVAR_CLASSES_DEFAULT_HUMAN] = CreateConVar("zr_classes_default_human", "random", "Default human class selected for all players when they connect. Use \"random\" to select a random class, or blank to use class config defaults.");
gCvars[CVAR_CLASSES_DEFAULT_ADMIN] = CreateConVar("zr_classes_default_admin", "random", "Default admin-only class selected for admins when they connect. Use \"random\" to select a random class, or blank to use class config defaults."); // ===========================
gCvars[CVAR_CLASSES_FILE] = CreateConVar("zr_classes_file", "configs/zr/playerclasses.txt", "Class data file to read from, in Valves key/values format. The path is relative to the \"sourcemod\" folder."); // General (Core)
gCvars[CVAR_ZOMBIE_HEALTH] = CreateConVar("zr_zombie_health", "5000", "The default health of a zombie"); // ===========================
gCvars[CVAR_ZOMBIE_SPEED] = CreateConVar("zr_zombie_speed", "350", "How fast zombies travel (300: Default speed, 600: Double speed)");
gCvars[CVAR_ZOMBIE_JUMP_DISTANCE] = CreateConVar("zr_zombie_jump_distance", "0.1", "How far the zombie jumps, (0: Regular jump distance)"); g_hCvarsList[CVAR_ENABLE] = CreateConVar("zr_enable", "1", "");
gCvars[CVAR_ZOMBIE_JUMP_HEIGHT] = CreateConVar("zr_zombie_jump_height", "10.0", "How high a zombie jumps (0: Regular jump height)");
gCvars[CVAR_ZOMBIE_NVGS] = CreateConVar("zr_zombie_nvgs", "-1", "Zombies will be equipped with nightvision. Also used to override class nvgs if non-negative. (-1: No override, uses class setting, 0: No nvgs, 1: Nvgs on)"); // ===========================
gCvars[CVAR_ZOMBIE_FOV] = CreateConVar("zr_zombie_fov", "110", "The field of vision of zombies (90: Default vision)"); // Log (core)
gCvars[CVAR_ZOMBIE_REGEN] = CreateConVar("zr_zombie_regen", "0", "Zombies will regenerate health"); // ===========================
gCvars[CVAR_ZOMBIE_REGEN_HEALTH] = CreateConVar("zr_zombie_regen_health", "1", "How much health is regenerated when zr_zombie_regen is 1");
gCvars[CVAR_ZOMBIE_REGEN_INTERVAL] = CreateConVar("zr_zombie_regen_interval", "5", "How often, in seconds, a zombie regenerates health when zr_zombie_regen is 1"); g_hCvarsList[CVAR_LOG] = CreateConVar("zr_log", "331", "");
gCvars[CVAR_ZOMBIE_NAPALM] = CreateConVar("zr_zombie_napalm", "1", "Turns grenades into napalm grenades that light zombies on fire (0: Disable)"); // Old Desc: 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_ZOMBIE_NAPALM_TIME] = CreateConVar("zr_zombie_napalm_time", "20", "How long the zombie burns when zr_napalm is 1");
gCvars[CVAR_ZOMBIE_NOFALLDAMAGE] = CreateConVar("zr_zombie_nofalldamage", "0", "Zombies wont be hurt from falling (0: Disable)"); // ===========================
gCvars[CVAR_ZOMBIE_KILL_BONUS] = CreateConVar("zr_zombie_kill_bonus", "2", "How many additional kills are rewarded to the killer of the zombie"); // Translations (core)
gCvars[CVAR_ZOMBIE_INFECT_HEALTH] = CreateConVar("zr_zombie_infect_health", "100", "How much health a zombie gains when infecting a human (0: Disable)"); // ===========================
gCvars[CVAR_ZOMBIE_ZVISION] = CreateConVar("zr_zombie_zvision", "overlays/zr/zvision", "Overlay to be shown on all zombies' screen on infection (Leave empty to disable)");
gCvars[CVAR_ZOMBIE_ALPHA_SPAWN] = CreateConVar("zr_zombie_alpha_spawn", "255", "Initial transparency (0: Invisible. 255: Fully visible)"); // (None)
gCvars[CVAR_ZOMBIE_ALPHA_DAMAGED] = CreateConVar("zr_zombie_alpha_damaged", "255", "Transparency when damaged (0: Invisible. 255: Fully visible)");
gCvars[CVAR_ZOMBIE_ALPHA_DAMAGE] = CreateConVar("zr_zombie_alpha_damage", "0", "How much damage to do before changing transparency."); // ===========================
gCvars[CVAR_OVERLAY_REDISPLAY] = CreateConVar("zr_overlay_redisplay", "3", "Frequency, in seconds, to display overlay on the client's screen (Never go below 0.1, 0.2 seems safe)"); // Round End (core)
gCvars[CVAR_ZVISION_ALLOW_DISABLE] = CreateConVar("zr_zvision_allow_disable", "1", "Allow users to disable ZVision with their nightvision key (0: Disable)"); // ===========================
gCvars[CVAR_MENU_AUTOCLOSE] = CreateConVar("zr_menu_autoclose", "0", "Automatically close menus on selection. If disabled the menu will remain open.");
gCvars[CVAR_DARK] = CreateConVar("zr_dark", "0", "Default value for darkening maps, most dislike this feature (0: Disable)"); g_hCvarsList[CVAR_ROUNDEND_OVERLAY] = CreateConVar("zr_roundend_overlay", "1", "");
gCvars[CVAR_DARK_LEVEL] = CreateConVar("zr_dark_level", "a", "The darkness of the map, a being the darkest, z being extremely bright when zr_dark is 1 (n: Default)"); // Old Desc: Shows an overlay to all clients when a team wins. (0: Disable)
gCvars[CVAR_DARK_SKY] = CreateConVar("zr_dark_sky", "sky_borealis01", "The sky the map will have when zr_dark is 1"); g_hCvarsList[CVAR_ROUNDEND_OVERLAY_HUMAN] = CreateConVar("zr_roundend_overlays_human", "");
gCvars[CVAR_MOTHER_ZOMBIE_RATIO] = CreateConVar("zr_mother_zombie_ratio", "5", "For every 'x' number of humans, there will be 1 zombie (0: Always only 1 mother zombie)"); // Old Desc: overlays/zr/humans_win", "Path to \"humans win\" overlay
gCvars[CVAR_MOTHER_ZOMBIE_RESPAWN] = CreateConVar("zr_mother_zombie_respawn", "0", "First zombie(s) will be teleported back to spawn when infected (0: Disable)"); g_hCvarsList[CVAR_ROUNDEND_OVERLAY_ZOMBIE] = CreateConVar("zr_roundend_overlays_zombie", "overlays/zr/zombies_win", "");
gCvars[CVAR_RESPAWN] = CreateConVar("zr_respawn", "0", "When player is killed, player will respawn"); // Old Desc: Path to \"zombies win\" overlay
gCvars[CVAR_RESPAWN_ZOMBIE] = CreateConVar("zr_respawn_zombie", "1", "Respawn player as zombie (0: Respawn as human)");
gCvars[CVAR_RESPAWN_DELAY] = CreateConVar("zr_respawn_delay", "1", "How long to wait after death to respawn, in seconds"); // ===========================
gCvars[CVAR_SUICIDE_ZOMBIE] = CreateConVar("zr_suicide_zombie", "1", "Intercept human suicide attempts."); // Offsets (core)
gCvars[CVAR_SUICIDE_HUMAN] = CreateConVar("zr_suicide_human", "1", "Intercept zombie suicide attempts."); // ===========================
gCvars[CVAR_SUICIDE_CMDS] = CreateConVar("zr_suicide_cmds", "kill, spectate, jointeam", "List of suicide commands to intercept. (Delimited by \", \"");
/** Note: CVAR_SUICIDE_WORLD_DAMAGE should be renamed as it is not part of the suicide intercept function*/ // (None)
gCvars[CVAR_SUICIDE_WORLD_DAMAGE] = CreateConVar("zr_suicide_world_damage", "1", "Respawn zombies as zombies if they were killed by the world, like elevators, doors and lasers. (0: Disable)");
gCvars[CVAR_SPAWN_MIN] = CreateConVar("zr_spawn_min", "30", "Minimum time a player is picked to be zombie after the round starts, in seconds"); // ===========================
gCvars[CVAR_SPAWN_MAX] = CreateConVar("zr_spawn_max", "50", "Maximum time a player is picked to be zombie after the round starts, in seconds"); // Models (core)
gCvars[CVAR_ANTISTICK] = CreateConVar("zr_antistick", "1", "Enable the anti-stick module, which will automatically unstick players stuck within each other. (0:Disable)"); // ===========================
gCvars[CVAR_ANTISTICK_INTERVAL] = CreateConVar("zr_antistick_interval", "1.0", "How often, in seconds, the anti-stick module checks each player for being stuck. (1.0: Default)");
gCvars[CVAR_PROTECT] = CreateConVar("zr_protect", "10", "Players that join late will be protected for this long, in seconds (0: Disable)"); // TODO: config file path.
gCvars[CVAR_CONSECUTIVE_INFECT] = CreateConVar("zr_consecutive_infect", "0", "Allow player to be randomly chosen twice in a row to be a mother zombie (0: Disable)");
gCvars[CVAR_ROUNDEND_OVERLAY] = CreateConVar("zr_roundend_overlay", "1", "Shows an overlay to all clients when a team wins. (0: Disable)"); // ===========================
gCvars[CVAR_ROUNDEND_OVERLAY_HUMAN] = CreateConVar("zr_roundend_overlays_human", "overlays/zr/humans_win", "Path to \"humans win\" overlay"); // Classes (core)
gCvars[CVAR_ROUNDEND_OVERLAY_ZOMBIE] = CreateConVar("zr_roundend_overlays_zombie", "overlays/zr/zombies_win", "Path to \"zombies win\" overlay"); // ===========================
gCvars[CVAR_ZMARKET_BUYZONE] = CreateConVar("zr_zmarket_buyzone", "1", "Must be in buyzone to access !zmarket, if Market is installed (0: Can be used anywhere)");
gCvars[CVAR_ZSPAWN] = CreateConVar("zr_zspawn", "1", "Allow players to spawn if they just joined the game (0: Disable)"); g_hCvarsList[CVAR_CLASSES_SPAWN] = CreateConVar("zr_classes_spawn", "0", "");
gCvars[CVAR_ZTELE] = CreateConVar("zr_tele", "1", "Allow players to use the teleporter to get to spawn. (0: Disable)"); // Old Desc: Classmenu is re-displayed every spawn (0: Disable)
gCvars[CVAR_ZTELE_STARTUP_DELAY] = CreateConVar("zr_tele_startup_delay", "30", "Number of seconds to wait before the teleporter is enabled (0: Always enabled)"); g_hCvarsList[CVAR_CLASSES_RANDOM] = CreateConVar("zr_classes_random", "0", "");
gCvars[CVAR_ZTELE_COOLDOWN] = CreateConVar("zr_tele_cooldown", "20", "Number of seconds to wait before the teleporter can be used again, after a teleport. (0: Disable)"); // Old Desc: A random class is assigned to each player every round. Overrides zr_classes_spawn and default classes. (0: Disable)
gCvars[CVAR_ZTELE_HUMAN_DELAY] = CreateConVar("zr_tele_human_delay", "10", "Teleport delay for humans. (0: No delay)"); g_hCvarsList[CVAR_CLASSES_DEFAULT_ZOMBIE] = CreateConVar("zr_classes_default_zombie", "random", "");
gCvars[CVAR_ZTELE_HUMAN_LIMIT] = CreateConVar("zr_tele_human_limit", "3", "Maximum number of teleports humans can do. (0: Humans can't use the teleporter. -1: Unlimited)"); // Old Desc: Default zombie class selected for all players when they connect. Use \"random\" to select a random class, or blank to use class config defaults.
gCvars[CVAR_ZTELE_ZOMBIE_DELAY] = CreateConVar("zr_tele_zombie_delay", "0", "Teleport delay for zombies. (0: No delay)"); g_hCvarsList[CVAR_CLASSES_DEFAULT_HUMAN] = CreateConVar("zr_classes_default_human", "random", "");
gCvars[CVAR_ZTELE_ZOMBIE_LIMIT] = CreateConVar("zr_tele_zombie_limit", "8", "Maximum number of teleports zombies can do. (0: Zombies can't use the teleporter. -1: Unlimited)"); // Old Desc:
gCvars[CVAR_ZTELE_RESET_BUFFERS] = CreateConVar("zr_tele_reset_buffers", "1", "Reset custom saved teleport locations on each round start. (0: Disable)"); g_hCvarsList[CVAR_CLASSES_DEFAULT_ADMIN] = CreateConVar("zr_classes_default_admin", "random", "");
gCvars[CVAR_ZHP] = CreateConVar("zr_zhp", "1", "Allows clients to enable/disable zombie health display (1: On, 0: Off)"); // Old Desc: Default admin-only class selected for admins when they connect. Use \"random\" to select a random class, or blank to use class config defaults.
gCvars[CVAR_ZHP_DEFAULT] = CreateConVar("zr_zhp_default", "1", "The default value of zombie health display to new clients (1: On, 0: Off)"); g_hCvarsList[CVAR_CLASSES_FILE] = CreateConVar("zr_classes_file", "configs/zr/playerclasses.txt", "");
gCvars[CVAR_CASHFILL] = CreateConVar("zr_cashfill", "1", "Enable the mod to set the players cash to zr_cashamount (0: Disabled)"); // Old Desc: Class data file to read from, in Valves key/values format. The path is relative to the \"sourcemod\" folder.
gCvars[CVAR_CASHAMOUNT] = CreateConVar("zr_cashamount", "12000", "How much money players will have when they spawn when zr_cashfill is 1");
gCvars[CVAR_INFECT_FIREBALL] = CreateConVar("zr_infect_fireball", "1", "A fireball is created when a player is infected (0: Disable)"); // ===========================
gCvars[CVAR_INFECT_SMOKE] = CreateConVar("zr_infect_smoke", "1", "A puff of smoke is created when a player is infected (0: Disable)"); // Damage (core)
gCvars[CVAR_INFECT_SPARKS] = CreateConVar("zr_infect_sparks", "1", "Sparks are emitted when a player is infected (0: Disable)"); // ===========================
gCvars[CVAR_INFECT_SOUND] = CreateConVar("zr_infect_sound", "npc/fast_zombie/fz_scream1.wav", "Sound played from from player on infection (Leave blank to disable)");
gCvars[CVAR_INFECT_ESPLASH] = CreateConVar("zr_infect_esplash", "1", "An energy splash is emitted when player is infected (0: Disable)"); g_hCvarsList[CVAR_DAMAGE_SUICIDE_ZOMBIE] = CreateConVar("zr_damage_suicide_zombie", "1", "");
gCvars[CVAR_INFECT_SHAKE] = CreateConVar("zr_infect_shake", "1", "Player's screen is shaken on infection (0: Disable)"); // Old Desc: Intercept human suicide attempts.
gCvars[CVAR_INFECT_SHAKE_AMP] = CreateConVar("zr_infect_shake_amp", "15.0", "Amplitude of the shake, when zr_infect_shake is 1"); g_hCvarsList[CVAR_DAMAGE_SUICIDE_HUMAN] = CreateConVar("zr_damage_suicide_human", "1", "");
gCvars[CVAR_INFECT_SHAKE_FREQUENCY] = CreateConVar("zr_infect_shake_frequency", "1.0", "Frequency of the shake, when zr_infect_shake is 1"); // Old Desc: Intercept zombie suicide attempts.
gCvars[CVAR_INFECT_SHAKE_DURATION] = CreateConVar("zr_infect_shake_duration", "5.0", "Duration of the shake, when zr_infect_shake is 1"); g_hCvarsList[CVAR_DAMAGE_SUICIDE_CMDS] = CreateConVar("zr_damage_suicide_cmds", "kill, spectate, jointeam", "");
gCvars[CVAR_ANTICAMP] = CreateConVar("zr_anticamp", "1", "Enables or disables hurt volumes for preventing unfair camping. (0: Disable)"); // Old Desc: List of suicide commands to intercept. (Delimited by \", \"
gCvars[CVAR_ANTICAMP_UPDATE_INTERVAL] = CreateConVar("zr_anticamp_update_interval", "1", "How often to update player locations (in seconds).");
gCvars[CVAR_ANTICAMP_ECHO] = CreateConVar("zr_anticamp_echo", "1", "Log kills done by anticamp to admin chat."); // ===========================
// Weapons (core)
// ===========================
// General
g_hCvarsList[CVAR_WEAPONS] = CreateConVar("zr_weapons", "1", "");
// Note make config file cvar.
// Note this disables restrict submodule.
// Restrict
g_hCvarsList[CVAR_WEAPONS_RESTRICT] = CreateConVar("zr_weapons_restrict", "1", "");
// Note make config file cvar.
// ===========================
// Hitgroups (core)
// ===========================
g_hCvarsList[CVAR_HITGROUPS] = CreateConVar("zr_hitgroups", "1", "");
// Note make config file cvar.
// ===========================
// Sound Effects (module)
// ===========================
// Zombie Sounds
g_hCvarsList[CVAR_SOUNDEFFECTS_MOAN] = CreateConVar("zr_soundeffects_moan", "30", "");
// Old Desc: How often, in seconds, a zombie moans (0: Disable)
g_hCvarsList[CVAR_SOUNDEFFECTS_GROAN] = CreateConVar("zr_soundeffects_groan", "5", "");
// Old Desc: Chance factor a zombie will groan when shot (Lower: More often, 0: Disable)
g_hCvarsList[CVAR_SOUNDEFFECTS_DEATH] = CreateConVar("zr_soundeffects_death", "1", "");
// Old Desc: Zombie will emit a death sound when killed (0: Disable)
// Ambient Sounds
g_hCvarsList[CVAR_AMBIENTSOUNDS] = CreateConVar("zr_ambientsounds", "1", "");
// Old Desc: Enable creepy ambience to be played throughout the game (0: Disable)
g_hCvarsList[CVAR_AMBIENTSOUNDS_FILE] = CreateConVar("zr_ambientsounds_file", "ambient/zr/zr_ambience.mp3", "");
// Old Desc: Path to ambient sound file that will be played throughout the game, when zr_ambience is 1
g_hCvarsList[CVAR_AMBIENTSOUNDS_LENGTH] = CreateConVar("zr_ambientsounds_length", "60.0", "");
// Old Desc: The length, in seconds, of the ambient sound file
g_hCvarsList[CVAR_AMBIENTSOUNDS_VOLUME] = CreateConVar("zr_ambientsounds_volume", "1.0", "");
// Old Desc: Volume of ambient sounds when zr_ambience is 1 (0.0: Unhearable, 1.0: Max volume)
// ===========================
// Antistick (module)
// ===========================
g_hCvarsList[CVAR_ANTISTICK] = CreateConVar("zr_antistick", "1", "");
// Old Desc: Enable the anti-stick module, which will automatically unstick players stuck within each other. (0:Disable)
g_hCvarsList[CVAR_ANTISTICK_INTERVAL] = CreateConVar("zr_antistick_interval", "0.5", "");
// Old Desc: How often, in seconds, the anti-stick module checks each player for being stuck. (1.0: Default)
// ===========================
// Knockback (module)
// ===========================
// (None)
// ===========================
// Spawn Protect (module)
// ===========================
g_hCvarsList[CVAR_SPAWNPROTECT] = CreateConVar("zr_spawnprotect", "1", "");
g_hCvarsList[CVAR_SPAWNPROTECT_TIME] = CreateConVar("zr_spawnprotect_time", "10", "");
// ===========================
// Respawn (module)
// ===========================
g_hCvarsList[CVAR_RESPAWN] = CreateConVar("zr_respawn", "0", "");
// Old Desc: When player is killed, player will respawn
g_hCvarsList[CVAR_RESPAWN_DELAY] = CreateConVar("zr_respawn_delay", "1", "");
// Old Desc: How long to wait after death to respawn, in seconds
g_hCvarsList[CVAR_RESPAWN_ZOMBIE] = CreateConVar("zr_respawn_zombie", "1", "");
// Old Desc: Respawn player as zombie (0: Respawn as human)
g_hCvarsList[CVAR_RESPAWN_ZOMBIE_WORLD] = CreateConVar("zr_respawn_zombie_world", "1", "");
// Old Desc: Respawn zombies as zombies if they were killed by the world, like elevators, doors and lasers. (0: Disable)
// ===========================
// Napalm (module)
// ===========================
// (None)
// ===========================
// ZHP (module)
// ===========================
g_hCvarsList[CVAR_ZHP] = CreateConVar("zr_zhp", "1", "");
// Old Desc: Allows clients to enable/disable zombie health display (1: On, 0: Off)
g_hCvarsList[CVAR_ZHP_DEFAULT] = CreateConVar("zr_zhp_default", "1", "");
// Old Desc: The default value of zombie health display to new clients (1: On, 0: Off)
// TO BE MODULIZED/RECODED.
g_hCvarsList[CVAR_OVERLAY_REDISPLAY] = CreateConVar("zr_overlay_redisplay", "3", "");
// Old Desc: Frequency, in seconds, to display overlay on the client's screen (Never go below 0.1, 0.2 seems safe)
g_hCvarsList[CVAR_ZVISION_ALLOW_DISABLE] = CreateConVar("zr_zvision_allow_disable", "1", "");
// Old Desc: Allow users to disable ZVision with their nightvision key (0: Disable)
g_hCvarsList[CVAR_MENU_AUTOCLOSE] = CreateConVar("zr_menu_autoclose", "0", "");
// Old Desc: Automatically close menus on selection. If disabled the menu will remain open.
g_hCvarsList[CVAR_DARK] = CreateConVar("zr_dark", "0", "");
// Old Desc: Default value for darkening maps, most dislike this feature (0: Disable)
g_hCvarsList[CVAR_DARK_LEVEL] = CreateConVar("zr_dark_level", "a", "");
// Old Desc: The darkness of the map, a being the darkest, z being extremely bright when zr_dark is 1 (n: Default)
g_hCvarsList[CVAR_DARK_SKY] = CreateConVar("zr_dark_sky", "sky_borealis01", "");
// Old Desc: The sky the map will have when zr_dark is 1
g_hCvarsList[CVAR_MOTHER_ZOMBIE_RATIO] = CreateConVar("zr_mother_zombie_ratio", "5", "");
// Old Desc: For every 'x' number of humans, there will be 1 zombie (0: Always only 1 mother zombie)
g_hCvarsList[CVAR_MOTHER_ZOMBIE_RESPAWN] = CreateConVar("zr_mother_zombie_respawn", "0", "");
// Old Desc: First zombie(s) will be teleported back to spawn when infected (0: Disable)
g_hCvarsList[CVAR_SPAWN_MIN] = CreateConVar("zr_spawn_min", "30", "");
// Old Desc: Minimum time a player is picked to be zombie after the round starts, in seconds
g_hCvarsList[CVAR_SPAWN_MAX] = CreateConVar("zr_spawn_max", "50", "");
// Old Desc: Maximum time a player is picked to be zombie after the round starts, in seconds
g_hCvarsList[CVAR_CONSECUTIVE_INFECT] = CreateConVar("zr_consecutive_infect", "0", "");
// Old Desc: Allow player to be randomly chosen twice in a row to be a mother zombie (0: Disable)
g_hCvarsList[CVAR_ZMARKET_BUYZONE] = CreateConVar("zr_zmarket_buyzone", "1", "");
// Old Desc: Must be in buyzone to access !zmarket, if Market is installed (0: Can be used anywhere)
g_hCvarsList[CVAR_ZSPAWN] = CreateConVar("zr_zspawn", "1", "");
// Old Desc: Allow players to spawn if they just joined the game (0: Disable)
g_hCvarsList[CVAR_ZTELE] = CreateConVar("zr_tele", "1", "");
// Old Desc: Allow players to use the teleporter to get to spawn. (0: Disable)
g_hCvarsList[CVAR_ZTELE_STARTUP_DELAY] = CreateConVar("zr_tele_startup_delay", "30", "");
// Old Desc: Number of seconds to wait before the teleporter is enabled (0: Always enabled)
g_hCvarsList[CVAR_ZTELE_COOLDOWN] = CreateConVar("zr_tele_cooldown", "20", "");
// Old Desc: Number of seconds to wait before the teleporter can be used again, after a teleport. (0: Disable)
g_hCvarsList[CVAR_ZTELE_HUMAN_DELAY] = CreateConVar("zr_tele_human_delay", "10", "");
// Old Desc: Teleport delay for humans. (0: No delay)
g_hCvarsList[CVAR_ZTELE_HUMAN_LIMIT] = CreateConVar("zr_tele_human_limit", "3", "");
// Old Desc: Maximum number of teleports humans can do. (0: Humans can't use the teleporter. -1: Unlimited)
g_hCvarsList[CVAR_ZTELE_ZOMBIE_DELAY] = CreateConVar("zr_tele_zombie_delay", "0", "");
// Old Desc: Teleport delay for zombies. (0: No delay)
g_hCvarsList[CVAR_ZTELE_ZOMBIE_LIMIT] = CreateConVar("zr_tele_zombie_limit", "8", "");
// Old Desc: Maximum number of teleports zombies can do. (0: Zombies can't use the teleporter. -1: Unlimited)
g_hCvarsList[CVAR_ZTELE_RESET_BUFFERS] = CreateConVar("zr_tele_reset_buffers", "1", "");
// Old Desc: Reset custom saved teleport locations on each round start. (0: Disable)
g_hCvarsList[CVAR_CASHFILL] = CreateConVar("zr_cashfill", "1", "");
// Old Desc: Enable the mod to set the players cash to zr_cashamount (0: Disabled)
g_hCvarsList[CVAR_CASHAMOUNT] = CreateConVar("zr_cashamount", "12000", "");
// Old Desc: How much money players will have when they spawn when zr_cashfill is 1
g_hCvarsList[CVAR_INFECT_FIREBALL] = CreateConVar("zr_infect_fireball", "1", "");
// Old Desc: A fireball is created when a player is infected (0: Disable)
g_hCvarsList[CVAR_INFECT_SMOKE] = CreateConVar("zr_infect_smoke", "1", "");
// Old Desc: A puff of smoke is created when a player is infected (0: Disable)
g_hCvarsList[CVAR_INFECT_SPARKS] = CreateConVar("zr_infect_sparks", "1", "");
// Old Desc: Sparks are emitted when a player is infected (0: Disable)
g_hCvarsList[CVAR_INFECT_SOUND] = CreateConVar("zr_infect_sound", "");
// Old Desc: npc/fast_zombie/fz_scream1.wav", "Sound played from from player on infection (Leave blank to disable)
g_hCvarsList[CVAR_INFECT_ESPLASH] = CreateConVar("zr_infect_esplash", "1", "");
// Old Desc: An energy splash is emitted when player is infected (0: Disable)
g_hCvarsList[CVAR_INFECT_SHAKE] = CreateConVar("zr_infect_shake", "1", "");
// Old Desc: Player's screen is shaken on infection (0: Disable)
g_hCvarsList[CVAR_INFECT_SHAKE_AMP] = CreateConVar("zr_infect_shake_amp", "15.0", "");
// Old Desc: Amplitude of the shake, when zr_infect_shake is 1
g_hCvarsList[CVAR_INFECT_SHAKE_FREQUENCY] = CreateConVar("zr_infect_shake_frequency", "1.0", "");
// Old Desc: Frequency of the shake, when zr_infect_shake is 1
g_hCvarsList[CVAR_INFECT_SHAKE_DURATION] = CreateConVar("zr_infect_shake_duration", "5.0", "");
// Old Desc: Duration of the shake, when zr_infect_shake is 1
g_hCvarsList[CVAR_ANTICAMP] = CreateConVar("zr_anticamp", "1", "");
// Old Desc: Enables or disables hurt volumes for preventing unfair camping. (0: Disable)
g_hCvarsList[CVAR_ANTICAMP_UPDATE_INTERVAL] = CreateConVar("zr_anticamp_update_interval", "1", "");
// Old Desc: How often to update player locations (in seconds).
g_hCvarsList[CVAR_ANTICAMP_ECHO] = CreateConVar("zr_anticamp_echo", "1", "");
// Old Desc: Log kills done by anticamp to admin chat.
// TODO: Recode. // TODO: Recode.
//HookConVarChange(gCvars[CVAR_ENABLE], EnableHook); //HookConVarChange(g_hCvarsList[CVAR_ENABLE], EnableHook);
HookConVarChange(gCvars[CVAR_ANTICAMP], AnticampHook);
HookConVarChange(gCvars[CVAR_ANTICAMP_UPDATE_INTERVAL], UpdateIntervalHook);
AutoExecConfig(true, "zombiereloaded", "sourcemod/zombiereloaded"); AutoExecConfig(true, "zombiereloaded", "sourcemod/zombiereloaded");
} }
HookCvars() CvarsHook()
{ {
SetConVarBool(FindConVar("mp_autoteambalance"), false); SetConVarBool(FindConVar("mp_autoteambalance"), false);
SetConVarInt(FindConVar("mp_limitteams"), 0); SetConVarInt(FindConVar("mp_limitteams"), 0);
HookConVarChange(FindConVar("mp_autoteambalance"), AutoTeamBalanceHook); HookConVarChange(FindConVar("mp_autoteambalance"), AutoTeamBalanceHook);
HookConVarChange(FindConVar("mp_limitteams"), LimitTeamsHook); HookConVarChange(FindConVar("mp_limitteams"), LimitTeamsHook);
HookConVarChange(g_hCvarsList[CVAR_ANTICAMP], AnticampHook);
HookConVarChange(g_hCvarsList[CVAR_ANTICAMP_UPDATE_INTERVAL], UpdateIntervalHook);
} }
UnhookCvars() CvarsUnhook()
{ {
UnhookConVarChange(FindConVar("mp_autoteambalance"), AutoTeamBalanceHook); UnhookConVarChange(FindConVar("mp_autoteambalance"), AutoTeamBalanceHook);
UnhookConVarChange(FindConVar("mp_limitteams"), LimitTeamsHook); UnhookConVarChange(FindConVar("mp_limitteams"), LimitTeamsHook);
@ -240,7 +405,7 @@ public LimitTeamsHook(Handle:convar, const String:oldValue[], const String:newVa
LogHasFlag(flag) LogHasFlag(flag)
{ {
if (GetConVarInt(gCvars[CVAR_LOG]) & flag) if (GetConVarInt(g_hCvarsList[CVAR_LOG]) & flag)
{ {
return 1; return 1;
} }

View File

@ -50,7 +50,7 @@ DamageInit()
{ {
// Create command callbacks (intercepts) for listed suicide commands. // Create command callbacks (intercepts) for listed suicide commands.
decl String:suicidecmds[64]; decl String:suicidecmds[64];
GetConVarString(gCvars[CVAR_SUICIDE_CMDS], suicidecmds, sizeof(suicidecmds)); GetConVarString(g_hCvarsList[CVAR_DAMAGE_SUICIDE_CMDS], suicidecmds, sizeof(suicidecmds));
// Create array to store cmds // Create array to store cmds
new String:arrayCmds[DAMAGE_SUICIDE_MAX_CMDS][DAMAGE_SUICIDE_MAX_LENGTH]; new String:arrayCmds[DAMAGE_SUICIDE_MAX_CMDS][DAMAGE_SUICIDE_MAX_LENGTH];
@ -105,7 +105,7 @@ DamageOnClientDisconnect(client)
public DamageTraceAttack(client, inflictor, attacker, damage, hitbox, hitgroup) public DamageTraceAttack(client, inflictor, attacker, damage, hitbox, hitgroup)
{ {
// Disabled // Disabled
// new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); // new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
// If attacker isn't valid, then stop. // If attacker isn't valid, then stop.
if (!ZRIsValidClient(attacker)) if (!ZRIsValidClient(attacker))
@ -144,7 +144,7 @@ public DamageOnTakeDamage(client, inflictor, attacker, damage, damagetype, ammot
{ {
// Disabled. // Disabled.
/** /**
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return Hacks_Continue; return Hacks_Continue;
@ -250,7 +250,7 @@ public Action:DamageSuicideIntercept(client, argc)
{ {
// Disabled. // Disabled.
/** /**
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return Plugin_Continue; return Plugin_Continue;
@ -278,8 +278,8 @@ public Action:DamageSuicideIntercept(client, argc)
new bool:clientzombie = IsPlayerZombie(client); new bool:clientzombie = IsPlayerZombie(client);
// Get cvar values for suicide interception. // Get cvar values for suicide interception.
new bool:suicidezombie = GetConVarBool(gCvars[CVAR_SUICIDE_ZOMBIE]); new bool:suicidezombie = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_SUICIDE_ZOMBIE]);
new bool:suicidehuman = GetConVarBool(gCvars[CVAR_SUICIDE_HUMAN]); new bool:suicidehuman = GetConVarBool(g_hCvarsList[CVAR_DAMAGE_SUICIDE_HUMAN]);
// Determine whether to block suicide based off of the client's zombie flag and cvar values. // Determine whether to block suicide based off of the client's zombie flag and cvar values.
new bool:blocksuicide = clientzombie ? suicidezombie : suicidehuman; new bool:blocksuicide = clientzombie ? suicidezombie : suicidehuman;

View File

@ -71,8 +71,8 @@ public Action:RoundFreezeEnd(Handle:event, const String:name[], bool:dontBroadca
KillTimer(tInfect); KillTimer(tInfect);
} }
new Float:min = GetConVarFloat(gCvars[CVAR_SPAWN_MIN]); new Float:min = GetConVarFloat(g_hCvarsList[CVAR_SPAWN_MIN]);
new Float:max = GetConVarFloat(gCvars[CVAR_SPAWN_MAX]); new Float:max = GetConVarFloat(g_hCvarsList[CVAR_SPAWN_MAX]);
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);
@ -144,10 +144,10 @@ public Action:PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
// Check if client is on a team. // Check if client is on a team.
if (ZRIsClientOnTeam(index)) if (ZRIsClientOnTeam(index))
{ {
new bool:cashfill = GetConVarBool(gCvars[CVAR_CASHFILL]); new bool:cashfill = GetConVarBool(g_hCvarsList[CVAR_CASHFILL]);
if (cashfill) if (cashfill)
{ {
new cash = GetConVarInt(gCvars[CVAR_CASHAMOUNT]); new cash = GetConVarInt(g_hCvarsList[CVAR_CASHAMOUNT]);
SetPlayerMoney(index, cash); SetPlayerMoney(index, cash);
} }

View File

@ -52,6 +52,13 @@ HitgroupsLoad()
// Clear hitgroup data // Clear hitgroup data
HitgroupsClearData(); HitgroupsClearData();
// If module is disabled, then stop.
new bool:hitgroups = GetConVarBool(g_hCvarsList[CVAR_HITGROUPS]);
if (!hitgroups)
{
return;
}
decl String:path[PLATFORM_MAX_PATH]; decl String:path[PLATFORM_MAX_PATH];
BuildPath(Path_SM, path, sizeof(path), "configs/zr/hitgroups.txt"); BuildPath(Path_SM, path, sizeof(path), "configs/zr/hitgroups.txt");

View File

@ -53,12 +53,11 @@ NapalmOnClientHurt(client, const String:weapon[])
*/ */
NapalmOnWeaponFire(const String:weapon[]) NapalmOnWeaponFire(const String:weapon[])
{ {
// If ignite grenade is disabled, then stop. // If human class can't throw napalm grenades, then stop. (TODO)
new bool:ignitegrenade = GetConVarBool(gCvars[CVAR_NAPALM_IGNITEGRENADE]); /*if ()
if (!ignitegrenade)
{ {
return; return;
} }*/
// If weapon isn't a grenade, then stop. // If weapon isn't a grenade, then stop.
if (!StrEqual(weapon, "hegrenade", false)) if (!StrEqual(weapon, "hegrenade", false))

View File

@ -139,9 +139,9 @@ bool:ClassApplyOverlay(client, classindex, cachetype = ZR_CLASS_CACHE_PLAYER)
} }
// If client doesn't meet minimum requirement, then print unsupported text. // If client doesn't meet minimum requirement, then print unsupported text.
if (dxLevel[client] < ROUNDEND_MIN_DXLEVEL) if (dxLevel[client] < GENERAL_MIN_DXLEVEL)
{ {
ZR_PrintCenterText(client, "DX90 not supported", dxLevel[client], ROUNDEND_MIN_DXLEVEL); ZR_PrintCenterText(client, "DX90 not supported", dxLevel[client], GENERAL_MIN_DXLEVEL);
return false; return false;
} }

View File

@ -37,8 +37,8 @@ ClassOnClientDisconnect(client)
ClassOnClientSpawn(client) ClassOnClientSpawn(client)
{ {
new bool:randomclass = GetConVarBool(gCvars[CVAR_CLASSES_RANDOM]); new bool:randomclass = GetConVarBool(g_hCvarsList[CVAR_CLASSES_RANDOM]);
new bool:showmenu = GetConVarBool(gCvars[CVAR_CLASSES_SPAWN]); new bool:showmenu = GetConVarBool(g_hCvarsList[CVAR_CLASSES_SPAWN]);
decl String:steamid[16]; decl String:steamid[16];
decl String:classname[64]; decl String:classname[64];

View File

@ -228,7 +228,7 @@ public ClassMenuSelectHandle(Handle:menu, MenuAction:action, client, slot)
decl String:classname[64]; decl String:classname[64];
new classindex; new classindex;
new teamid; new teamid;
new bool:autoclose = GetConVarBool(gCvars[CVAR_MENU_AUTOCLOSE]); new bool:autoclose = GetConVarBool(g_hCvarsList[CVAR_MENU_AUTOCLOSE]);
switch (action) switch (action)
{ {

View File

@ -66,7 +66,7 @@ ClassOverlayStart(client)
ClientCommand(client, "r_screenoverlay \"%s\"", ActiveOverlay[client]); ClientCommand(client, "r_screenoverlay \"%s\"", ActiveOverlay[client]);
bClientOverlayOn[client] = true; bClientOverlayOn[client] = true;
new Float:redisplay = GetConVarFloat(gCvars[CVAR_OVERLAY_REDISPLAY]); new Float:redisplay = GetConVarFloat(g_hCvarsList[CVAR_OVERLAY_REDISPLAY]);
tOverlay[client] = CreateTimer(redisplay, ClassOverlayTimer, client, TIMER_REPEAT); tOverlay[client] = CreateTimer(redisplay, ClassOverlayTimer, client, TIMER_REPEAT);
} }

View File

@ -637,15 +637,15 @@ ClassGetDefaultSpawnClass(teamid, cachetype = ZR_CLASS_CACHE_MODIFIED)
{ {
case ZR_CLASS_TEAM_ZOMBIES: case ZR_CLASS_TEAM_ZOMBIES:
{ {
GetConVarString(gCvars[CVAR_CLASSES_DEFAULT_ZOMBIE], classname, sizeof(classname)); GetConVarString(g_hCvarsList[CVAR_CLASSES_DEFAULT_ZOMBIE], classname, sizeof(classname));
} }
case ZR_CLASS_TEAM_HUMANS: case ZR_CLASS_TEAM_HUMANS:
{ {
GetConVarString(gCvars[CVAR_CLASSES_DEFAULT_HUMAN], classname, sizeof(classname)); GetConVarString(g_hCvarsList[CVAR_CLASSES_DEFAULT_HUMAN], classname, sizeof(classname));
} }
case ZR_CLASS_TEAM_ADMINS: case ZR_CLASS_TEAM_ADMINS:
{ {
GetConVarString(gCvars[CVAR_CLASSES_DEFAULT_ADMIN], classname, sizeof(classname)); GetConVarString(g_hCvarsList[CVAR_CLASSES_DEFAULT_ADMIN], classname, sizeof(classname));
} }
default: default:
{ {

View File

@ -259,7 +259,7 @@ ClassLoad()
kvClassData = CreateKeyValues("classes"); kvClassData = CreateKeyValues("classes");
decl String:classfile[256]; decl String:classfile[256];
GetConVarString(gCvars[CVAR_CLASSES_FILE], classfile, sizeof(classfile)); GetConVarString(g_hCvarsList[CVAR_CLASSES_FILE], classfile, sizeof(classfile));
// Try to load the class configuration file. // Try to load the class configuration file.
decl String:path[PLATFORM_MAX_PATH]; decl String:path[PLATFORM_MAX_PATH];

View File

@ -75,14 +75,14 @@ RespawnOnClientDeath(client, attacker, const String:weapon[])
} }
// If respawn is disabled, stop here. // If respawn is disabled, stop here.
new bool:respawn = GetConVarBool(gCvars[CVAR_RESPAWN]); new bool:respawn = GetConVarBool(g_hCvarsList[CVAR_RESPAWN]);
if (!respawn) if (!respawn)
{ {
return; return;
} }
// Start respawn timer. // Start respawn timer.
new Float:delay = GetConVarFloat(gCvars[CVAR_RESPAWN_DELAY]); new Float:delay = GetConVarFloat(g_hCvarsList[CVAR_RESPAWN_DELAY]);
tRespawn[client] = CreateTimer(delay, RespawnTimer, client, TIMER_FLAG_NO_MAPCHANGE); tRespawn[client] = CreateTimer(delay, RespawnTimer, client, TIMER_FLAG_NO_MAPCHANGE);
} }
@ -95,7 +95,7 @@ RespawnOnClientDeath(client, attacker, const String:weapon[])
RespawnKilledByWorld(client) RespawnKilledByWorld(client)
{ {
// Return true if both the cvar is enabled and the player was killed by world. // Return true if both the cvar is enabled and the player was killed by world.
return (GetConVarBool(gCvars[CVAR_SUICIDE_WORLD_DAMAGE]) && pKilledByWorld[client]); return (GetConVarBool(g_hCvarsList[CVAR_RESPAWN_ZOMBIE_WORLD]) && pKilledByWorld[client]);
} }
/** /**
@ -121,7 +121,7 @@ RespawnSpawnClient(client)
} }
// Get respawn team. // Get respawn team.
new bool:respawn_zombie = GetConVarBool(gCvars[CVAR_RESPAWN_ZOMBIE]); new bool:respawn_zombie = GetConVarBool(g_hCvarsList[CVAR_RESPAWN_ZOMBIE]);
// Get suicide respawn cvar // Get suicide respawn cvar
if (respawn_zombie) if (respawn_zombie)
@ -130,7 +130,7 @@ RespawnSpawnClient(client)
return; return;
} }
if (GetConVarBool(gCvars[CVAR_SUICIDE_WORLD_DAMAGE]) && pKilledByWorld[client]) if (GetConVarBool(g_hCvarsList[CVAR_RESPAWN_ZOMBIE_WORLD]) && pKilledByWorld[client])
{ {
InfectPlayer(client); InfectPlayer(client);
pKilledByWorld[client] = false; pKilledByWorld[client] = false;

View File

@ -42,11 +42,6 @@
*/ */
#define ROUNDEND_DELAY_SHORT 3.0 #define ROUNDEND_DELAY_SHORT 3.0
/**
* Minimum dx level required to see overlays.
*/
#define ROUNDEND_MIN_DXLEVEL 90
/** /**
* Possible round end outcomes. * Possible round end outcomes.
*/ */
@ -401,14 +396,14 @@ RoundEndDisplayClientOverlay(client, const String:overlay[])
} }
// If dxLevel is above or equal to minimum requirement, then display overlay. // If dxLevel is above or equal to minimum requirement, then display overlay.
if (dxLevel[client] >= ROUNDEND_MIN_DXLEVEL) if (dxLevel[client] >= GENERAL_MIN_DXLEVEL)
{ {
ClientCommand(client, "r_screenoverlay \"%s\"", overlay); ClientCommand(client, "r_screenoverlay \"%s\"", overlay);
} }
// If client doesn't meet minimum requirement, then print unsupported text. // If client doesn't meet minimum requirement, then print unsupported text.
else else
{ {
ZR_PrintCenterText(client, "DX90 not supported", dxLevel[client], ROUNDEND_MIN_DXLEVEL); ZR_PrintCenterText(client, "DX90 not supported", dxLevel[client], GENERAL_MIN_DXLEVEL);
} }
} }
@ -421,7 +416,7 @@ RoundEndDisplayClientOverlay(client, const String:overlay[])
RoundEndOverlayStart(Float:time, RoundEndOutcome:outcome) RoundEndOverlayStart(Float:time, RoundEndOutcome:outcome)
{ {
// If round end overlays are disabled, then stop. // If round end overlays are disabled, then stop.
new bool:overlay = GetConVarBool(gCvars[CVAR_ROUNDEND_OVERLAY]); new bool:overlay = GetConVarBool(g_hCvarsList[CVAR_ROUNDEND_OVERLAY]);
if (!overlay) if (!overlay)
{ {
return; return;
@ -434,12 +429,12 @@ RoundEndOverlayStart(Float:time, RoundEndOutcome:outcome)
// Show "zombies win" overlay. // Show "zombies win" overlay.
case ZombiesWin: case ZombiesWin:
{ {
GetConVarString(gCvars[CVAR_ROUNDEND_OVERLAY_ZOMBIE], overlaypath, sizeof(overlaypath)); GetConVarString(g_hCvarsList[CVAR_ROUNDEND_OVERLAY_ZOMBIE], overlaypath, sizeof(overlaypath));
} }
// Show "humans win" overlay. // Show "humans win" overlay.
case HumansWin: case HumansWin:
{ {
GetConVarString(gCvars[CVAR_ROUNDEND_OVERLAY_HUMAN], overlaypath, sizeof(overlaypath)); GetConVarString(g_hCvarsList[CVAR_ROUNDEND_OVERLAY_HUMAN], overlaypath, sizeof(overlaypath));
} }
// Show no overlay. // Show no overlay.
default: default:

View File

@ -14,7 +14,7 @@ HookChatCmds()
public Action:SayCommand(client, argc) public Action:SayCommand(client, argc)
{ {
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!client || !enabled) if (!client || !enabled)
{ {
return Plugin_Continue; return Plugin_Continue;
@ -81,7 +81,7 @@ public Action:SayCommand(client, argc)
ZSpawn(client) ZSpawn(client)
{ {
new bool:spawn = GetConVarBool(gCvars[CVAR_ZSPAWN]); new bool:spawn = GetConVarBool(g_hCvarsList[CVAR_ZSPAWN]);
if (!spawn) if (!spawn)
{ {
ZR_PrintToChat(client, "Feature is disabled"); ZR_PrintToChat(client, "Feature is disabled");

View File

@ -50,7 +50,7 @@ AmbientSoundsClientInit(client)
bool:AmbientSoundsValidateConfig() bool:AmbientSoundsValidateConfig()
{ {
// If ambience is disabled, then stop. // If ambience is disabled, then stop.
new bool:ambience = GetConVarBool(gCvars[CVAR_AMBIENTSOUNDS]); new bool:ambience = GetConVarBool(g_hCvarsList[CVAR_AMBIENTSOUNDS]);
if (!ambience) if (!ambience)
{ {
return false; return false;
@ -64,7 +64,7 @@ bool:AmbientSoundsValidateConfig()
// Get ambient sound file. // Get ambient sound file.
decl String:sound[SOUND_MAX_PATH]; decl String:sound[SOUND_MAX_PATH];
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound)); GetConVarString(g_hCvarsList[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
Format(sound, sizeof(sound), "sound/%s", sound); Format(sound, sizeof(sound), "sound/%s", sound);
// If file doesn't exist, then log error and stop. // If file doesn't exist, then log error and stop.
@ -76,7 +76,7 @@ bool:AmbientSoundsValidateConfig()
} }
// If volume is muted or invalid, then log error and stop. // If volume is muted or invalid, then log error and stop.
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]); new Float:ambientvolume = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_VOLUME]);
if (ambientvolume <= 0.0) if (ambientvolume <= 0.0)
{ {
// Log invalid ambient sound volume error. // Log invalid ambient sound volume error.
@ -85,7 +85,7 @@ bool:AmbientSoundsValidateConfig()
} }
// If length is invalid, then log error and stop. // If length is invalid, then log error and stop.
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]); new Float:ambientlength = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_LENGTH]);
if (ambientlength <= 0.0) if (ambientlength <= 0.0)
{ {
// Log invalid ambient sound length error. // Log invalid ambient sound length error.
@ -138,10 +138,10 @@ AmbientSoundsOnClientSpawn(client)
// Get ambient sound file. // Get ambient sound file.
decl String:sound[SOUND_MAX_PATH]; decl String:sound[SOUND_MAX_PATH];
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound)); GetConVarString(g_hCvarsList[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
// Get ambient sound volume. // Get ambient sound volume.
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]); new Float:ambientvolume = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_VOLUME]);
// Emit ambient sound. // Emit ambient sound.
SEffectsEmitAmbientSound(sound, ambientvolume, client); SEffectsEmitAmbientSound(sound, ambientvolume, client);
@ -177,7 +177,7 @@ AmbientSoundsRestart()
} }
// Get ambient sound length. // Get ambient sound length.
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]); new Float:ambientlength = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_LENGTH]);
// Start ambient sounds timer. // Start ambient sounds timer.
tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE); tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE);
@ -198,16 +198,16 @@ public Action:AmbientSoundsTimer(Handle:timer)
// Get ambient sound file. // Get ambient sound file.
decl String:sound[SOUND_MAX_PATH]; decl String:sound[SOUND_MAX_PATH];
GetConVarString(gCvars[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound)); GetConVarString(g_hCvarsList[CVAR_AMBIENTSOUNDS_FILE], sound, sizeof(sound));
// Get ambient sound volume. // Get ambient sound volume.
new Float:ambientvolume = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_VOLUME]); new Float:ambientvolume = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_VOLUME]);
// Emit ambient sound. // Emit ambient sound.
SEffectsEmitAmbientSound(sound, ambientvolume); SEffectsEmitAmbientSound(sound, ambientvolume);
// Get ambient sound length. // Get ambient sound length.
new Float:ambientlength = GetConVarFloat(gCvars[CVAR_AMBIENTSOUNDS_LENGTH]); new Float:ambientlength = GetConVarFloat(g_hCvarsList[CVAR_AMBIENTSOUNDS_LENGTH]);
// Start new timer with sound length as delay. // Start new timer with sound length as delay.
tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE); tAmbientSounds = CreateTimer(ambientlength, AmbientSoundsTimer, _, TIMER_FLAG_NO_MAPCHANGE);

View File

@ -105,7 +105,7 @@ ZombieSoundsOnClientDeath(client)
} }
// If death sound cvar is disabled, then stop. // If death sound cvar is disabled, then stop.
new bool:death = GetConVarBool(gCvars[CVAR_SOUNDEFFECTS_DEATH]); new bool:death = GetConVarBool(g_hCvarsList[CVAR_SOUNDEFFECTS_DEATH]);
if (!death) if (!death)
{ {
return; return;
@ -132,7 +132,7 @@ ZombieSoundsOnClientHurt(client)
} }
// Get groan factor, if 0, then stop. // Get groan factor, if 0, then stop.
new groan = GetConVarInt(gCvars[CVAR_SOUNDEFFECTS_GROAN]); new groan = GetConVarInt(g_hCvarsList[CVAR_SOUNDEFFECTS_GROAN]);
if (!groan) if (!groan)
{ {
return; return;
@ -157,7 +157,7 @@ ZombieSoundsOnClientHurt(client)
ZombieSoundsOnClientInfected(client) ZombieSoundsOnClientInfected(client)
{ {
// If interval is set to 0, then stop. // If interval is set to 0, then stop.
new Float:interval = GetConVarFloat(gCvars[CVAR_SOUNDEFFECTS_MOAN]); new Float:interval = GetConVarFloat(g_hCvarsList[CVAR_SOUNDEFFECTS_MOAN]);
if (!interval) if (!interval)
{ {
return; return;

View File

@ -67,16 +67,16 @@ SpawnProtectOnClientSpawn(client)
return; return;
} }
// If protect cvar is invalid or 0, then stop. // If protect cvar is disabled, then stop.
new protect = GetConVarInt(gCvars[CVAR_PROTECT]); new bool:protect = GetConVarBool(g_hCvarsList[CVAR_SPAWNPROTECT]);
if (protect <= 0) if (!protect)
{ {
return; return;
} }
// If player respawns as human, and either cvar zr_suicide_world_damage or the client // If player respawns as human, and either cvar zr_suicide_world_damage or the client
// wasn't killed by world is false, then continue on to protect client. // wasn't killed by world is false, then continue on to protect client.
new bool:respawn_zombie = GetConVarBool(gCvars[CVAR_RESPAWN_ZOMBIE]); new bool:respawn_zombie = GetConVarBool(g_hCvarsList[CVAR_RESPAWN_ZOMBIE]);
if (!respawn_zombie && !RespawnKilledByWorld(client)) if (!respawn_zombie && !RespawnKilledByWorld(client))
{ {
// Set spawn protect flag on client. // Set spawn protect flag on client.
@ -87,11 +87,12 @@ SpawnProtectOnClientSpawn(client)
SetPlayerAlpha(client, 0); SetPlayerAlpha(client, 0);
SetPlayerSpeed(client, 600.0); SetPlayerSpeed(client, 600.0);
// Set time left to zr_protect's value. // Set time left to zr_protect_time's value.
pSpawnProtectTime[client] = protect; new protect_time = GetConVarInt(g_hCvarsList[CVAR_SPAWNPROTECT_TIME]);
pSpawnProtectTime[client] = protect_time;
// Tell client they are being protected. // Tell client they are being protected.
ZR_PrintToChat(client, "Spawn protection begin", protect); ZR_PrintToChat(client, "Spawn protection begin", protect_time);
// Send time left in a hud message. // Send time left in a hud message.
ZR_HudHint(client, "Spawn Protect", pSpawnProtectTime[client]); ZR_HudHint(client, "Spawn Protect", pSpawnProtectTime[client]);

View File

@ -13,7 +13,7 @@ ZTeleEnable()
{ {
KillTimer(ztele_startup_timer); KillTimer(ztele_startup_timer);
} }
new Float:startup_delay = GetConVarFloat(gCvars[CVAR_ZTELE_STARTUP_DELAY]); new Float:startup_delay = GetConVarFloat(g_hCvarsList[CVAR_ZTELE_STARTUP_DELAY]);
if (startup_delay > 0) if (startup_delay > 0)
{ {
ztele_startup_timer = CreateTimer(startup_delay, Event_TeleporterStartup); ztele_startup_timer = CreateTimer(startup_delay, Event_TeleporterStartup);
@ -336,7 +336,7 @@ public Action:Command_TeleportAbort(client, argc)
bool:ZTele(client) bool:ZTele(client)
{ {
// Check if the teleporter is disabled. // Check if the teleporter is disabled.
new bool:tele = GetConVarBool(gCvars[CVAR_ZTELE]); new bool:tele = GetConVarBool(g_hCvarsList[CVAR_ZTELE]);
if (!tele) if (!tele)
{ {
ZR_PrintToChat(client, "Feature is disabled"); ZR_PrintToChat(client, "Feature is disabled");
@ -375,7 +375,7 @@ bool:ZTele(client)
// Check limits. // Check limits.
if (IsPlayerHuman(client)) if (IsPlayerHuman(client))
{ {
new human_limit = GetConVarInt(gCvars[CVAR_ZTELE_HUMAN_LIMIT]); new human_limit = GetConVarInt(g_hCvarsList[CVAR_ZTELE_HUMAN_LIMIT]);
new bool:tele_humans; new bool:tele_humans;
if (human_limit == 0) if (human_limit == 0)
{ {
@ -400,7 +400,7 @@ bool:ZTele(client)
} }
else else
{ {
new zombie_limit = GetConVarInt(gCvars[CVAR_ZTELE_ZOMBIE_LIMIT]); new zombie_limit = GetConVarInt(g_hCvarsList[CVAR_ZTELE_ZOMBIE_LIMIT]);
new bool:tele_zombies; new bool:tele_zombies;
if (zombie_limit == 0) if (zombie_limit == 0)
{ {
@ -439,8 +439,8 @@ TeleportClient(client, bool:no_delay = false, bool:free_tele = false, bool:no_co
if (IsPlayerHuman(client)) if (IsPlayerHuman(client))
{ {
new human_delay = GetConVarInt(gCvars[CVAR_ZTELE_HUMAN_DELAY]); new human_delay = GetConVarInt(g_hCvarsList[CVAR_ZTELE_HUMAN_DELAY]);
new human_limit = GetConVarInt(gCvars[CVAR_ZTELE_HUMAN_LIMIT]); new human_limit = GetConVarInt(g_hCvarsList[CVAR_ZTELE_HUMAN_LIMIT]);
if (human_delay > 0) if (human_delay > 0)
{ {
ztele_countdown[client] = human_delay; ztele_countdown[client] = human_delay;
@ -461,8 +461,8 @@ TeleportClient(client, bool:no_delay = false, bool:free_tele = false, bool:no_co
} }
else else
{ {
new zombie_delay = GetConVarInt(gCvars[CVAR_ZTELE_ZOMBIE_DELAY]); new zombie_delay = GetConVarInt(g_hCvarsList[CVAR_ZTELE_ZOMBIE_DELAY]);
new zombie_limit = GetConVarInt(gCvars[CVAR_ZTELE_ZOMBIE_LIMIT]); new zombie_limit = GetConVarInt(g_hCvarsList[CVAR_ZTELE_ZOMBIE_LIMIT]);
if (zombie_delay > 0) if (zombie_delay > 0)
{ {
ztele_countdown[client] = zombie_delay; ztele_countdown[client] = zombie_delay;
@ -490,7 +490,7 @@ TeleportClient(client, bool:no_delay = false, bool:free_tele = false, bool:no_co
TeleportEntity(client, spawnLoc[client], NULL_VECTOR, empty_vector); TeleportEntity(client, spawnLoc[client], NULL_VECTOR, empty_vector);
// Create cooldown timer if enabled. // Create cooldown timer if enabled.
new cooldown = GetConVarInt(gCvars[CVAR_ZTELE_COOLDOWN]); new cooldown = GetConVarInt(g_hCvarsList[CVAR_ZTELE_COOLDOWN]);
if (!no_cooldown && cooldown) if (!no_cooldown && cooldown)
{ {
ztele_countdown[client] = cooldown; ztele_countdown[client] = cooldown;

View File

@ -30,7 +30,7 @@ bool:ZMarketSend(client)
} }
// Check buyzone cvar to see if client has to be in a buyzone to use. // Check buyzone cvar to see if client has to be in a buyzone to use.
new bool:buyzone = GetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE]); new bool:buyzone = GetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE]);
if (!IsClientInBuyZone(client) && buyzone) if (!IsClientInBuyZone(client) && buyzone)
{ {
// Tell client they must be in a buyzone. // Tell client they must be in a buyzone.
@ -106,7 +106,7 @@ public bool:Market_OnWeaponSelected(client, String:weaponid[])
} }
// Check if buyzone cvar is enabled, and if the client is in a buyzone. // Check if buyzone cvar is enabled, and if the client is in a buyzone.
new bool:buyzone = GetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE]); new bool:buyzone = GetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE]);
if (!IsClientInBuyZone(client) && buyzone) if (!IsClientInBuyZone(client) && buyzone)
{ {
ZR_PrintCenterText(client, "Market out of buyzone"); ZR_PrintCenterText(client, "Market out of buyzone");

View File

@ -422,7 +422,7 @@ WeaponsMenuMarket(client)
decl String:togglebuyzone[64]; decl String:togglebuyzone[64];
decl String:curSetting[8]; decl String:curSetting[8];
ZRBoolToConfigSetting(GetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE]), curSetting, sizeof(curSetting)); ZRBoolToConfigSetting(GetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE]), curSetting, sizeof(curSetting));
Format(togglebuyzone, sizeof(togglebuyzone), "%t", "Weapons menu market toggle buyzone", curSetting); Format(togglebuyzone, sizeof(togglebuyzone), "%t", "Weapons menu market toggle buyzone", curSetting);
@ -451,13 +451,13 @@ public WeaponsMenuMarketHandle(Handle:menu_weapons_market, MenuAction:action, cl
{ {
case 0: case 0:
{ {
if (GetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE])) if (GetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE]))
{ {
SetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE], false); SetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE], false);
} }
else else
{ {
SetConVarBool(gCvars[CVAR_ZMARKET_BUYZONE], true); SetConVarBool(g_hCvarsList[CVAR_ZMARKET_BUYZONE], true);
} }
} }
} }

View File

@ -67,6 +67,16 @@ RestrictClearData()
*/ */
RestrictOnMapStart() RestrictOnMapStart()
{ {
// Clear weapon restrict data.
RestrictClearData();
// If module is disabled, then stop.
new bool:restrict = GetConVarBool(g_hCvarsList[CVAR_WEAPONS_RESTRICT]);
if (!restrict)
{
return;
}
// Restrict default restrictions. (set in weapons.txt) // Restrict default restrictions. (set in weapons.txt)
RestrictDefaultRestrictions(); RestrictDefaultRestrictions();
@ -78,7 +88,7 @@ RestrictOnMapStart()
{ {
if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_WEAPONS)) if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_WEAPONS))
{ {
ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "Missing file weapongroups.txt.", LOG_FORMAT_TYPE_FULL); ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "Missing file weapongroups.txt.", LOG_FORMAT_TYPE_ERROR);
} }
return; return;
@ -208,7 +218,7 @@ RestrictOnClientDisconnect(client)
public Action:RestrictBuyHook(client, argc) public Action:RestrictBuyHook(client, argc)
{ {
// If plugin is disabled then stop. // If plugin is disabled then stop.
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
// Allow command. // Allow command.
@ -835,7 +845,7 @@ RestrictGetGroupWeapons(const String:groupname[], String:weaponlist[], maxlen, c
public RestrictCanUse(client, weapon, dummy1, dummy2, dummy3, dummy4) public RestrictCanUse(client, weapon, dummy1, dummy2, dummy3, dummy4)
{ {
// If plugin is disabled then stop. // If plugin is disabled then stop.
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return Hacks_Continue; return Hacks_Continue;

View File

@ -1,9 +1,12 @@
/** /*
* ==================== * ============================================================================
*
* Zombie:Reloaded * Zombie:Reloaded
*
* File: weapons.inc * File: weapons.inc
* Author: Greyscale * Description: API for all weapon-related functions.
* ==================== *
* ============================================================================
*/ */
/** /**
@ -55,8 +58,12 @@ WeaponsLoad()
// Clear weapon data. // Clear weapon data.
WeaponsClearData(); WeaponsClearData();
// Clear weapon restrict data. // If module is disabled, then stop.
RestrictClearData(); new bool:weapons = GetConVarBool(g_hCvarsList[CVAR_WEAPONS]);
if (!weapons)
{
return;
}
decl String:path[PLATFORM_MAX_PATH]; decl String:path[PLATFORM_MAX_PATH];
BuildPath(Path_SM, path, sizeof(path), "configs/zr/weapons/weapons.txt"); BuildPath(Path_SM, path, sizeof(path), "configs/zr/weapons/weapons.txt");
@ -66,7 +73,7 @@ WeaponsLoad()
{ {
if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_WEAPONS)) if (LogFlagCheck(LOG_CORE_EVENTS, LOG_MODULE_WEAPONS))
{ {
ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "Missing file weapons.txt, disabling weapons-based modules.", LOG_FORMAT_TYPE_FULL); ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "Missing file weapons.txt, disabling weapons-based modules.", LOG_FORMAT_TYPE_ERROR);
} }
return; return;
@ -93,7 +100,7 @@ WeaponsValidateConfig()
KvRewind(kvWeapons); KvRewind(kvWeapons);
if (!KvGotoFirstSubKey(kvWeapons)) if (!KvGotoFirstSubKey(kvWeapons))
{ {
ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "No weapons listed in weapons.txt, disabling weapons-based modules.", LOG_FORMAT_TYPE_FULL); ZR_LogMessageFormatted(-1, "Weapons", "Config Validation", "No weapons listed in weapons.txt, disabling weapons-based modules.", LOG_FORMAT_TYPE_ERROR);
} }
} }

View File

@ -117,7 +117,7 @@ public ZRAdminMenuHandle(Handle:menu_admin, MenuAction:action, client, slot)
/*ZRKnockbackMMenu(client) /*ZRKnockbackMMenu(client)
{ {
new Handle:menu_knockbackm = CreateMenu(ZRKnockbackMHandle); new Handle:menu_knockbackm = CreateMenu(ZRKnockbackMHandle);
new Float:curknockback = GetConVarFloat(gCvars[CVAR_ZOMBIE_KNOCKBACK]); new Float:curknockback = GetConVarFloat(g_hCvarsList[CVAR_ZOMBIE_KNOCKBACK]);
SetGlobalTransTarget(client); SetGlobalTransTarget(client);
@ -297,7 +297,7 @@ public ZRClassKnockbackHandle(Handle:menu_knockback, MenuAction:action, client,
ZRNVGSMenu(client) ZRNVGSMenu(client)
{ {
new Handle:menu_nvgs = CreateMenu(ZRNVGSHandle); new Handle:menu_nvgs = CreateMenu(ZRNVGSHandle);
new curnvgs = GetConVarInt(gCvars[CVAR_ZOMBIE_NVGS]); new curnvgs = GetConVarInt(g_hCvarsList[CVAR_ZOMBIE_NVGS]);
SetGlobalTransTarget(client); SetGlobalTransTarget(client);
@ -328,17 +328,17 @@ public ZRNVGSHandle(Handle:menu_nvgs, MenuAction:action, client, slot)
{ {
case 0: case 0:
{ {
SetConVarInt(gCvars[CVAR_ZOMBIE_NVGS], -1); SetConVarInt(g_hCvarsList[CVAR_ZOMBIE_NVGS], -1);
ZRNVGSMenu(client); ZRNVGSMenu(client);
} }
case 1: case 1:
{ {
SetConVarInt(gCvars[CVAR_ZOMBIE_NVGS], 0); SetConVarInt(g_hCvarsList[CVAR_ZOMBIE_NVGS], 0);
ZRNVGSMenu(client); ZRNVGSMenu(client);
} }
case 2: case 2:
{ {
SetConVarInt(gCvars[CVAR_ZOMBIE_NVGS], 1); SetConVarInt(g_hCvarsList[CVAR_ZOMBIE_NVGS], 1);
ZRNVGSMenu(client); ZRNVGSMenu(client);
} }
} }
@ -708,8 +708,8 @@ public ZRLogFlagsMenuHandle(Handle:menu_log_flags, MenuAction:action, client, sl
AddToKnockbackMultiplier(Float:value) AddToKnockbackMultiplier(Float:value)
{ {
new Float:current_val = GetConVarFloat(gCvars[CVAR_ZOMBIE_KNOCKBACK]); new Float:current_val = GetConVarFloat(g_hCvarsList[CVAR_ZOMBIE_KNOCKBACK]);
SetConVarFloat(gCvars[CVAR_ZOMBIE_KNOCKBACK], current_val + value); SetConVarFloat(g_hCvarsList[CVAR_ZOMBIE_KNOCKBACK], current_val + value);
} }
AddToClassKnockback(classindex, Float:value) AddToClassKnockback(classindex, Float:value)
@ -720,7 +720,7 @@ AddToClassKnockback(classindex, Float:value)
ToggleLogFlag(flag) ToggleLogFlag(flag)
{ {
new log_flags; new log_flags;
log_flags = GetConVarInt(gCvars[CVAR_LOG]); log_flags = GetConVarInt(g_hCvarsList[CVAR_LOG]);
if (log_flags & flag) if (log_flags & flag)
{ {
@ -731,5 +731,5 @@ ToggleLogFlag(flag)
log_flags = log_flags + flag; log_flags = log_flags + flag;
} }
SetConVarInt(gCvars[CVAR_LOG], log_flags); SetConVarInt(g_hCvarsList[CVAR_LOG], log_flags);
} }

View File

@ -28,7 +28,7 @@ new bool:pZHP[MAXPLAYERS + 1];
ZHPClientInit(client) ZHPClientInit(client)
{ {
// Get default client setting from cvar. // Get default client setting from cvar.
new bool:zhp = GetConVarBool(gCvars[CVAR_ZHP_DEFAULT]); new bool:zhp = GetConVarBool(g_hCvarsList[CVAR_ZHP_DEFAULT]);
// Set flag to default value. // Set flag to default value.
pZHP[client] = zhp; pZHP[client] = zhp;
@ -79,7 +79,7 @@ ZHPOnClientDeath(client)
ZHPOnClientInfected(client) ZHPOnClientInfected(client)
{ {
// If ZHP is disabled, then stop. // If ZHP is disabled, then stop.
new bool:zhp = GetConVarBool(gCvars[CVAR_ZHP]); new bool:zhp = GetConVarBool(g_hCvarsList[CVAR_ZHP]);
if (!zhp) if (!zhp)
{ {
return; return;
@ -128,7 +128,7 @@ ZHPOnHealthInfectGain(client)
ZHPToggle(client) ZHPToggle(client)
{ {
// If ZHP is disabled, then stop. // If ZHP is disabled, then stop.
new bool:zhp = GetConVarBool(gCvars[CVAR_ZHP]); new bool:zhp = GetConVarBool(g_hCvarsList[CVAR_ZHP]);
if (!zhp) if (!zhp)
{ {
// Tell client feature is disabled. // Tell client feature is disabled.
@ -164,7 +164,7 @@ ZHPToggle(client)
ZHPUpdateHUD(client) ZHPUpdateHUD(client)
{ {
// If ZHP is disabled, then stop. // If ZHP is disabled, then stop.
new bool:zhp = GetConVarBool(gCvars[CVAR_ZHP]); new bool:zhp = GetConVarBool(g_hCvarsList[CVAR_ZHP]);
if (!zhp) if (!zhp)
{ {
return; return;

View File

@ -29,13 +29,13 @@ HookCommands()
public Action:Command_NightVision(client, argc) public Action:Command_NightVision(client, argc)
{ {
new bool:allow_disable = GetConVarBool(gCvars[CVAR_ZVISION_ALLOW_DISABLE]); new bool:allow_disable = GetConVarBool(g_hCvarsList[CVAR_ZVISION_ALLOW_DISABLE]);
if (!allow_disable) if (!allow_disable)
{ {
return; return;
} }
new bool:enabled = GetConVarBool(gCvars[CVAR_ENABLE]); new bool:enabled = GetConVarBool(g_hCvarsList[CVAR_ENABLE]);
if (!enabled) if (!enabled)
{ {
return; return;
@ -71,14 +71,14 @@ FindMapSky()
ChangeLightStyle() ChangeLightStyle()
{ {
new bool:dark = GetConVarBool(gCvars[CVAR_DARK]); new bool:dark = GetConVarBool(g_hCvarsList[CVAR_DARK]);
if (dark) if (dark)
{ {
decl String:darkness[2]; decl String:darkness[2];
decl String:sky[32]; decl String:sky[32];
GetConVarString(gCvars[CVAR_DARK_LEVEL], darkness, sizeof(darkness)); GetConVarString(g_hCvarsList[CVAR_DARK_LEVEL], darkness, sizeof(darkness));
GetConVarString(gCvars[CVAR_DARK_SKY], sky, sizeof(sky)); GetConVarString(g_hCvarsList[CVAR_DARK_SKY], sky, sizeof(sky));
SetLightStyle(0, darkness); SetLightStyle(0, darkness);
SetConVarString(FindConVar("sv_skyname"), sky, true, false); SetConVarString(FindConVar("sv_skyname"), sky, true, false);
@ -192,7 +192,7 @@ public Action:MotherZombie(Handle:timer)
new client; new client;
// Ratio of mother zombies to humans. // Ratio of mother zombies to humans.
new ratio = GetConVarInt(gCvars[CVAR_MOTHER_ZOMBIE_RATIO]); new ratio = GetConVarInt(g_hCvarsList[CVAR_MOTHER_ZOMBIE_RATIO]);
// If ratio is 0 or lower, then pick 1 zombie. // If ratio is 0 or lower, then pick 1 zombie.
if (ratio <= 0) if (ratio <= 0)
@ -288,7 +288,7 @@ InfectPlayer(client, attacker = -1, bool:motherinfect = false)
// Check if consecutive infection protection is enabled. // Check if consecutive infection protection is enabled.
new bool:consecutive_infect = GetConVarBool(gCvars[CVAR_CONSECUTIVE_INFECT]); new bool:consecutive_infect = GetConVarBool(g_hCvarsList[CVAR_CONSECUTIVE_INFECT]);
// Flag player to be immune from being mother zombie twice, if consecutive infect protection is enabled. // Flag player to be immune from being mother zombie twice, if consecutive infect protection is enabled.
bMotherInfectImmune[client] = consecutive_infect ? motherinfect : false; bMotherInfectImmune[client] = consecutive_infect ? motherinfect : false;
@ -312,13 +312,13 @@ InfectionEffects(client)
clientloc[2] += 30; clientloc[2] += 30;
decl String:sound[128]; decl String:sound[128];
GetConVarString(gCvars[CVAR_INFECT_SOUND], sound, sizeof(sound)); GetConVarString(g_hCvarsList[CVAR_INFECT_SOUND], sound, sizeof(sound));
if (sound[0]) if (sound[0])
{ {
SEffectsEmitSoundFromClient(client, sound, SNDLEVEL_SCREAMING); SEffectsEmitSoundFromClient(client, sound, SNDLEVEL_SCREAMING);
} }
new bool:esplash = GetConVarBool(gCvars[CVAR_INFECT_ESPLASH]); new bool:esplash = GetConVarBool(g_hCvarsList[CVAR_INFECT_ESPLASH]);
if (esplash) if (esplash)
{ {
TE_SetupEnergySplash(clientloc, direction, true); TE_SetupEnergySplash(clientloc, direction, true);
@ -332,19 +332,19 @@ InfectionEffects(client)
new flags = GetEntProp(explosion, Prop_Data, "m_spawnflags"); new flags = GetEntProp(explosion, Prop_Data, "m_spawnflags");
flags = flags | EXP_NODAMAGE | EXP_NODECAL; flags = flags | EXP_NODAMAGE | EXP_NODECAL;
new bool:fireball = GetConVarBool(gCvars[CVAR_INFECT_FIREBALL]); new bool:fireball = GetConVarBool(g_hCvarsList[CVAR_INFECT_FIREBALL]);
if (!fireball) if (!fireball)
{ {
flags = flags | EXP_NOFIREBALL; flags = flags | EXP_NOFIREBALL;
} }
new bool:smoke = GetConVarBool(gCvars[CVAR_INFECT_SMOKE]); new bool:smoke = GetConVarBool(g_hCvarsList[CVAR_INFECT_SMOKE]);
if (!smoke) if (!smoke)
{ {
flags = flags | EXP_NOSMOKE; flags = flags | EXP_NOSMOKE;
} }
new bool:sparks = GetConVarBool(gCvars[CVAR_INFECT_SPARKS]); new bool:sparks = GetConVarBool(g_hCvarsList[CVAR_INFECT_SPARKS]);
if (!sparks) if (!sparks)
{ {
flags = flags | EXP_NOSPARKS; flags = flags | EXP_NOSPARKS;
@ -362,16 +362,16 @@ InfectionEffects(client)
AcceptEntityInput(explosion, "Explode"); AcceptEntityInput(explosion, "Explode");
} }
new bool:shake = GetConVarBool(gCvars[CVAR_INFECT_SHAKE]); new bool:shake = GetConVarBool(g_hCvarsList[CVAR_INFECT_SHAKE]);
if (shake) if (shake)
{ {
new Handle:hShake = StartMessageOne("Shake", client); new Handle:hShake = StartMessageOne("Shake", client);
if (hShake != INVALID_HANDLE) if (hShake != INVALID_HANDLE)
{ {
BfWriteByte(hShake, 0); BfWriteByte(hShake, 0);
BfWriteFloat(hShake, GetConVarFloat(gCvars[CVAR_INFECT_SHAKE_AMP])); BfWriteFloat(hShake, GetConVarFloat(g_hCvarsList[CVAR_INFECT_SHAKE_AMP]));
BfWriteFloat(hShake, GetConVarFloat(gCvars[CVAR_INFECT_SHAKE_FREQUENCY])); BfWriteFloat(hShake, GetConVarFloat(g_hCvarsList[CVAR_INFECT_SHAKE_FREQUENCY]));
BfWriteFloat(hShake, GetConVarFloat(gCvars[CVAR_INFECT_SHAKE_DURATION])); BfWriteFloat(hShake, GetConVarFloat(g_hCvarsList[CVAR_INFECT_SHAKE_DURATION]));
EndMessage(); EndMessage();
} }

View File

@ -8,6 +8,11 @@
#define DEFAULT_FOV 90 #define DEFAULT_FOV 90
/**
* Minimum dx level required to see overlays.
*/
#define GENERAL_MIN_DXLEVEL 90
/** /**
* @section Logging flags. * @section Logging flags.
*/ */