Skip to content

Commit

Permalink
scheduler: add cvar mapm_extend_map_if_no_votes (#27)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Nord1cWarr1or committed Jan 5, 2022
1 parent 14c09b0 commit 995db9a
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 9 deletions.
4 changes: 4 additions & 0 deletions cstrike/addons/amxmodx/configs/map_manager.cfg
Expand Up @@ -102,6 +102,10 @@ mapm_extended_time "15"
// rounds
mapm_extended_rounds "3"

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


// GUI

Expand Down
6 changes: 4 additions & 2 deletions cstrike/addons/amxmodx/data/lang/mapmanager.txt
Expand Up @@ -42,7 +42,8 @@ MAPM_MENU_EXTEND = Extend
MAPM_MENU_LEFT = Left
MAPM_CHOSE_EXTEND = %s^1 has chosen to extend the current map.
MAPM_CHOSE_MAP = %s^1 has chosen^3 %s^1.
MAPM_NOBODY_VOTE = Nobody voted. Next map is^3 %s^1.
MAPM_NOBODY_VOTE = Nobody voted.
MAPM_NEXTMAP_BY_VOTE = Next map is^3 %s^1.
MAPM_LASTROUND = Last round.
MAPM_MAP_CHANGE = Map will change in^3 %d
MAPM_MAP_CHANGE_NEXTROUND = Map change will happen after this round.
Expand Down Expand Up @@ -99,7 +100,8 @@ MAPM_MENU_EXTEND = Продлить
MAPM_MENU_LEFT = Осталось
MAPM_CHOSE_EXTEND = %s^1 выбрал продление карты.
MAPM_CHOSE_MAP = %s^1 выбрал^3 %s^1.
MAPM_NOBODY_VOTE = Никто не голосовал. Следующей будет^3 %s^1.
MAPM_NOBODY_VOTE = Никто не голосовал.
MAPM_NEXTMAP_BY_VOTE = Следующей будет^3 %s^1.
MAPM_LASTROUND = Это последний раунд.
MAPM_MAP_CHANGE = Карта сменится через^3 %d
MAPM_MAP_CHANGE_NEXTROUND = Карта сменится в следующем раунде.
Expand Down
31 changes: 24 additions & 7 deletions cstrike/addons/amxmodx/scripting/map_manager_scheduler.sma
Expand Up @@ -9,7 +9,7 @@
#endif

#define PLUGIN "Map Manager: Scheduler"
#define VERSION "0.1.7"
#define VERSION "0.1.8"
#define AUTHOR "Mistrick"

#pragma semicolon 1
Expand Down Expand Up @@ -59,7 +59,8 @@ enum Cvars {
CHATTIME,
FRAGLIMIT,
FRAGSLEFT,
NEXTMAP
NEXTMAP,
EXTEND_MAP_IF_NO_VOTES
};

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

g_pCvars[MAXROUNDS] = get_cvar_pointer("mp_maxrounds");
g_pCvars[WINLIMIT] = get_cvar_pointer("mp_winlimit");
Expand Down Expand Up @@ -496,8 +498,12 @@ public mapm_vote_finished(const map[], type, total_votes)
}
g_bVoteInNewRound = false;

new extend_map_no_votes = get_num(EXTEND_MAP_IF_NO_VOTES);

new bool:can_be_extend = bool:(equali(map, g_sCurMap) || !total_votes && extend_map_no_votes && g_iExtendedNum < get_num(EXTENDED_MAX));

// map extended
if(equali(map, g_sCurMap)) {
if(can_be_extend) {
g_iExtendedNum++;

new win_limit = get_num(WINLIMIT);
Expand All @@ -512,12 +518,23 @@ public mapm_vote_finished(const map[], type, total_votes)
if(max_rounds > 0) {
set_num(MAXROUNDS, max_rounds + rounds);
}

client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");

if(!total_votes && extend_map_no_votes) {
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");
}
else {
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", rounds, LANG_PLAYER, "MAPM_ROUNDS");
}
} else {
new min = get_num(EXTENDED_TIME);

client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
if(!total_votes && extend_map_no_votes) {
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");
}
else {
client_print_color(0, print_team_default, "%s^1 %L %L.", g_sPrefix, LANG_PLAYER, "MAPM_MAP_EXTEND", min, LANG_PLAYER, "MAPM_MINUTES");
}

set_float(TIMELIMIT, get_float(TIMELIMIT) + float(min));
}

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

// change map
if(!total_votes) {
client_print_color(0, print_team_default, "%s^1 %L", g_sPrefix, LANG_PLAYER, "MAPM_NOBODY_VOTE", map);
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);
} else {
client_print_color(0, print_team_default, "%s^1 %L^3 %s^1.", g_sPrefix, LANG_PLAYER, "MAPM_NEXTMAP", map);
}
Expand Down

0 comments on commit 995db9a

Please sign in to comment.