diff --git a/addons/sourcemod/plugins/optional/readyup.smx b/addons/sourcemod/plugins/optional/readyup.smx index b75e89d23..38b8bebae 100644 Binary files a/addons/sourcemod/plugins/optional/readyup.smx and b/addons/sourcemod/plugins/optional/readyup.smx differ diff --git a/addons/sourcemod/scripting/readyup.sp b/addons/sourcemod/scripting/readyup.sp index df9be699c..d8537b7b2 100644 --- a/addons/sourcemod/scripting/readyup.sp +++ b/addons/sourcemod/scripting/readyup.sp @@ -9,7 +9,7 @@ #undef REQUIRE_PLUGIN #include -#define PLUGIN_VERSION "10.2.5" +#define PLUGIN_VERSION "10.2.6" public Plugin myinfo = { @@ -74,7 +74,7 @@ ConVar // Plugin Cvars ConVar // basic - l4d_ready_enabled, l4d_ready_cfg_name, l4d_ready_server_cvar, l4d_ready_max_players, + l4d_ready_enabled, l4d_ready_cfg_name, l4d_ready_server_cvar, l4d_ready_max_players, l4d_ready_autoready, // game l4d_ready_disable_spawns, l4d_ready_survivor_freeze, // sound diff --git a/addons/sourcemod/scripting/readyup/command.inc b/addons/sourcemod/scripting/readyup/command.inc index 8e992dc09..835b9c069 100644 --- a/addons/sourcemod/scripting/readyup/command.inc +++ b/addons/sourcemod/scripting/readyup/command.inc @@ -38,6 +38,11 @@ Action Ready_Cmd(int client, int args) Action Unready_Cmd(int client, int args) { + if (l4d_ready_autoready.BoolValue) + { + return Plugin_Handled; + } + if (inReadyUp && client) { bool hasflag = CheckCommandAccess(client, "sm_ban", ADMFLAG_BAN); // Check for specific admin flag diff --git a/addons/sourcemod/scripting/readyup/player.inc b/addons/sourcemod/scripting/readyup/player.inc index aac71f5f1..1af0de784 100644 --- a/addons/sourcemod/scripting/readyup/player.inc +++ b/addons/sourcemod/scripting/readyup/player.inc @@ -22,18 +22,18 @@ bool SetPlayerReady(int client, bool ready) if (prev && !ready) { - if (g_hPlayerReadyForward.FunctionCount) + if (g_hPlayerUnreadyForward.FunctionCount) { - Call_StartForward(g_hPlayerReadyForward); + Call_StartForward(g_hPlayerUnreadyForward); Call_PushCell(client); Call_Finish(); } } else if (!prev && ready) { - if (g_hPlayerUnreadyForward.FunctionCount) + if (g_hPlayerReadyForward.FunctionCount) { - Call_StartForward(g_hPlayerUnreadyForward); + Call_StartForward(g_hPlayerReadyForward); Call_PushCell(client); Call_Finish(); } @@ -57,6 +57,18 @@ bool SetPlayerHiddenPanel(int client, bool hidden) void SetButtonTime(int client) { buttonTime[client] = GetEngineTime(); + + int iPassTime = RoundToFloor(GetGameTime() - fStartTimestamp); + + if (IsPlayer(client) && inReadyUp && l4d_ready_autoready.BoolValue && iPassTime >= l4d_ready_autoready.IntValue) + { + SetPlayerReady(client, true); + + if (CheckFullReady()) + { + InitiateLiveCountdown(); + } + } } #define AFK_DURATION 15.0 diff --git a/addons/sourcemod/scripting/readyup/setup.inc b/addons/sourcemod/scripting/readyup/setup.inc index fe8649c14..91d2378b1 100644 --- a/addons/sourcemod/scripting/readyup/setup.inc +++ b/addons/sourcemod/scripting/readyup/setup.inc @@ -50,7 +50,7 @@ void SetupConVars() l4d_ready_cfg_name = CreateConVar("l4d_ready_cfg_name", "", "Configname to display on the ready-up panel", FCVAR_NOTIFY|FCVAR_PRINTABLEONLY); l4d_ready_server_cvar = CreateConVar("l4d_ready_server_cvar", "sn_main_name", "ConVar to retrieve the server name for displaying on the ready-up panel", FCVAR_NOTIFY|FCVAR_PRINTABLEONLY); l4d_ready_max_players = CreateConVar("l4d_ready_max_players", "12", "Maximum number of players to show on the ready-up panel.", FCVAR_NOTIFY, true, 0.0, true, MAXPLAYERS+1.0); - + // game l4d_ready_disable_spawns = CreateConVar("l4d_ready_disable_spawns", "0", "Prevent SI from having spawns during ready-up", FCVAR_NOTIFY, true, 0.0, true, 1.0); l4d_ready_survivor_freeze = CreateConVar("l4d_ready_survivor_freeze", "1", "Freeze the survivors during ready-up. When unfrozen they are unable to leave the saferoom but can move freely inside", FCVAR_NOTIFY, true, 0.0, true, 1.0); @@ -72,7 +72,8 @@ void SetupConVars() l4d_ready_autostart_min = CreateConVar("l4d_ready_autostart_min", "0.25", "Percent of max players (Versus = 8) in game to allow auto-start to proceed.", FCVAR_NOTIFY, true, 0.0, true, 1.0); l4d_ready_unbalanced_start = CreateConVar("l4d_ready_unbalanced_start", "0", "Allow game to go live when teams are not full.", FCVAR_NOTIFY, true, 0.0, true, 1.0); l4d_ready_unbalanced_min = CreateConVar("l4d_ready_unbalanced_min", "2", "Minimum of players in each team to allow a unbalanced start.", FCVAR_NOTIFY, true, 0.0); - + l4d_ready_autoready = CreateConVar("l4d_ready_autoready", "0", "Automatically ready up a player after after seconds if they are not afk (0 = disabled).", FCVAR_NOTIFY, true, 0.0); + // game convars director_no_specials = FindConVar("director_no_specials"); god = FindConVar("god");