|
5 | 5 | #endif |
6 | 6 |
|
7 | 7 | #define PLUGIN "Map Manager" |
8 | | -#define VERSION "2.5.44" |
| 8 | +#define VERSION "2.5.45" |
9 | 9 | #define AUTHOR "Mistrick" |
10 | 10 |
|
11 | 11 | #pragma semicolon 1 |
@@ -88,8 +88,10 @@ enum _:CVARS |
88 | 88 | LAST_ROUND, |
89 | 89 | CHANGE_TO_DEDAULT, |
90 | 90 | DEFAULT_MAP, |
91 | | - EXENDED_MAX, |
92 | | - EXENDED_TIME, |
| 91 | + EXTENDED_TYPE, |
| 92 | + EXTENDED_MAX, |
| 93 | + EXTENDED_TIME, |
| 94 | + EXTENDED_ROUNDS, |
93 | 95 | #if defined FUNCTION_RTV |
94 | 96 | ROCK_MODE, |
95 | 97 | ROCK_PERCENT, |
@@ -201,8 +203,10 @@ public plugin_init() |
201 | 203 | g_pCvars[CHANGE_TO_DEDAULT] = register_cvar("mapm_change_to_default_map", "0");//minutes, 0 - disable |
202 | 204 | g_pCvars[DEFAULT_MAP] = register_cvar("mapm_default_map", "de_dust2"); |
203 | 205 |
|
204 | | - g_pCvars[EXENDED_MAX] = register_cvar("mapm_extended_map_max", "3"); |
205 | | - g_pCvars[EXENDED_TIME] = register_cvar("mapm_extended_time", "15");//minutes |
| 206 | + g_pCvars[EXTENDED_TYPE] = register_cvar("mapm_extended_type", "0");//0 - minutes, 1 - rounds |
| 207 | + g_pCvars[EXTENDED_MAX] = register_cvar("mapm_extended_map_max", "3"); |
| 208 | + g_pCvars[EXTENDED_TIME] = register_cvar("mapm_extended_time", "15");//minutes |
| 209 | + g_pCvars[EXTENDED_ROUNDS] = register_cvar("mapm_extended_rounds", "3");//rounds |
206 | 210 |
|
207 | 211 | #if defined FUNCTION_RTV |
208 | 212 | g_pCvars[ROCK_MODE] = register_cvar("mapm_rtv_mode", "0");//0 - percents, 1 - players |
@@ -848,7 +852,23 @@ public plugin_end() |
848 | 852 | } |
849 | 853 | if(g_iExtendedMax) |
850 | 854 | { |
851 | | - set_pcvar_float(g_pCvars[TIMELIMIT], get_pcvar_float(g_pCvars[TIMELIMIT]) - float(g_iExtendedMax * get_pcvar_num(g_pCvars[EXENDED_TIME]))); |
| 855 | + if(get_pcvar_num(g_pCvars[EXTENDED_TYPE]) == 0) |
| 856 | + { |
| 857 | + set_pcvar_float(g_pCvars[TIMELIMIT], get_pcvar_float(g_pCvars[TIMELIMIT]) - float(g_iExtendedMax * get_pcvar_num(g_pCvars[EXTENDED_TIME]))); |
| 858 | + } |
| 859 | + else |
| 860 | + { |
| 861 | + new iWinLimit = get_pcvar_num(g_pCvars[WINLIMIT]); |
| 862 | + if(iWinLimit > 0) |
| 863 | + { |
| 864 | + set_pcvar_num(g_pCvars[WINLIMIT], iWinLimit - get_pcvar_num(g_pCvars[EXTENDED_ROUNDS]) * g_iExtendedMax); |
| 865 | + } |
| 866 | + new iMaxRounds = get_pcvar_num(g_pCvars[MAXROUNDS]); |
| 867 | + if(iMaxRounds > 0) |
| 868 | + { |
| 869 | + set_pcvar_num(g_pCvars[MAXROUNDS], iMaxRounds - get_pcvar_num(g_pCvars[EXTENDED_ROUNDS]) * g_iExtendedMax); |
| 870 | + } |
| 871 | + } |
852 | 872 | } |
853 | 873 | } |
854 | 874 | public plugin_cfg() |
@@ -1406,15 +1426,15 @@ public StartVote(id) |
1406 | 1426 | } |
1407 | 1427 |
|
1408 | 1428 | #if defined FUNCTION_RTV && defined FUNCTION_NIGHTMODE |
1409 | | - if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && !g_bRockVote && g_iExtendedMax < get_pcvar_num(g_pCvars[EXENDED_MAX]) && (g_bNightMode && g_bCurMapInNightMode || !g_bNightMode)) |
| 1429 | + if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && !g_bRockVote && g_iExtendedMax < get_pcvar_num(g_pCvars[EXTENDED_MAX]) && (g_bNightMode && g_bCurMapInNightMode || !g_bNightMode)) |
1410 | 1430 | #else |
1411 | 1431 | #if defined FUNCTION_RTV |
1412 | | - if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && !g_bRockVote && g_iExtendedMax < get_pcvar_num(g_pCvars[EXENDED_MAX])) |
| 1432 | + if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && !g_bRockVote && g_iExtendedMax < get_pcvar_num(g_pCvars[EXTENDED_MAX])) |
1413 | 1433 | #else |
1414 | 1434 | #if defined FUNCTION_NIGHTMODE |
1415 | | - if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && g_iExtendedMax < get_pcvar_num(g_pCvars[EXENDED_MAX]) && (g_bNightMode && g_bCurMapInNightMode || !g_bNightMode)) |
| 1435 | + if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && g_iExtendedMax < get_pcvar_num(g_pCvars[EXTENDED_MAX]) && (g_bNightMode && g_bCurMapInNightMode || !g_bNightMode)) |
1416 | 1436 | #else |
1417 | | - if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && g_iExtendedMax < get_pcvar_num(g_pCvars[EXENDED_MAX])) |
| 1437 | + if(get_pcvar_float(g_pCvars[TIMELIMIT]) > 0.0 && g_iExtendedMax < get_pcvar_num(g_pCvars[EXTENDED_MAX])) |
1418 | 1438 | #endif |
1419 | 1439 | #endif |
1420 | 1440 | #endif |
@@ -1702,11 +1722,35 @@ FinishVote() |
1702 | 1722 | { |
1703 | 1723 | g_bVoteFinished = false; |
1704 | 1724 | g_iExtendedMax++; |
1705 | | - new iMin = get_pcvar_num(g_pCvars[EXENDED_TIME]); |
1706 | | - new szMin[16]; get_ending(iMin, "MAPM_MINUTE1", "MAPM_MINUTE2", "MAPM_MINUTE3", szMin, charsmax(szMin)); |
1707 | 1725 |
|
1708 | | - client_print_color(0, print_team_default, "%s^1 %L %L.", PREFIX, LANG_SERVER, "MAPM_MAP_EXTEND", iMin, LANG_SERVER, szMin); |
1709 | | - set_pcvar_float(g_pCvars[TIMELIMIT], get_pcvar_float(g_pCvars[TIMELIMIT]) + float(iMin)); |
| 1726 | + new iWinLimit = get_pcvar_num(g_pCvars[WINLIMIT]); |
| 1727 | + new iMaxRounds = get_pcvar_num(g_pCvars[MAXROUNDS]); |
| 1728 | + |
| 1729 | + if(get_pcvar_num(g_pCvars[EXTENDED_TYPE]) == 1 && (iWinLimit || iMaxRounds)) |
| 1730 | + { |
| 1731 | + if(iWinLimit > 0) |
| 1732 | + { |
| 1733 | + set_pcvar_num(g_pCvars[WINLIMIT], iWinLimit + get_pcvar_num(g_pCvars[EXTENDED_ROUNDS])); |
| 1734 | + } |
| 1735 | + |
| 1736 | + if(iMaxRounds > 0) |
| 1737 | + { |
| 1738 | + set_pcvar_num(g_pCvars[MAXROUNDS], iMaxRounds + get_pcvar_num(g_pCvars[EXTENDED_ROUNDS])); |
| 1739 | + } |
| 1740 | + |
| 1741 | + new iRounds = get_pcvar_num(g_pCvars[EXTENDED_ROUNDS]); |
| 1742 | + new szRounds[16]; get_ending(iRounds, "MAPM_ROUND1", "MAPM_ROUND2", "MAPM_ROUND3", szRounds, charsmax(szRounds)); |
| 1743 | + |
| 1744 | + client_print_color(0, print_team_default, "%s^1 %L %L.", PREFIX, LANG_SERVER, "MAPM_MAP_EXTEND", iRounds, LANG_SERVER, szRounds); |
| 1745 | + } |
| 1746 | + else |
| 1747 | + { |
| 1748 | + new iMin = get_pcvar_num(g_pCvars[EXTENDED_TIME]); |
| 1749 | + new szMin[16]; get_ending(iMin, "MAPM_MINUTE1", "MAPM_MINUTE2", "MAPM_MINUTE3", szMin, charsmax(szMin)); |
| 1750 | + |
| 1751 | + client_print_color(0, print_team_default, "%s^1 %L %L.", PREFIX, LANG_SERVER, "MAPM_MAP_EXTEND", iMin, LANG_SERVER, szMin); |
| 1752 | + set_pcvar_float(g_pCvars[TIMELIMIT], get_pcvar_float(g_pCvars[TIMELIMIT]) + float(iMin)); |
| 1753 | + } |
1710 | 1754 | } |
1711 | 1755 |
|
1712 | 1756 | new iRet; |
|
0 commit comments