Skip to content

Commit 995db9a

Browse files
scheduler: add cvar mapm_extend_map_if_no_votes (#27)
* core: added CVar `mapm_extend_map_if_no_votes` which allows you to extend the current card if no one has voted. * core: revert chenges * scheduler: "extend map if no votes" logic now is here * Extending map if no votes is now depends on cvar `mapm_extended_map_max` * reworked * bump version
1 parent 14c09b0 commit 995db9a

File tree

3 files changed

+32
-9
lines changed

3 files changed

+32
-9
lines changed

cstrike/addons/amxmodx/configs/map_manager.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ mapm_extended_time "15"
102102
// rounds
103103
mapm_extended_rounds "3"
104104

105+
// Продляет текущую карту, если никто не голосовал. Зависит от mapm_extended_map_max.
106+
// 0 - disable, 1 - enable
107+
mapm_extend_map_if_no_votes "0"
108+
105109

106110
// GUI
107111

cstrike/addons/amxmodx/data/lang/mapmanager.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ MAPM_MENU_EXTEND = Extend
4242
MAPM_MENU_LEFT = Left
4343
MAPM_CHOSE_EXTEND = %s^1 has chosen to extend the current map.
4444
MAPM_CHOSE_MAP = %s^1 has chosen^3 %s^1.
45-
MAPM_NOBODY_VOTE = Nobody voted. Next map is^3 %s^1.
45+
MAPM_NOBODY_VOTE = Nobody voted.
46+
MAPM_NEXTMAP_BY_VOTE = Next map is^3 %s^1.
4647
MAPM_LASTROUND = Last round.
4748
MAPM_MAP_CHANGE = Map will change in^3 %d
4849
MAPM_MAP_CHANGE_NEXTROUND = Map change will happen after this round.
@@ -99,7 +100,8 @@ MAPM_MENU_EXTEND = Продлить
99100
MAPM_MENU_LEFT = Осталось
100101
MAPM_CHOSE_EXTEND = %s^1 выбрал продление карты.
101102
MAPM_CHOSE_MAP = %s^1 выбрал^3 %s^1.
102-
MAPM_NOBODY_VOTE = Никто не голосовал. Следующей будет^3 %s^1.
103+
MAPM_NOBODY_VOTE = Никто не голосовал.
104+
MAPM_NEXTMAP_BY_VOTE = Следующей будет^3 %s^1.
103105
MAPM_LASTROUND = Это последний раунд.
104106
MAPM_MAP_CHANGE = Карта сменится через^3 %d
105107
MAPM_MAP_CHANGE_NEXTROUND = Карта сменится в следующем раунде.

cstrike/addons/amxmodx/scripting/map_manager_scheduler.sma

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#endif
1010

1111
#define PLUGIN "Map Manager: Scheduler"
12-
#define VERSION "0.1.7"
12+
#define VERSION "0.1.8"
1313
#define AUTHOR "Mistrick"
1414

1515
#pragma semicolon 1
@@ -59,7 +59,8 @@ enum Cvars {
5959
CHATTIME,
6060
FRAGLIMIT,
6161
FRAGSLEFT,
62-
NEXTMAP
62+
NEXTMAP,
63+
EXTEND_MAP_IF_NO_VOTES
6364
};
6465

6566
new g_pCvars[Cvars];
@@ -99,6 +100,7 @@ public plugin_init()
99100
g_pCvars[EXTENDED_MAX] = register_cvar("mapm_extended_map_max", "3");
100101
g_pCvars[EXTENDED_TIME] = register_cvar("mapm_extended_time", "15"); // minutes
101102
g_pCvars[EXTENDED_ROUNDS] = register_cvar("mapm_extended_rounds", "3"); // rounds
103+
g_pCvars[EXTEND_MAP_IF_NO_VOTES] = register_cvar("mapm_extend_map_if_no_votes", "0"); // 0 - disable, 1 - enable
102104

103105
g_pCvars[MAXROUNDS] = get_cvar_pointer("mp_maxrounds");
104106
g_pCvars[WINLIMIT] = get_cvar_pointer("mp_winlimit");
@@ -496,8 +498,12 @@ public mapm_vote_finished(const map[], type, total_votes)
496498
}
497499
g_bVoteInNewRound = false;
498500

501+
new extend_map_no_votes = get_num(EXTEND_MAP_IF_NO_VOTES);
502+
503+
new bool:can_be_extend = bool:(equali(map, g_sCurMap) || !total_votes && extend_map_no_votes && g_iExtendedNum < get_num(EXTENDED_MAX));
504+
499505
// map extended
500-
if(equali(map, g_sCurMap)) {
506+
if(can_be_extend) {
501507
g_iExtendedNum++;
502508

503509
new win_limit = get_num(WINLIMIT);
@@ -512,12 +518,23 @@ public mapm_vote_finished(const map[], type, total_votes)
512518
if(max_rounds > 0) {
513519
set_num(MAXROUNDS, max_rounds + rounds);
514520
}
515-
516-
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");
521+
522+
if(!total_votes && extend_map_no_votes) {
523+
client_print_color(0, print_team_default, "%s^1 %L %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");
524+
}
525+
else {
526+
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");
527+
}
517528
} else {
518529
new min = get_num(EXTENDED_TIME);
519530

520-
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
531+
if(!total_votes && extend_map_no_votes) {
532+
client_print_color(0, print_team_default, "%s^1 %L %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
533+
}
534+
else {
535+
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
536+
}
537+
521538
set_float(TIMELIMIT, get_float(TIMELIMIT) + float(min));
522539
}
523540

@@ -529,7 +546,7 @@ public mapm_vote_finished(const map[], type, total_votes)
529546

530547
// change map
531548
if(!total_votes) {
532-
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", map);
549+
client_print_color(0, print_team_default, "%s^1 %L %L", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", LANG_PLAYER, "MAPM_NEXTMAP_BY_VOTE", map);
533550
} else {
534551
client_print_color(0, print_team_default, "%s^1 %L^3 %s^1.", g_sPrefix, LANG_PLAYER, "MAPM_NEXTMAP", map);
535552
}

0 commit comments

Comments
 (0)