Skip to content

Commit 9be075e

Browse files
Merge pull request #215 from shobhit-pathak/dev
0.8.3: backup/restore fix, live.cfg update
2 parents bc9cd39 + b91bb6b commit 9be075e

File tree

10 files changed

+54
-29
lines changed

10 files changed

+54
-29
lines changed

BackupManagement.cs

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private void HandleRestoreCommand(CCSPlayerController? player, string commandArg
121121
if (!string.IsNullOrWhiteSpace(commandArg)) {
122122
if (int.TryParse(commandArg, out int roundNumber) && roundNumber >= 0) {
123123
string round = roundNumber.ToString("D2");
124-
string requiredBackupFileName = $"matchzy_data_backup_{liveMatchId}_{matchConfig.CurrentMapNumber}_round_{round}.json";
124+
string requiredBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round{round}.json";
125125
RestoreRoundBackup(player, requiredBackupFileName);
126126
}
127127
else {
@@ -186,6 +186,20 @@ private void RestoreRoundBackup(CCSPlayerController? player, string fileName) {
186186

187187
isRoundRestoring = true;
188188

189+
// MatchID is set first to avoid generating a new one.
190+
if (backupData.TryGetValue("matchid", out var matchId))
191+
{
192+
liveMatchId = long.Parse(matchId);
193+
}
194+
if (backupData.TryGetValue("match_loaded", out var matchLoaded))
195+
{
196+
isMatchSetup = bool.Parse(matchLoaded);
197+
}
198+
if (backupData.TryGetValue("match_config", out var matchConfigValue))
199+
{
200+
matchConfig = Newtonsoft.Json.JsonConvert.DeserializeObject<MatchConfig>(matchConfigValue)!;
201+
SetupRoundBackupFile();
202+
}
189203
if (backupData.TryGetValue("map_name", out var map_name))
190204
{
191205
if (map_name != Server.MapName)
@@ -253,22 +267,18 @@ private void RestoreRoundBackup(CCSPlayerController? player, string fileName) {
253267
{
254268
gameRules.CTTimeOuts = int.Parse(ctTimeouts);
255269
}
256-
if (backupData.TryGetValue("matchid", out var matchId))
257-
{
258-
liveMatchId = long.Parse(matchId);
259-
}
260-
if (backupData.TryGetValue("match_loaded", out var matchLoaded))
261-
{
262-
isMatchSetup = bool.Parse(matchLoaded);
263-
}
264-
if (backupData.TryGetValue("match_config", out var matchConfigValue))
265-
{
266-
matchConfig = Newtonsoft.Json.JsonConvert.DeserializeObject<MatchConfig>(matchConfigValue)!;
267-
}
268270
if (backupData.TryGetValue("valve_backup", out var valveBackup))
269271
{
270-
string tempFilePath = Path.Combine(Server.GameDirectory, "csgo", $"{fileName}.txt");
271-
File.WriteAllText(tempFilePath, valveBackup);
272+
string tempFileName = fileName.Replace(".json", ".txt");
273+
if (backupData.TryGetValue("round", out var roundNumber))
274+
{
275+
tempFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round{roundNumber}";
276+
}
277+
string tempFilePath = Path.Combine(Server.GameDirectory, "csgo", tempFileName);
278+
if (!File.Exists(tempFilePath))
279+
{
280+
File.WriteAllText(tempFilePath, valveBackup);
281+
}
272282
int restoreTimer = liveSetupRequired ? 2 : 0;
273283
if (liveSetupRequired)
274284
{
@@ -279,7 +289,7 @@ private void RestoreRoundBackup(CCSPlayerController? player, string fileName) {
279289
Server.ExecuteCommand($"mp_backup_restore_load_file {tempFilePath}");
280290
StartDemoRecording();
281291
});
282-
AddTimer(5, () => File.Delete(tempFilePath));
292+
// AddTimer(5, () => File.Delete(tempFilePath));
283293
}
284294
}
285295
catch (Exception e) {
@@ -307,7 +317,7 @@ public void CreateMatchZyRoundDataBackup()
307317
(int t1score, int t2score) = GetTeamsScore();
308318
int roundNumber = t1score + t2score;
309319
string round = roundNumber.ToString("D2");
310-
string matchZyBackupFileName = $"matchzy_data_backup_{liveMatchId}_{matchConfig.CurrentMapNumber}_round_{round}.json";
320+
string matchZyBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round{round}.json";
311321
string filePath = Server.GameDirectory + "/csgo/MatchZyDataBackup/" + matchZyBackupFileName;
312322
string? directoryPath = Path.GetDirectoryName(filePath);
313323
if (directoryPath != null && !Directory.Exists(directoryPath))
@@ -379,7 +389,7 @@ public List<string> GetBackups(string matchID)
379389
var directoryInfo = new DirectoryInfo(backupDir);
380390
var files = directoryInfo.GetFiles();
381391

382-
var pattern = $"matchzy_data_backup_{matchID}_";
392+
var pattern = $"matchzy_{matchID}_";
383393
var backups = new List<string>();
384394

385395
foreach (var file in files)

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# MatchZy Changelog
22

3+
# 0.8.3
4+
5+
#### August 25, 2024
6+
7+
- Fixed issues with backup restore where `.restore` command would show as round restored, but nothing happened. (Improved file naming and backup saving logic)
8+
- Updated live.cfg as per new rules (mp_team_timeout_max 3; mp_team_timeout_ot_max 1; mp_team_timeout_ot_add_each 1)
9+
- Added css_globalnades alias (!globalnades) for css_save_nades_as_global / .globalnades
10+
311
# 0.8.2
412

513
#### August 25, 2024

ConsoleCommands.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public void OnWLCommand(CCSPlayerController? player, CommandInfo? command)
3535
}
3636

3737
[ConsoleCommand("css_save_nades_as_global", "Toggles Global Lineups for players")]
38+
[ConsoleCommand("css_globalnades", "Toggles Global Lineups for players")]
3839
public void OnSaveNadesAsGlobalCommand(CCSPlayerController? player, CommandInfo? command)
3940
{
4041
if (IsPlayerAdmin(player, "css_save_nades_as_global", "@css/config"))

MatchZy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public partial class MatchZy : BasePlugin
1313
{
1414

1515
public override string ModuleName => "MatchZy";
16-
public override string ModuleVersion => "0.8.2";
16+
public override string ModuleVersion => "0.8.3";
1717

1818
public override string ModuleAuthor => "WD- (https://github.com/shobhit-pathak/)";
1919

PracticeMode.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1245,7 +1245,7 @@ public void ExecDryRunCFG()
12451245
} else {
12461246
Log($"[ExecDryRunCFG] Starting Dryrun! Dryrun CFG not found in {absolutePath}, using default CFG!");
12471247
Server.ExecuteCommand("ammo_grenade_limit_default 1;ammo_grenade_limit_flashbang 2;ammo_grenade_limit_total 4;bot_quota 0;cash_player_bomb_defused 300;cash_player_bomb_planted 300;cash_player_damage_hostage -30;cash_player_interact_with_hostage 300;cash_player_killed_enemy_default 300;cash_player_killed_enemy_factor 1;cash_player_killed_hostage -1000;cash_player_killed_teammate -300;cash_player_rescued_hostage 1000;cash_team_elimination_bomb_map 3250;cash_team_elimination_hostage_map_ct 3000;cash_team_elimination_hostage_map_t 3000;cash_team_hostage_alive 0;cash_team_hostage_interaction 600;cash_team_loser_bonus 1400;cash_team_loser_bonus_consecutive_rounds 500;cash_team_planted_bomb_but_defused 600;cash_team_rescued_hostage 600;cash_team_terrorist_win_bomb 3500;cash_team_win_by_defusing_bomb 3500;");
1248-
Server.ExecuteCommand("cash_team_win_by_hostage_rescue 2900;cash_team_win_by_time_running_out_bomb 3250;cash_team_win_by_time_running_out_hostage 3250;ff_damage_reduction_bullets 0.33;ff_damage_reduction_grenade 0.85;ff_damage_reduction_grenade_self 1;ff_damage_reduction_other 0.4;mp_afterroundmoney 0;mp_autokick 0;mp_autoteambalance 0;mp_backup_restore_load_autopause 1;mp_backup_round_auto 1;mp_buy_anywhere 0;mp_buy_during_immunity 0;mp_buytime 20;mp_c4timer 40;mp_ct_default_melee weapon_knife;mp_ct_default_primary \"\";mp_ct_default_secondary weapon_hkp2000;mp_death_drop_defuser 1;mp_death_drop_grenade 2;mp_death_drop_gun 1;mp_defuser_allocation 0;mp_display_kill_assists 1;mp_endmatch_votenextmap 0;mp_forcecamera 1;mp_free_armor 0;mp_freezetime 6;mp_friendlyfire 1;mp_give_player_c4 1;mp_halftime 1;mp_halftime_duration 15;mp_halftime_pausetimer 0;mp_ignore_round_win_conditions 0;mp_limitteams 0;mp_match_can_clinch 1;mp_match_end_restart 0;mp_maxmoney 16000;mp_maxrounds 24;mp_overtime_enable 1;mp_overtime_halftime_pausetimer 0;mp_overtime_maxrounds 6;mp_overtime_startmoney 10000;mp_playercashawards 1;mp_randomspawn 0;mp_respawn_immunitytime 0;mp_respawn_on_death_ct 0;mp_respawn_on_death_t 0;mp_round_restart_delay 5;mp_roundtime 1.92;mp_roundtime_defuse 1.92;mp_roundtime_hostage 1.92;mp_solid_teammates 1;mp_starting_losses 1;mp_startmoney 16000;mp_t_default_melee weapon_knife;mp_t_default_primary \"\";mp_t_default_secondary weapon_glock;mp_teamcashawards 1;mp_timelimit 0;mp_weapons_allow_map_placed 1;mp_weapons_allow_zeus 1;mp_win_panel_display_time 3;spec_freeze_deathanim_time 0;spec_freeze_time 2;spec_freeze_time_lock 2;spec_replay_enable 0;sv_allow_votes 1;sv_auto_full_alltalk_during_warmup_half_end 0;sv_damage_print_enable 0;sv_deadtalk 1;sv_hibernate_postgame_delay 300;sv_ignoregrenaderadio 0;sv_infinite_ammo 0;sv_talk_enemy_dead 0;sv_talk_enemy_living 0;sv_voiceenable 1;tv_relayvoice 1;mp_team_timeout_max 4;mp_team_timeout_time 30;sv_vote_command_delay 0;cash_team_bonus_shorthanded 0;mp_spectators_max 20;mp_team_intro_time 0;mp_restartgame 3;mp_warmup_end;");
1248+
Server.ExecuteCommand("cash_team_win_by_hostage_rescue 2900;cash_team_win_by_time_running_out_bomb 3250;cash_team_win_by_time_running_out_hostage 3250;ff_damage_reduction_bullets 0.33;ff_damage_reduction_grenade 0.85;ff_damage_reduction_grenade_self 1;ff_damage_reduction_other 0.4;mp_afterroundmoney 0;mp_autokick 0;mp_autoteambalance 0;mp_backup_restore_load_autopause 1;mp_backup_round_auto 1;mp_buy_anywhere 0;mp_buy_during_immunity 0;mp_buytime 20;mp_c4timer 40;mp_ct_default_melee weapon_knife;mp_ct_default_primary \"\";mp_ct_default_secondary weapon_hkp2000;mp_death_drop_defuser 1;mp_death_drop_grenade 2;mp_death_drop_gun 1;mp_defuser_allocation 0;mp_display_kill_assists 1;mp_endmatch_votenextmap 0;mp_forcecamera 1;mp_free_armor 0;mp_freezetime 6;mp_friendlyfire 1;mp_give_player_c4 1;mp_halftime 1;mp_halftime_duration 15;mp_halftime_pausetimer 0;mp_ignore_round_win_conditions 0;mp_limitteams 0;mp_match_can_clinch 1;mp_match_end_restart 0;mp_maxmoney 16000;mp_maxrounds 24;mp_overtime_enable 1;mp_overtime_halftime_pausetimer 0;mp_overtime_maxrounds 6;mp_overtime_startmoney 10000;mp_playercashawards 1;mp_randomspawn 0;mp_respawn_immunitytime 0;mp_respawn_on_death_ct 0;mp_respawn_on_death_t 0;mp_round_restart_delay 5;mp_roundtime 1.92;mp_roundtime_defuse 1.92;mp_roundtime_hostage 1.92;mp_solid_teammates 1;mp_starting_losses 1;mp_startmoney 16000;mp_t_default_melee weapon_knife;mp_t_default_primary \"\";mp_t_default_secondary weapon_glock;mp_teamcashawards 1;mp_timelimit 0;mp_weapons_allow_map_placed 1;mp_weapons_allow_zeus 1;mp_win_panel_display_time 3;spec_freeze_deathanim_time 0;spec_freeze_time 2;spec_freeze_time_lock 2;spec_replay_enable 0;sv_allow_votes 1;sv_auto_full_alltalk_during_warmup_half_end 0;sv_damage_print_enable 0;sv_deadtalk 1;sv_hibernate_postgame_delay 300;sv_ignoregrenaderadio 0;sv_infinite_ammo 0;sv_talk_enemy_dead 0;sv_talk_enemy_living 0;sv_voiceenable 1;tv_relayvoice 1;mp_team_timeout_max 3;mp_team_timeout_ot_max 1;mp_team_timeout_ot_add_each 1;mp_team_timeout_time 30;sv_vote_command_delay 0;cash_team_bonus_shorthanded 0;mp_spectators_max 20;mp_team_intro_time 0;mp_restartgame 3;mp_warmup_end;");
12491249
}
12501250
}
12511251

Teams.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ public void OnAddPlayerCommand(CCSPlayerController? player, CommandInfo? command
115115
command.ReplyToCommand($"Player {playerName} added to {playerTeam} successfully!");
116116
}
117117

118-
[ConsoleCommand("matchzy_removeplayer", "Adds player to the provided team")]
119-
[ConsoleCommand("get5_removeplayer", "Adds player to the provided team")]
118+
[ConsoleCommand("matchzy_removeplayer", "Removes the player from all the teams")]
119+
[ConsoleCommand("get5_removeplayer", "Removes the player from all the teams")]
120120
[CommandHelper(minArgs: 1, usage: "<steam64>")]
121121
public void OnRemovePlayerCommand(CCSPlayerController? player, CommandInfo? command)
122122
{
@@ -127,7 +127,7 @@ public void OnRemovePlayerCommand(CCSPlayerController? player, CommandInfo? comm
127127
}
128128
if (IsHalfTimePhase())
129129
{
130-
command.ReplyToCommand("Cannot add players during halftime. Please wait until the next round starts.");
130+
command.ReplyToCommand("Cannot remove players during halftime. Please wait until the next round starts.");
131131
return;
132132
}
133133

Utility.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ private void StartLive()
299299

300300
// Storing 0-0 score backup file as lastBackupFileName, so that .stop functions properly in first round.
301301
lastBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round00.txt";
302-
lastMatchZyBackupFileName = $"matchzy_data_backup_{liveMatchId}_{matchConfig.CurrentMapNumber}_round_00.json";
302+
lastMatchZyBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round00.json";
303303

304304
// This is to reload the map once it is over so that all flags are reset accordingly
305305
Server.ExecuteCommand("mp_match_end_restart true");
@@ -1047,7 +1047,7 @@ private void HandlePostRoundEndEvent(EventRoundEnd @event)
10471047

10481048
string round = GetRoundNumer().ToString("D2");
10491049
lastBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round{round}.txt";
1050-
lastMatchZyBackupFileName = $"matchzy_data_backup_{liveMatchId}_{matchConfig.CurrentMapNumber}_round_{round}.json";
1050+
lastMatchZyBackupFileName = $"matchzy_{liveMatchId}_{matchConfig.CurrentMapNumber}_round{round}.json";
10511051
Log($"[HandlePostRoundEndEvent] Setting lastBackupFileName to {lastBackupFileName} and lastMatchZyBackupFileName to {lastMatchZyBackupFileName}");
10521052

10531053
// One of the team did not use .stop command hence display the proper message after the round has ended.
@@ -1305,7 +1305,7 @@ private void ExecLiveCFG()
13051305
else
13061306
{
13071307
Server.ExecuteCommand("ammo_grenade_limit_default 1;ammo_grenade_limit_flashbang 2;ammo_grenade_limit_total 4;bot_quota 0;cash_player_bomb_defused 300;cash_player_bomb_planted 300;cash_player_damage_hostage -30;cash_player_interact_with_hostage 300;cash_player_killed_enemy_default 300;cash_player_killed_enemy_factor 1;cash_player_killed_hostage -1000;cash_player_killed_teammate -300;cash_player_rescued_hostage 1000;cash_team_elimination_bomb_map 3250;cash_team_elimination_hostage_map_ct 3000;cash_team_elimination_hostage_map_t 3000;cash_team_hostage_alive 0;cash_team_hostage_interaction 600;cash_team_loser_bonus 1400;cash_team_loser_bonus_consecutive_rounds 500;cash_team_planted_bomb_but_defused 600;cash_team_rescued_hostage 600;cash_team_terrorist_win_bomb 3500;cash_team_win_by_defusing_bomb 3500;");
1308-
Server.ExecuteCommand("cash_team_win_by_hostage_rescue 2900;cash_team_win_by_time_running_out_bomb 3250;cash_team_win_by_time_running_out_hostage 3250;ff_damage_reduction_bullets 0.33;ff_damage_reduction_grenade 0.85;ff_damage_reduction_grenade_self 1;ff_damage_reduction_other 0.4;mp_afterroundmoney 0;mp_autokick 0;mp_autoteambalance 0;mp_backup_restore_load_autopause 1;mp_backup_round_auto 1;mp_buy_anywhere 0;mp_buy_during_immunity 0;mp_buytime 20;mp_c4timer 40;mp_ct_default_melee weapon_knife;mp_ct_default_primary \"\";mp_ct_default_secondary weapon_hkp2000;mp_death_drop_defuser 1;mp_death_drop_grenade 2;mp_death_drop_gun 1;mp_defuser_allocation 0;mp_display_kill_assists 1;mp_endmatch_votenextmap 0;mp_forcecamera 1;mp_free_armor 0;mp_freezetime 18;mp_friendlyfire 1;mp_give_player_c4 1;mp_halftime 1;mp_halftime_duration 15;mp_halftime_pausetimer 0;mp_ignore_round_win_conditions 0;mp_limitteams 0;mp_match_can_clinch 1;mp_match_end_restart 0;mp_maxmoney 16000;mp_maxrounds 24;mp_overtime_enable 1;mp_overtime_halftime_pausetimer 0;mp_overtime_maxrounds 6;mp_overtime_startmoney 10000;mp_playercashawards 1;mp_randomspawn 0;mp_respawn_immunitytime 0;mp_respawn_on_death_ct 0;mp_respawn_on_death_t 0;mp_round_restart_delay 5;mp_roundtime 1.92;mp_roundtime_defuse 1.92;mp_roundtime_hostage 1.92;mp_solid_teammates 1;mp_starting_losses 1;mp_startmoney 800;mp_t_default_melee weapon_knife;mp_t_default_primary \"\";mp_t_default_secondary weapon_glock;mp_teamcashawards 1;mp_timelimit 0;mp_weapons_allow_map_placed 1;mp_weapons_allow_zeus 1;mp_win_panel_display_time 3;spec_freeze_deathanim_time 0;spec_freeze_time 2;spec_freeze_time_lock 2;spec_replay_enable 0;sv_allow_votes 1;sv_auto_full_alltalk_during_warmup_half_end 0;sv_damage_print_enable 0;sv_deadtalk 1;sv_hibernate_postgame_delay 300;sv_ignoregrenaderadio 0;sv_infinite_ammo 0;sv_talk_enemy_dead 0;sv_talk_enemy_living 0;sv_voiceenable 1;tv_relayvoice 1;mp_team_timeout_max 4;mp_team_timeout_time 30;sv_vote_command_delay 0;cash_team_bonus_shorthanded 0;mp_spectators_max 20;mp_team_intro_time 0;mp_restartgame 3;mp_warmup_end;");
1308+
Server.ExecuteCommand("cash_team_win_by_hostage_rescue 2900;cash_team_win_by_time_running_out_bomb 3250;cash_team_win_by_time_running_out_hostage 3250;ff_damage_reduction_bullets 0.33;ff_damage_reduction_grenade 0.85;ff_damage_reduction_grenade_self 1;ff_damage_reduction_other 0.4;mp_afterroundmoney 0;mp_autokick 0;mp_autoteambalance 0;mp_backup_restore_load_autopause 1;mp_backup_round_auto 1;mp_buy_anywhere 0;mp_buy_during_immunity 0;mp_buytime 20;mp_c4timer 40;mp_ct_default_melee weapon_knife;mp_ct_default_primary \"\";mp_ct_default_secondary weapon_hkp2000;mp_death_drop_defuser 1;mp_death_drop_grenade 2;mp_death_drop_gun 1;mp_defuser_allocation 0;mp_display_kill_assists 1;mp_endmatch_votenextmap 0;mp_forcecamera 1;mp_free_armor 0;mp_freezetime 18;mp_friendlyfire 1;mp_give_player_c4 1;mp_halftime 1;mp_halftime_duration 15;mp_halftime_pausetimer 0;mp_ignore_round_win_conditions 0;mp_limitteams 0;mp_match_can_clinch 1;mp_match_end_restart 0;mp_maxmoney 16000;mp_maxrounds 24;mp_overtime_enable 1;mp_overtime_halftime_pausetimer 0;mp_overtime_maxrounds 6;mp_overtime_startmoney 10000;mp_playercashawards 1;mp_randomspawn 0;mp_respawn_immunitytime 0;mp_respawn_on_death_ct 0;mp_respawn_on_death_t 0;mp_round_restart_delay 5;mp_roundtime 1.92;mp_roundtime_defuse 1.92;mp_roundtime_hostage 1.92;mp_solid_teammates 1;mp_starting_losses 1;mp_startmoney 800;mp_t_default_melee weapon_knife;mp_t_default_primary \"\";mp_t_default_secondary weapon_glock;mp_teamcashawards 1;mp_timelimit 0;mp_weapons_allow_map_placed 1;mp_weapons_allow_zeus 1;mp_win_panel_display_time 3;spec_freeze_deathanim_time 0;spec_freeze_time 2;spec_freeze_time_lock 2;spec_replay_enable 0;sv_allow_votes 1;sv_auto_full_alltalk_during_warmup_half_end 0;sv_damage_print_enable 0;sv_deadtalk 1;sv_hibernate_postgame_delay 300;sv_ignoregrenaderadio 0;sv_infinite_ammo 0;sv_talk_enemy_dead 0;sv_talk_enemy_living 0;sv_voiceenable 1;tv_relayvoice 1;mp_team_timeout_max 3;mp_team_timeout_ot_max 1;mp_team_timeout_ot_add_each 1;mp_team_timeout_time 30;sv_vote_command_delay 0;cash_team_bonus_shorthanded 0;mp_spectators_max 20;mp_team_intro_time 0;mp_restartgame 3;mp_warmup_end;");
13091309
}
13101310
}
13111311
}

cfg/MatchZy/dryrun.cfg

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ sv_talk_enemy_dead 0
100100
sv_talk_enemy_living 0
101101
sv_voiceenable 1
102102
tv_relayvoice 1
103-
mp_team_timeout_max 4
103+
mp_team_timeout_max 3
104104
mp_team_timeout_time 30
105+
mp_team_timeout_ot_max 1
106+
mp_team_timeout_ot_add_each 1
105107
sv_vote_command_delay 0
106108
cash_team_bonus_shorthanded 0
107109
mp_spectators_max 20

cfg/MatchZy/live.cfg

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ sv_talk_enemy_dead 0
100100
sv_talk_enemy_living 0
101101
sv_voiceenable 1
102102
tv_relayvoice 1
103-
mp_team_timeout_max 4
103+
mp_team_timeout_max 3
104104
mp_team_timeout_time 30
105+
mp_team_timeout_ot_max 1
106+
mp_team_timeout_ot_add_each 1
105107
sv_vote_command_delay 0
106108
cash_team_bonus_shorthanded 0
107109
mp_spectators_max 20

0 commit comments

Comments
 (0)