Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions cstrike/addons/amxmodx/configs/map_manager.cfg
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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