
bei laimiukas nori dar padaryk screen fade juoda ekrana kai vote vyksta tai prasau jusu pagalbos ačiu iskarto jums

Code: Select all
/* /////////////////////////////////////////////////////////// /###///##/////##///###////////////####///////####///####/// /#//#//#/#///#/#//#///////////////////#//////////#//////#// /#//#//#//#/#//#//#/////////#///#//####/////////#//////#/// /#//#//#///#///#//#//////////#/#//#//////////////#//////#// /###///#///////#///###////////#///#####//##//####///####/// /////////////////////////////////////////////////////////// Author: DeRoiD Plugin name: DeRoiD's Mapchooser Plugin version: 2.33 First relase: 2015/04/08 Last update: 2015/06/25 Reason for update: Rounds fix Plugin link: forums.alliedmods.net/showthread.php?t=261412 Short description [default cvar]: - This plugin last 3 minutes or round open the "Vote a map" menu. - The one for which more people vote it will be the next map. - If best vote < min. vote percent then re-vote! There is a manner of two kinds. You can [default cvar]: - rtv "Rock the vote" [players 1:2] - nom "Nomination" (in menu) [chance 50%] - see timeleft | nextmap [timeleft, nextmap] - see played maps and played counts [/playedmaps] - see current map - if you admin then can startvote (/startvote) [StartVoteFlag] Changelog: - v1.00 + First relase (hlmod.hu) + Map choose (Old method) + Played maps + Next map + Timeleft - v1.20b + Rounds + Nomination + Admin vote + Rock the vote - v1.30b + Previous map can not be choose - v1.35b + Fix bugs + New chooser method + More map choices [MAX 9] - v1.49a + Re-vote if vote percent < min percent + Removed hard coding paths. - v1.53a + Fixed extend time [ +- 1 min ] + Fixed changelevel bug. - v1.62a + Hud Counter + Change map only next round. (Cvar) + Fix bugs - v1.63a + HudMsg -> SyncHudMsg - v1.77a + Nobody votes bug fix + More languages - v1.86a + Countdown sounds - v2.00 + Fix bugs + Check maps (valid) + Ad rounds in game (if rounds mod) - v2.01 + Current map - v2.01.3 + Fix RTV - v2.30 + Multilang toggle server/player + Start button + Map infos - v2.33 + Round fix + amx_dmc_maxrounds Pugin like: Choose the Next Map [All votes: 9] 1. de_dust2 [votes: 1] (9%) 2. de_dust [votes: 0] (0%) 3. de_inferno [votes: 1] (9%) 4. de_train [votes: 5] (54%) 5. de_nuke [votes: 1] (9%) 6. de_tuscan (current map) [votes: 1] (9%) [Next map: de_train] You find bug? - deroidocska (steam) - https://forums.alliedmods.net/member.php?u=258497 Plugin tested in [32 Real Players]: - AMX 1.8.2 - AMX 1.8.3-dev+4532 - AMX 1.8.3-dev-git4751 Thanks for using this plugin! DeRoiD ___________[Special thanks]___________ - fysiks for help to plugin (tips) - HamletEagle for help to plugin (tips) - mforce for idea - cs.stambeto for idea - OZH3NN for idea - ACM1PT for translation [es] - JustVladK & K:O for translation [ro] - battlefield 3 for translation [ru] - Perfect Scrash for translation [bp] - Belo95135 for translation [sk] - wEight for translation [sr] - ANTICHRISTUS for translation [fr] ______________________________________ Magyar nyelven is leirom!!! Koszonom, hogy ha ezt a plugint hasznalod! :)*/ #include <amxmodx> new const PLUGIN[] = "DeRoiD's Mapchooser";new const VERSION[] = "2.33";new const AUTHOR[] = "DeRoiD"; #define MapID 180912 #define R 240#define G 240#define B 240 #define CHUD 1.5#define MaxCSpeed 5.0 #define Max 200#define MinRounds 5#define MaxChoice 9#define PMPage 6#define MaxSB 8 #define StartVoteFlag ADMIN_LEVEL_A#define InfoFlag ADMIN_BAN#define RoundFlag ADMIN_RCON #pragma semicolon 1 new MapFile[64], MapCycle[32], MapFile_Lines, MapCycle_Lines;new Maps[Max][32], MapName[32], MapNames[MaxChoice][32], MapRevote[2][32], NomMaps[Max][32], NomNum, Nom, Nomed[Max];new MapVote[MaxChoice], RevoteCounts[2], VoteMenu, RevoteMenu, MapCounter, LastMap[32], VotedMap[32], BeginCounter;new AllVotes, AllRevotes, Next[32], RTV, RTVTime[3], PlayerMap[33], ElapsedTime[3], VoteMod;new bool:Voted, bool:PlayerVoted[33], bool:ChangeMap, bool:Begined, bool:inProcess, bool:Revoted,bool:PlayerRTV[33], bool:toRTV, bool:AlreadyNom[33], bool:PlayerRevoted[33], bool:NeedRV;new SayText, Rounds, MaxRounds, TimeLimit, oRounds, Lang, StartButton, PlayedCount, Started; new Cvar_WaitVoteMenuTime, Cvar_MenuDestroyTime, Cvar_RTVMinute, Cvar_VoteCounter,Cvar_NomChance, Cvar_VoteSound, Cvar_Extend, Cvar_StartRevoteTime, Cvar_VotePercentMin,Cvar_Nomination, Cvar_PlayedMaps, Cvar_RTV, Cvar_VoteVariable, Cvar_RTVMin, Cvar_Mod,Cvar_ChangeSpeed, Cvar_MaxMaps, Cvar_WaitRevoteMenuTime, Cvar_HudMod, Cvar_OnlyNextRound,Cvar_CountSound, Cvar_ChooseSound, Cvar_Ad, Cvar_StartButton, Cvar_LangMode; new Prefix[32], sHudObj, Off; new const MapMenuCommands[][] ={ "/playedmaps", "/pm", "!playedmaps", "!pm", "playedmaps", "pm"};new const TimeLeftCommands[][] ={ "/timeleft", "/tl", "!timeleft", "!tl", "timeleft", "tl"};new const NextMapCommands[][] ={ "/nextmap", "/nm", "!nextmap", "!nm", "nextmap", "nm"};new const AdminCommands[][] ={ "/startvote", "!startvote", "startvote"};new const RTVCommands[][] ={ "/rtv", "!rtv", "/rockthevote", "!rockthevote", "rockthevote", "rtv"};new const NomCommands[][] ={ "/nom", "!nom", "/nomination", "!nomination", "nom", "nomination"};new const CurrentMapCommands[][] ={ "/currentmap", "!currentmap", "/cm", "!cm", "currentmap", "cm"}; public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(PLUGIN, VERSION, FCVAR_SERVER); register_dictionary("dmc.txt"); sHudObj = CreateHudSyncObj(); static ConfigsDir[64]; get_localinfo("amxx_configsdir", ConfigsDir, 63); formatex(MapFile, 63, "%s/dmc/mapdatas.dmc", ConfigsDir); get_localinfo("amxx_configsdir", ConfigsDir, 63); formatex(MapCycle, 31, "mapcycle.txt"); formatex(Prefix, 31, "!g[DMC]"); MapFile_Lines = file_size(MapFile, 1); MapCycle_Lines = file_size(MapCycle, 1); Cvar_Mod = register_cvar("dmc_mod", "1"); Cvar_HudMod = register_cvar("dmc_hudmod", "1"); Cvar_ChangeSpeed = register_cvar("dmc_changespeed", "5.0"); Cvar_WaitVoteMenuTime = register_cvar("dmc_waitvotemenutime", "10.0"); Cvar_WaitRevoteMenuTime = register_cvar("dmc_waitrevotemenutime", "5.0"); Cvar_MenuDestroyTime = register_cvar("dmc_menudestroyTime", "5.0"); Cvar_RTVMinute = register_cvar("dmc_rtvminute", "10"); Cvar_VoteCounter = register_cvar("dmc_votecounter", "15"); Cvar_VoteVariable = register_cvar("dmc_votevariable", "3"); Cvar_VotePercentMin = register_cvar("dmc_votepercent", "50"); Cvar_MaxMaps = register_cvar("dmc_maxmaps", "5"); Cvar_Nomination = register_cvar("dmc_nomination", "1"); Cvar_PlayedMaps = register_cvar("dmc_playedmaps", "1"); Cvar_RTV = register_cvar("dmc_rtv", "1"); Cvar_VoteSound = register_cvar("dmc_votesound", "1"); Cvar_RTVMin = register_cvar("dmc_rtvmin", "2"); Cvar_NomChance = register_cvar("dmc_nomchance", "50"); Cvar_Extend = register_cvar("dmc_extend", "15"); Cvar_StartRevoteTime = register_cvar("dmc_startrevotetime", "5.0"); Cvar_OnlyNextRound = register_cvar("dmc_onlynextround", "1"); Cvar_CountSound = register_cvar("dmc_countsound", "1"); Cvar_ChooseSound = register_cvar("dmc_choosesound", "1"); Cvar_Ad = register_cvar("dmc_ad", "1"); Cvar_LangMode = register_cvar("dmc_langmode", "0"); Cvar_StartButton = register_cvar("dmc_startbutton", "1"); server_cmd("exec %s/dmc/dmc.cfg", ConfigsDir); server_exec(); set_cvar_float("mp_chattime", 120.0); register_concmd("amx_dmc", "ShowInfo"); VoteMenu = register_menuid("VoteMenu"); RevoteMenu = register_menuid("RevoteMenu"); register_menucmd(VoteMenu, 1023, "VoteMenuKeys"); register_menucmd(RevoteMenu, 1023, "RevoteMenuKeys"); SayText = get_user_msgid("SayText"); TimeLimit = get_cvar_num("mp_timelimit"); MaxRounds = get_cvar_num("mp_maxrounds"); oRounds = MaxRounds; if(get_pcvar_num(Cvar_LangMode) == 0) { Lang = 0; } else { Lang = -1; } StartButton = get_pcvar_num(Cvar_StartButton); if(StartButton < 1) { set_pcvar_num(Cvar_StartButton, 1); } if(StartButton > 1 && StartButton <= MaxSB) { new Check; Check = get_pcvar_num(Cvar_MaxMaps) + get_pcvar_num(Cvar_StartButton); if(Check > 9) { Check = MaxChoice - get_pcvar_num(Cvar_MaxMaps); if(0 != Check - StartButton) { Check -= StartButton; Check = -Check; set_pcvar_num(Cvar_MaxMaps, get_pcvar_num(Cvar_MaxMaps)-Check+1); } } } else if(StartButton > MaxSB) { StartButton = MaxSB; set_pcvar_num(Cvar_MaxMaps, 2); } else { StartButton = 1; } if(get_pcvar_num(Cvar_MaxMaps) > MaxChoice) { set_pcvar_num(Cvar_MaxMaps, MaxChoice); } if(get_pcvar_num(Cvar_MaxMaps) <= 1) { set_pcvar_num(Cvar_MaxMaps, 2); } if(get_pcvar_float(Cvar_ChangeSpeed) > MaxCSpeed) { set_pcvar_float(Cvar_ChangeSpeed, MaxCSpeed); } if(get_pcvar_float(Cvar_ChangeSpeed) < 1.0) { set_pcvar_float(Cvar_ChangeSpeed, 1.0); } if(MapCycle_Lines-get_pcvar_num(Cvar_MaxMaps) < 0) { new Error[64]; formatex(Error, charsmax(Error), "Only %d maps in %s file! (Min: %d)", MapCycle_Lines, MapCycle, get_pcvar_num(Cvar_MaxMaps)); log_amx(Error); if(MapCycle_Lines > 1) { set_pcvar_num(Cvar_MaxMaps, MapCycle_Lines); formatex(Error, charsmax(Error), "MaxMaps set %d", MapCycle_Lines); log_amx(Error); } else { Off = 1; } } if(TimeLimit == 0 && get_pcvar_num(Cvar_Mod) == 1) { Off = 1; } if(Off == 0) { register_event("HLTV", "NewRound", "a", "1=0", "2=0"); register_logevent("SavePresentTime", 2, "0=World triggered", "1=Game_Commencing"); register_logevent("RestartRound", 2, "0=World triggered", "1&Restart_Round_"); register_logevent("RestartRound", 2, "0=World triggered", "1=Game_Commencing"); if(get_pcvar_num(Cvar_Mod) == 0) { register_logevent("RoundEnd", 2, "0=World triggered", "1=Round_End"); } set_task(0.5, "CheckTime", MapID-1, _, _, "b"); if(get_pcvar_num(Cvar_Mod) == 0) { register_concmd("amx_dmc_maxrounds", "AddRound"); if(MaxRounds < MinRounds) { server_cmd("mp_maxrounds ^"%d^"", MinRounds); } server_cmd("mp_timelimit 0"); MaxRounds = get_cvar_num("mp_maxrounds"); oRounds = MaxRounds; } if(get_pcvar_num(Cvar_Mod) == 1) { server_cmd("mp_maxrounds 0"); } } get_mapname(MapName, charsmax(MapName)); get_localinfo("lastMap", LastMap, 31); set_task(random_float(0.1, 0.5), "LoadMaps"); set_task(random_float(0.1, 0.5), "LoadVoteMaps"); set_task(random_float(0.1, 0.5), "SavePresentTime"); if(get_pcvar_num(Cvar_Ad) == 1) { set_task(random_float(100.0, 200.0), "AdvTime", MapID-10, _, _, "b"); } toRTV = false; new Cmd[32]; if(get_pcvar_num(Cvar_PlayedMaps) == 1) { for(new Num = 0; Num < sizeof MapMenuCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", MapMenuCommands[Num]); register_clcmd(Cmd, "ShowMapMenu"); } } for(new Num = 0; Num < sizeof NextMapCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", NextMapCommands[Num]); register_clcmd(Cmd, "ShowNextMap"); } for(new Num = 0; Num < sizeof CurrentMapCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", CurrentMapCommands[Num]); register_clcmd(Cmd, "ShowCurrentMap"); } for(new Num = 0; Num < sizeof TimeLeftCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", TimeLeftCommands[Num]); register_clcmd(Cmd, "ShowTimeLeft"); } for(new Num = 0; Num < sizeof AdminCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", AdminCommands[Num]); register_clcmd(Cmd, "StartVote"); } if(get_pcvar_num(Cvar_RTV) == 1) { for(new Num = 0; Num < sizeof RTVCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", RTVCommands[Num]); register_clcmd(Cmd, "RockTheVote"); } } if(get_pcvar_num(Cvar_Nomination) == 1) { for(new Num = 0; Num < sizeof NomCommands; Num++) { format(Cmd, charsmax(Cmd), "say %s", NomCommands[Num]); register_clcmd(Cmd, "ShowNomMenu"); } }}public AddRound(id) { if(get_user_flags(id) & RoundFlag) { new sRound[32], RoundNum; read_args(sRound, charsmax(sRound)); remove_quotes(sRound); RoundNum = str_to_num(sRound); MaxRounds = RoundNum+Rounds; set_cvar_num("mp_maxrounds", get_cvar_num("mp_maxrounds")+RoundNum); }}public SavePresentTime(){ new Hour[32], Minute[32], Second[32]; format_time(Hour, sizeof Hour - 1, "%H"); format_time(Minute, sizeof Minute - 1, "%M"); format_time(Second, sizeof Second - 1, "%S"); ElapsedTime[0] = str_to_num(Second); ElapsedTime[1] = str_to_num(Minute); ElapsedTime[2] = str_to_num(Hour); RTVTime[2] = str_to_num(Hour); RTVTime[1] = str_to_num(Minute)+get_pcvar_num(Cvar_RTVMinute); RTVTime[0] = str_to_num(Second); if(RTVTime[1] >= 60) { RTVTime[1] -= 60; RTVTime[2]++; }}public plugin_end(){ set_localinfo("lastMap", MapName);}public AdvTime(){ print_color(0, "%s %L", Prefix, Lang, "ADV", PLUGIN, VERSION);}public RestartRound() { if(get_pcvar_num(Cvar_Mod) == 1) server_cmd("mp_timelimit %d", TimeLimit); else { server_cmd("mp_maxrounds %d", get_cvar_num("mp_maxrounds")+oRounds+Rounds); MaxRounds = oRounds+Rounds; } remove_task(MapID+8123); remove_task(MapID+1); remove_task(MapID+211); remove_task(MapID+2); remove_task(MapID+3); remove_task(MapID+33); NeedRV = false; ChangeMap = false; Begined = false; BeginCounter = 0; MapCounter = 0; Voted = false; Revoted = false; inProcess = false; AllVotes = 0; AllRevotes = 0; Started = 0; new Num; for(Num = 0; Num < 32; Num++) { if(!is_user_connected(Num)) { continue; } AlreadyNom[Num] = false; PlayerMap[Num] = 0; PlayerVoted[Num] = false; PlayerRevoted[Num] = false; } for(Num = 0; Num < Nom; Num++) { NomMaps[Num] = ""; } for(Num = 0; Num < Max; Num++) { Nomed[Num] = 0; } for(Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++) { MapNames[Num] = ""; MapVote[Num] = 0; } RTV = 0; Nom = 0; LoadVoteMaps(); LoadNomMaps(); Next = ""; set_task(get_pcvar_float(Cvar_MenuDestroyTime)+1.0, "VotedMapN", MapID+777); SavePresentTime();}public NewRound() { if(get_pcvar_num(Cvar_Mod) == 1) { if(ChangeMap) { if(isValidMap(Next)) { ChangeLevel(); } } } else if(get_pcvar_num(Cvar_Mod) == 0) { if(0 >= MaxRounds-Rounds) { if(ChangeMap) { if(isValidMap(Next)) { ChangeLevel(); } } } }}public RoundEnd(){ if(MaxRounds-Rounds > 0 && Started == 1) { Rounds++; } if(Started == 0) { Started = 1; }}public StartVote(id){ if(get_user_flags(id) & StartVoteFlag) { if(!inProcess || !Voted || !Revoted || !ChangeMap || Off == 0 || !Begined) { NeedRV = false; new String[32]; float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2); replace_all(String, 2, ".", ""); Begined = true; inProcess = true; if(get_pcvar_num(Cvar_Mod) == 1) { server_cmd("mp_timelimit 0"); } else if(get_pcvar_num(Cvar_Mod) == 0) { Rounds = MaxRounds; } VoteMod = 2; if(get_pcvar_num(Cvar_HudMod) == 1) { remove_task(MapID+8123); BeginCounter = str_to_num(String); VoteCounter(); } else if(get_pcvar_num(Cvar_HudMod) == 0) { set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3); set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime)); ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE2", String); } } }}public VoteCounter(){ if(BeginCounter > 0) { new String[32]; num_to_str(BeginCounter, String, 2); if(get_pcvar_num(Cvar_CountSound) == 1) { new CountSound[32]; num_to_word(BeginCounter, CountSound, 31); if(get_pcvar_num(Cvar_VoteSound) == 1) client_cmd(0, "spk ^"fvox/%s^"", CountSound); } set_hudmessage(R, G, B, -1.0, 0.20, 0, 0.1, CHUD); if(VoteMod == 4) { ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE4", String); } else if(VoteMod == 3) { ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String); } else if(VoteMod == 2) { ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE2", String); } else if(VoteMod == 1) { ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE1", String); } BeginCounter--; set_task(1.0, "VoteCounter", MapID+8123); } else { if(NeedRV) { StartRevote(); } else { StartMapChooser(); } }}public RockTheVote(id){ new Hour[32], Minute[32], Time[2]; format_time(Hour, sizeof Hour - 1, "%H"); format_time(Minute, sizeof Minute - 1, "%M"); Time[0] = str_to_num(Hour); Time[1] = str_to_num(Minute); if(Time[0] > RTVTime[2] || Time[0] == RTVTime[2] && Time[1] >= RTVTime[1]) toRTV = true; if(PlayerRTV[id] || Voted || inProcess || !toRTV || Off == 1) { if(!toRTV) { if(RTVTime[2] > Time[0]) { print_color(id, "%s %L", Prefix, Lang, "RTV2", (RTVTime[1]+60)-Time[1]); } else { print_color(id, "%s %L", Prefix, Lang, "RTV2", RTVTime[1]-Time[1]); } } if(PlayerRTV[id]) { print_color(id, "%s %L", Prefix, Lang, "RTV1"); } return PLUGIN_HANDLED; } PlayerRTV[id] = true; RTV++; new Players[32], Num; get_players(Players, Num, "c"); if(RTV >= Num/get_pcvar_num(Cvar_RTVMin)) { new String[32]; float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2); replace_all(String, 2, ".", ""); Begined = true; inProcess = true; if(get_pcvar_num(Cvar_Mod) == 1) { server_cmd("mp_timelimit 0"); } else if(get_pcvar_num(Cvar_Mod) == 0) { Rounds = MaxRounds; } VoteMod = 1; if(get_pcvar_num(Cvar_HudMod) == 1) { remove_task(MapID+8123); BeginCounter = str_to_num(String); VoteCounter(); } else if(get_pcvar_num(Cvar_HudMod) == 0) { set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3); set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime)); ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE1", String); } } else { print_color(0, "%s %L", Prefix, Lang, "RTV3", (Num/get_pcvar_num(Cvar_RTVMin))-RTV); } return PLUGIN_HANDLED;}public Extend(){ NeedRV = false; ChangeMap = false; Begined = false; Voted = false; Revoted = false; inProcess = false; AllVotes = 0; AllRevotes = 0; new Num; for(Num = 0; Num < 32; Num++) { if(!is_user_connected(Num)) { continue; } AlreadyNom[Num] = false; PlayerMap[Num] = 0; PlayerVoted[Num] = false; PlayerRevoted[Num] = false; } for(Num = 0; Num < Nom; Num++) { NomMaps[Num] = ""; } for(Num = 0; Num < Max; Num++) { Nomed[Num] = 0; } for(Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++) { MapNames[Num] = ""; MapVote[Num] = 0; } RTV = 0; Nom = 0; LoadVoteMaps(); LoadNomMaps(); Next = ""; set_task(get_pcvar_float(Cvar_MenuDestroyTime)+1.0, "VotedMapN", MapID+777);}public VotedMapN(){ VotedMap = "";}public CheckTime(){ static Time[3]; Time[0] = get_timeleft(); Time[1] = Time[0] / 60; Time[2] = Time[1] / 60; Time[0] = Time[0] - Time[1] * 60; Time[1] = Time[1] - Time[2] * 60; if(get_pcvar_num(Cvar_Mod) == 1) { if(Time[1] <= get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess) { new String[32]; float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2); replace_all(String, 2, ".", ""); VoteMod = 3; if(get_pcvar_num(Cvar_HudMod) == 1) { remove_task(MapID+8123); BeginCounter = str_to_num(String); VoteCounter(); } else if(get_pcvar_num(Cvar_HudMod) == 0) { set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3); set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime)); ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String); } Begined = true; inProcess = true; } if(Time[0] <= 3 && Time[1] == 0 && Time[2] == 0) { server_cmd("mp_timelimit 0"); if(!ChangeMap && Voted && !inProcess && !Revoted || !ChangeMap && Revoted && !inProcess && !Voted) { if(get_pcvar_num(Cvar_OnlyNextRound) == 1) { print_color(0, "%s %L", Prefix, Lang, "MCAR"); set_cvar_string("amx_nextmap", Next); ChangeMap = true; } else if(get_pcvar_num(Cvar_OnlyNextRound) == 0) { ChangeMap = true; set_cvar_string("amx_nextmap", Next); ChangeLevel(); } } } } else if(get_pcvar_num(Cvar_Mod) == 0) { if(Rounds == MaxRounds-get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess) { new String[32]; float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2); replace_all(String, 2, ".", ""); VoteMod = 3; if(get_pcvar_num(Cvar_HudMod) == 1) { remove_task(MapID+8123); BeginCounter = str_to_num(String); VoteCounter(); } else if(get_pcvar_num(Cvar_HudMod) == 0) { set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3); set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime)); ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String); } Begined = true; inProcess = true; } if(Rounds >= MaxRounds && !ChangeMap && Voted || Rounds >= MaxRounds && !ChangeMap && Revoted) { print_color(0, "%s %L", Prefix, Lang, "MCAR"); set_cvar_string("amx_nextmap", Next); ChangeMap = true; } } if(!toRTV) { new Hour[32], Minute[32]; format_time(Hour, sizeof Hour - 1, "%H"); format_time(Minute, sizeof Minute - 1, "%M"); Time[2] = str_to_num(Hour); Time[1] = str_to_num(Minute); if(RTVTime[2] == Time[2] && RTVTime[1]+get_pcvar_num(Cvar_RTVMinute) <= Time[1]) { toRTV = true; } }}public StartMapChooser(){ remove_task(MapID+3); ChangeMap = false; Voted = false; Revoted = false; MapCounter = get_pcvar_num(Cvar_VoteCounter); Counter(); VoteMod = 0; if(get_pcvar_num(Cvar_VoteSound) == 1) { client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2)); }}public Change(){ if(ChangeMap) { server_cmd("changelevel ^"%s^"", Next); }}public ShowInfo(id){ if(get_user_flags(id) & InfoFlag) { client_print(id, print_console, "* ------------"); client_print(id, print_console, "* %s - v%s *", PLUGIN, VERSION); client_print(id, print_console, "* ------------"); client_print(id, print_console, "* Last map: %s", LastMap); client_print(id, print_console, "* Next map: %s", Next); client_print(id, print_console, "* Total maps: %d", NomNum); client_print(id, print_console, "* ------------"); client_print(id, print_console, "* Original timeleft: %d", TimeLimit); client_print(id, print_console, "* Max Rounds: %d", oRounds); client_print(id, print_console, "* ------------"); client_print(id, print_console, "* Total played count: %d", PlayedCount); client_print(id, print_console, "* ------------"); }}public ShowTimeLeft(){ if(get_pcvar_num(Cvar_Mod) == 1) { static Time[3]; Time[0] = get_timeleft(); Time[1] = Time[0] / 60; Time[2] = Time[1] / 60; Time[0] = Time[0] - Time[1] * 60; Time[1] = Time[1] - Time[2] * 60; if(ChangeMap && Voted && Begined && !Revoted || ChangeMap && Revoted && Begined && !Voted) { print_color(0, "%s!y %L!t !t-!y:!t-", Prefix, Lang, "TL"); } else { if(Time[2] > 0 && Time[1] > 0 && Time[0] > 0) print_color(0, "%s!y %L!t %d%!y:!t%02d!y:!t%02d", Prefix, Lang, "TL", Time[2], Time[1], Time[0]); else if(Time[1] > 0 && Time[0] > 0) print_color(0, "%s!y %L!t %02d!y:!t%02d", Prefix, Lang, "TL", Time[1], Time[0]); else print_color(0, "%s!y %L!t !t-!y:!t-", Prefix, Lang, "TL"); } } else if(get_pcvar_num(Cvar_Mod) == 0) { print_color(0, "%s!t %L", Prefix, Lang, "RM", MaxRounds-Rounds); }}public ShowNextMap(){ new Status[2][32]; formatex(Status[0], 31, "%L", Lang, "NYT"); formatex(Status[1], 31, "%L", Lang, "VIP"); if(isValidMap(Next)) print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Next); else { if(inProcess) { print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Status[1]); } else { print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Status[0]); } }}public ShowCurrentMap(){ print_color(0, "%s!y %L", Prefix, Lang, "CM", MapName);}public Counter(){ if(MapCounter < 1) { Voted = true; inProcess = false; CheckVotes(); for(new Num; Num < 32; Num++) { if(!is_user_connected(Num)) continue; ShowVoteMenu(Num); } } else { MapCounter--; set_task(1.0, "Counter", MapID+1); for(new Num; Num < 32; Num++) { if(!is_user_connected(Num)) continue; ShowVoteMenu(Num); } }}public NextMap(){ remove_task(MapID-4); if(!NeedRV) { ShowNextMap(); } set_task(get_pcvar_float(Cvar_MenuDestroyTime), "DestroyVoteMenu", MapID-4);}public DestroyVoteMenu(){ for(new Num; Num < 32; Num++) { if(!is_user_connected(Num)) continue; show_menu(Num, 0, "^n", 1); }}public ShowVoteMenu(id){ if(equal(VotedMap, MapName)) { DestroyVoteMenu(); return; } new Menu[512], String[128], Key, MapPercent[MaxChoice]; AllVotes = 0; for(new All; All < get_pcvar_num(Cvar_MaxMaps); All++) { AllVotes += MapVote[All]; } formatex(String, 127, "%L", Lang, "CHONM", AllVotes); add(Menu, 511, String); for(new Num; Num < get_pcvar_num(Cvar_MaxMaps); Num++) { if(MapVote[Num] > 0) MapPercent[Num] = ((MapVote[Num]*100)/(AllVotes)); if(equal(MapName, MapNames[Num])) formatex(String, 127, "%L", Lang, "MOP5", Num+StartButton, MapNames[Num], MapVote[Num], MapPercent[Num]); else formatex(String, 127, "%L", Lang, "MOPD", Num+StartButton, MapNames[Num], MapVote[Num], MapPercent[Num]); add(Menu, 511, String); } if(Voted) formatex(String, 127, "%L", Lang, "MNM", Next); else if(!Revoted && !Voted && MapCounter <= 0 && NeedRV) formatex(String, 127, "%L", Lang, "MNRE"); else formatex(String, 127, "%L", Lang, "MCSL", MapCounter); add(Menu, 511, String); Key = (-1^(-1<<(get_pcvar_num(Cvar_MaxMaps)+StartButton))); show_menu(id, Key, Menu, -1, "VoteMenu");}public VoteMenuKeys(id, Key){ if(PlayerVoted[id] || Voted) { if(PlayerVoted[id]) { print_color(id, "%s %L", Prefix, Lang, "AVO"); } return; } if(!Begined || NeedRV) { show_menu(id, 0, "^n", 1); return; } new PlayerName[32]; get_user_name(id, PlayerName, 31); Key -= StartButton-1; if(Key < get_pcvar_num(Cvar_MaxMaps) && Key > -1) { PlayerMap[id] = Key; PlayerVoted[id] = true; print_color(0, "%s %L", Prefix, Lang, "PCHO", PlayerName, MapNames[Key]); MapVote[Key]++; if(get_pcvar_num(Cvar_ChooseSound) == 1) { client_cmd(0, "spk buttons/lightswitch2"); } } ShowVoteMenu(id);}public LoadVoteMaps(){ new Line[128], Map[32], Len, Used[Max], Loaded, File, Found; File = fopen(MapCycle, "rt"); if(File) { for(new lNum; lNum < Max; lNum++) { Found = 0; new RandomMap = random(MapCycle_Lines); read_file(MapCycle, RandomMap, Line, 127, Len); parse(Line, Map, 31); for(new mc; mc < MaxChoice; mc++) { if(equali(Map, MapNames[mc])) { Found = 1; } } if(Found == 1 || equali(Map, MapName)) { continue; } if(Used[RandomMap] == 0 && Loaded < get_pcvar_num(Cvar_MaxMaps)-1 && isValidMap(Map)) { Used[RandomMap] = 1; copy(MapNames[Loaded], sizeof Map - 1, Map); Loaded++; } } } fclose(File); MapNames[get_pcvar_num(Cvar_MaxMaps)-1] = MapName; set_task(0.1, "LoadNomMaps", MapID+69);}public LoadNomMaps(){ new Line[128], Map[32], File, Found; File = fopen(MapCycle, "rt"); while(!feof(File)) { fgets(File, Line, charsmax(Line)); parse(Line, Map, 31); for(new nn; nn < NomNum; nn++) { if(equali(Map, NomMaps[nn])) { Found = 1; } } if(Found == 1) { continue; } if(NomNum < MapCycle_Lines && isValidMap(Map)) { copy(NomMaps[NomNum], sizeof Map - 1, Map); NomNum++; } } fclose(File);}public ShowMapMenu(id){ new Menu, MenuLine[128], MapDatas[2][32], String[32]; formatex(MenuLine, 127, "%L", Lang, "MPNM"); Menu = menu_create(MenuLine, "MapKey"); for(new MapNum; MapNum < MapFile_Lines-1; MapNum++) { parse(Maps[MapNum], MapDatas[0], 31, MapDatas[1], 31); formatex(MenuLine, 127, "%L", Lang, "PMPM", MapDatas[0], MapDatas[1]); num_to_str(MapNum, String, 2); menu_additem(Menu, MenuLine, String); } formatex(MenuLine, 127, "%L", Lang, "MNEXT"); menu_setprop(Menu, MPROP_NEXTNAME, MenuLine); formatex(MenuLine, 127, "%L", Lang, "MEXIT"); menu_setprop(Menu, MPROP_EXITNAME, MenuLine); formatex(MenuLine, 127, "%L", Lang, "MBACK"); menu_setprop(Menu, MPROP_BACKNAME, MenuLine); menu_setprop(Menu, MPROP_PERPAGE, PMPage); menu_display(id, Menu);}public MapKey(id, Menu, Item){ new MenuNum[2], Data[2][32], Key; menu_item_getinfo(Menu, Item, MenuNum[0], Data[0], charsmax(Data), Data[1], charsmax(Data), MenuNum[1]); Key = str_to_num(Data[0]); if(Item == MENU_EXIT) { menu_destroy(Menu); return; } new MapDatas[2][32]; parse(Maps[Key], MapDatas[0], 31, MapDatas[1], 31); print_color(id, "%s %L", Prefix, Lang, "MNP", MapDatas[0], MapDatas[1]);}public ShowNomMenu(id){ if(Nom >= get_pcvar_num(Cvar_MaxMaps)-1) { print_color(id, "%s %L", Prefix, Lang, "NOMT"); return; } if(AlreadyNom[id]) { print_color(id, "%s %L", Prefix, Lang, "NOMN"); return; } if(inProcess || Voted || Revoted) { return; } new Menu, MenuLine[128], Already; formatex(MenuLine, 127, "%L", Lang, "NOMM"); Menu = menu_create(MenuLine, "NomKey"); for(new MapNum; MapNum < MapCycle_Lines; MapNum++) { if(Nomed[MapNum] == 1) continue; Already = 0; for(new mc; mc < MaxChoice; mc++) { if(equali(NomMaps[MapNum], MapNames[mc])) { Already = 1; } } if(Already == 1) continue; if(equali(NomMaps[MapNum], MapName)) continue; if(!isValidMap(NomMaps[MapNum])) continue; formatex(MenuLine, 127, "%L", Lang, "NOM1", NomMaps[MapNum]); menu_additem(Menu, MenuLine, NomMaps[MapNum]); } formatex(MenuLine, 127, "%L", Lang, "MNEXT"); menu_setprop(Menu, MPROP_NEXTNAME, MenuLine); formatex(MenuLine, 127, "%L", Lang, "MEXIT"); menu_setprop(Menu, MPROP_EXITNAME, MenuLine); formatex(MenuLine, 127, "%L", Lang, "MBACK"); menu_setprop(Menu, MPROP_BACKNAME, MenuLine); menu_display(id, Menu);}public NomKey(id, Menu, Item){ if(Nom > get_pcvar_num(Cvar_MaxMaps)-1) { print_color(id, "%s %L", Prefix, Lang, "NOMT"); return PLUGIN_HANDLED; } if(AlreadyNom[id]) { print_color(id, "%s %L", Prefix, Lang, "NOMN"); return PLUGIN_HANDLED; } if(inProcess || Voted) { return PLUGIN_HANDLED; } new MenuNum[2], Data_1[32], Data_2[32], PlayerName[32]; menu_item_getinfo(Menu, Item, MenuNum[0], Data_1, charsmax(Data_1), Data_2, charsmax(Data_2), MenuNum[1]); if(Item == MENU_EXIT) { menu_destroy(Menu); return PLUGIN_HANDLED; } new Already = 0; for(new mc; mc < MaxChoice; mc++) { if(equali(Data_1, MapNames[mc])) { Already = 1; } } if(Already == 1 || !isValidMap(Data_1) || Nomed[Nom] == 1) return PLUGIN_HANDLED; get_user_name(id, PlayerName, charsmax(PlayerName)); print_color(0, "%s %L", Prefix, Lang, "NOMC", PlayerName, Data_1); if(get_pcvar_num(Cvar_NomChance) >= (random_num(1,100))) { MapNames[Nom] = Data_1; } MapNames[Nom] = Data_1; Nomed[Nom] = 1; Nom++; AlreadyNom[id] = true; return PLUGIN_HANDLED;}public LoadMapMenu(){ new Line[64], File, Len; File = fopen(MapFile, "rt"); if(File) { for(new MapNum; MapNum < MapFile_Lines; MapNum++) { read_file(MapFile, MapNum, Line, 63, Len); if(Line[0] == ';' || strlen(Line) < 2) continue; remove_quotes(Line); copy(Maps[MapNum], sizeof Line - 1, Line); } } fclose(File);}public LoadMaps(){ remove_task(MapID); new Line[64], File, MapDatas[2][32], LineNum, MapNum, bool:Found; File = fopen(MapFile, "rt"); while(!feof(File)) { fgets(File, Line, charsmax(Line)); if(Line[0] == ';' || strlen(Line) < 2) continue; parse(Line, MapDatas[0], 31, MapDatas[1], 31); PlayedCount += str_to_num(MapDatas[1]); if(equal(MapDatas[0], MapName)) { MapNum = str_to_num(MapDatas[1])+1; format(Line, sizeof Line - 1, "^"%s^" ^"%d^"", MapName, MapNum); write_file(MapFile, Line, LineNum); Found = true; } LineNum++; } fclose(File); if(!Found) { NewMap(); } set_task(0.5, "LoadMapMenu", MapID);}public NewMap(){ new Line[32], File; File = fopen(MapFile, "at+"); formatex(Line, sizeof Line - 1, "^"%s^" ^"%d^"^n", MapName, 1); fprintf(File, Line); fclose(File);}public StartRevoteTime() { new String[32]; float_to_str(get_pcvar_float(Cvar_WaitRevoteMenuTime), String, 2); replace_all(String, 2, ".", ""); VoteMod = 4; if(get_pcvar_num(Cvar_HudMod) == 1) { remove_task(MapID+8123); BeginCounter = str_to_num(String); VoteCounter(); } else if(get_pcvar_num(Cvar_HudMod) == 0) { set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevote", MapID+33); set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime)); ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE4", String); } inProcess = true;}public StartRevote() { Voted = false; Begined = true; MapCounter = get_pcvar_num(Cvar_VoteCounter); ReCounter(); if(get_pcvar_num(Cvar_VoteSound) == 1) client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2));}public ShowRevoteMenu(id){ if(equal(VotedMap, MapName)) { DestroyVoteMenu(); return; } new Menu[512], String[128], Key, MapPercent[MaxChoice]; AllRevotes = 0; for(new All; All < 2; All++) { AllRevotes += RevoteCounts[All]; } formatex(String, 127, "%L", Lang, "CHONM", AllRevotes); add(Menu, 511, String); for(new Num; Num < 2; Num++) { if(RevoteCounts[Num] > 0) MapPercent[Num] = ((RevoteCounts[Num]*100)/(AllRevotes)); formatex(String, 127, "%L", Lang, "MOPD", Num+StartButton, MapRevote[Num], RevoteCounts[Num], MapPercent[Num]); add(Menu, 511, String); } if(!Revoted) formatex(String, 127, "%L", Lang, "MCSL", MapCounter); else formatex(String, 127, "%L", Lang, "MNM", Next); add(Menu, 511, String); Key = (-1^(-1<<(1+StartButton))); show_menu(id, Key, Menu, -1, "RevoteMenu");}public RevoteMenuKeys(id, Key){ if(PlayerRevoted[id] || Revoted) { if(PlayerVoted[id]) print_color(id, "%s %L", Prefix, Lang, "AVO"); ShowRevoteMenu(id); return; } if(!Begined) { show_menu(id, 0, "^n", 1); return; } new PlayerName[32]; get_user_name(id, PlayerName, 31); Key -= StartButton-1; if(Key <= 2 && Key > -1) { PlayerMap[id] = Key; PlayerRevoted[id] = true; print_color(0, "%s %L", Prefix, Lang, "PCHO", PlayerName, MapRevote[Key]); RevoteCounts[Key]++; if(get_pcvar_num(Cvar_ChooseSound) == 1) { client_cmd(0, "spk buttons/lightswitch2"); } } ShowRevoteMenu(id);}public ReCounter(){ if(MapCounter < 1) { Revoted = true; inProcess = false; CheckRevotes(); for(new Num; Num < 32; Num++) { if(!is_user_connected(Num)) continue; ShowRevoteMenu(Num); } } else { MapCounter--; set_task(1.0, "ReCounter", MapID+211); for(new Num; Num < 32; Num++) { if(!is_user_connected(Num)) continue; ShowRevoteMenu(Num); } }}public client_disconnect(id){ if(PlayerRTV[id]) { RTV--; PlayerRTV[id] = false; } if(PlayerVoted[id]) { MapVote[PlayerMap[id]]--; PlayerVoted[id] = false; } if(PlayerRevoted[id]) { RevoteCounts[PlayerMap[id]]--; PlayerRevoted[id] = false; } PlayerMap[id] = 0; }stock ChangeLevel(){ set_task(get_pcvar_float(Cvar_ChangeSpeed), "Change", MapID+2); message_begin(MSG_ALL, SVC_INTERMISSION); message_end();}stock print_color(const id, const input[], any:...){ new Count = 1, Players[32]; static Msg[191]; vformat(Msg, 190, input, 3); replace_all(Msg, 190, "!g", "^4"); replace_all(Msg, 190, "!y", "^1"); replace_all(Msg, 190, "!t", "^3"); if(id) Players[0] = id; else get_players(Players, Count, "ch"); { for (new i = 0; i < Count; i++) { if (is_user_connected(Players[i])) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]); write_byte(Players[i]); write_string(Msg); message_end(); } } } return PLUGIN_HANDLED;}stock CheckVotes() { if(AllVotes == 0) { Revoted = false; Next = MapNames[0]; set_cvar_string("amx_nextmap", Next); NextMap(); return PLUGIN_HANDLED; } new VoteNum_1 = 0; for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num) { if(MapVote[VoteNum_1] < MapVote[Num]) { VoteNum_1 = Num; } } if((MapVote[VoteNum_1]*100/AllVotes) >= get_pcvar_num(Cvar_VotePercentMin)) { Revoted = false; Next = MapNames[VoteNum_1]; VotedMap = Next; set_cvar_string("amx_nextmap", Next); if(get_pcvar_num(Cvar_Mod) == 1) { if(equali(Next, MapName)) { new Hour[32], Minute[32], Second[32], pTime[3]; format_time(Hour, sizeof Hour - 1, "%H"); format_time(Minute, sizeof Minute - 1, "%M"); format_time(Second, sizeof Second - 1, "%S"); pTime[0] = str_to_num(Second); pTime[1] = str_to_num(Minute); pTime[2] = str_to_num(Hour); pTime[1] = pTime[1] - ElapsedTime[1]; if(pTime[0] >= ElapsedTime[0]) pTime[0] = pTime[0] - ElapsedTime[0]; else { pTime[0] = pTime[0]+60 - ElapsedTime[0]; pTime[1]--; } if(pTime[2] == ElapsedTime[2]) server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]); else server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]); print_color(0, "%s %L", Prefix, Lang, "MEXTEND1", get_pcvar_num(Cvar_Extend)); Extend(); } } else if(get_pcvar_num(Cvar_Mod) == 0) { if(equali(Next, MapName)) { print_color(0, "%s %L", Prefix, Lang, "MEXTEND2", get_pcvar_num(Cvar_Extend)); server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds+Rounds); MaxRounds = get_pcvar_num(Cvar_Extend)+(MaxRounds-Rounds); Rounds = 0; Extend(); } } } else { NeedRV = true; Voted = false; MapVote[VoteNum_1] = -MapVote[VoteNum_1]; new VoteNum_1_1 = 0; for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num) { if(MapVote[VoteNum_1_1] < MapVote[Num]) { VoteNum_1_1 = Num; } } MapVote[VoteNum_1] = 0-MapVote[VoteNum_1]; copy(MapRevote[0], 31, MapNames[VoteNum_1]); copy(MapRevote[1], 31, MapNames[VoteNum_1_1]); RevoteCounts[0] = 0; RevoteCounts[1] = 0; VoteMod = 0; set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevoteTime", MapID+3); print_color(0, "%s %L", Prefix, Lang, "RER", get_pcvar_num(Cvar_VotePercentMin)); } NextMap(); return PLUGIN_CONTINUE;}stock CheckRevotes() { if(AllRevotes == 0) { Next = MapRevote[0]; set_cvar_string("amx_nextmap", Next); NeedRV = false; VotedMap = Next; NextMap(); return PLUGIN_HANDLED; } new VoteNum_1 = 0; for(new Num = 0; Num < 2; ++Num) { if(RevoteCounts[VoteNum_1] < RevoteCounts[Num]) VoteNum_1 = Num; } Next = MapRevote[VoteNum_1]; set_cvar_string("amx_nextmap", Next); NeedRV = false; VotedMap = Next; if(get_pcvar_num(Cvar_Mod) == 1) { if(equali(Next, MapName)) { new Hour[32], Minute[32], Second[32], pTime[3]; format_time(Hour, sizeof Hour - 1, "%H"); format_time(Minute, sizeof Minute - 1, "%M"); format_time(Second, sizeof Second - 1, "%S"); pTime[0] = str_to_num(Second); pTime[1] = str_to_num(Minute); pTime[2] = str_to_num(Hour); pTime[1] = pTime[1] - ElapsedTime[1]; if(pTime[0] >= ElapsedTime[0]) pTime[0] = pTime[0] - ElapsedTime[0]; else { pTime[0] = pTime[0]+60 - ElapsedTime[0]; pTime[1]--; } if(pTime[2] == ElapsedTime[2]) server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]); else server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]); print_color(0, "%s %L", Prefix, Lang, "MEXTEND1", get_pcvar_num(Cvar_Extend)); Extend(); } } else if(get_pcvar_num(Cvar_Mod) == 0) { if(equali(Next, MapName)) { print_color(0, "%s %L", Prefix, Lang, "MEXTEND2", get_pcvar_num(Cvar_Extend)); server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds+Rounds); MaxRounds = get_pcvar_num(Cvar_Extend)+(MaxRounds-Rounds); Rounds = 0; Extend(); } } NextMap(); return PLUGIN_CONTINUE;}stock bool:isValidMap(Map[]){ if(is_map_valid(Map)) { return true; } new Len = strlen(Map) - 4; if(0 > Len) { return false; } if(equali(Map[Len], ".bsp")) { Map[Len] = '^0'; if(is_map_valid(Map)) { return true; } } return false;}/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }*/