hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.29. 13:23



Jelenlévő felhasználók

Jelenleg 322 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 322 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2016.07.06. 20:05 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2015.07.14. 14:30
Hozzászólások: 380
Megköszönt másnak: 43 alkalommal
Megköszönték neki: 30 alkalommal
Van Deroid-nak a Mapchooser-es pluginja és benne van egy ilyen cvar:

Kód:
#  How many last minute or round to start vote?// Mennyi perc vagy kör teljen el a szavazás elindításához?
#     Default: 3
dmc_votevariable 2


Azt szeretném beállítani hogy ne a körökért kérje le a map szavazást mivel az egy GunGame szerveren elég érdekes lenne hanem pl: az utolsó 2-3 percben.

Egy SMA:
  1. /*
  2.     ///////////////////////////////////////////////////////////
  3.     /###///##/////##///###////////////####///////####///####///
  4.     /#//#//#/#///#/#//#///////////////////#//////////#//////#//
  5.     /#//#//#//#/#//#//#/////////#///#//####/////////#//////#///
  6.     /#//#//#///#///#//#//////////#/#//#//////////////#//////#//
  7.     /###///#///////#///###////////#///#####//##//####///####///
  8.     ///////////////////////////////////////////////////////////
  9.    
  10.     Author:            DeRoiD
  11.     Plugin name:       DeRoiD's Mapchooser
  12.     Plugin version:    2.33
  13.     First relase:      2015/04/08
  14.     Last update:       2015/06/25
  15.     Reason for update: Rounds fix
  16.     Plugin link:       forums.alliedmods.net/showthread.php?t=261412
  17.    
  18.     Short description [default cvar]:
  19.         - This plugin last 3 minutes or round open the "Vote a map" menu.
  20.         - The one for which more people vote it will be the next map.
  21.         - If best vote < min. vote percent then re-vote! There is a manner of two kinds.
  22.        
  23.     You can [default cvar]:
  24.         - rtv "Rock the vote" [players 1:2]
  25.         - nom "Nomination" (in menu) [chance 50%]
  26.         - see timeleft | nextmap [timeleft, nextmap]
  27.         - see played maps and played counts [/playedmaps]
  28.         - see current map
  29.         - if you admin then can startvote (/startvote) [StartVoteFlag]
  30.    
  31.     Changelog:
  32.         - v1.00
  33.             + First relase (hlmod.hu)
  34.             + Map choose (Old method)
  35.             + Played maps
  36.             + Next map
  37.             + Timeleft
  38.        
  39.         - v1.20b
  40.             + Rounds
  41.             + Nomination
  42.             + Admin vote
  43.             + Rock the vote
  44.        
  45.         - v1.30b
  46.             + Previous map can not be choose
  47.        
  48.         - v1.35b
  49.             + Fix bugs
  50.             + New chooser method
  51.             + More map choices [MAX 9]
  52.        
  53.         - v1.49a
  54.             + Re-vote if vote percent < min percent
  55.             + Removed hard coding paths.
  56.        
  57.         - v1.53a
  58.             + Fixed extend time [ +- 1 min ]
  59.             + Fixed changelevel bug.
  60.            
  61.         - v1.62a
  62.             + Hud Counter
  63.             + Change map only next round. (Cvar)
  64.             + Fix bugs
  65.            
  66.         - v1.63a
  67.             + HudMsg -> SyncHudMsg
  68.            
  69.         - v1.77a
  70.             + Nobody votes bug fix
  71.             + More languages
  72.    
  73.         - v1.86a
  74.             + Countdown sounds
  75.            
  76.         - v2.00
  77.             + Fix bugs
  78.             + Check maps (valid)
  79.             + Ad rounds in game (if rounds mod)
  80.            
  81.         - v2.01
  82.             + Current map
  83.            
  84.         - v2.01.3
  85.             + Fix RTV
  86.            
  87.         - v2.30
  88.             + Multilang toggle server/player
  89.             + Start button
  90.             + Map infos
  91.            
  92.         - v2.33
  93.             + Round fix
  94.             + amx_dmc_maxrounds
  95.        
  96.         Pugin like:
  97.        
  98.             Choose the Next Map [All votes: 9]
  99.            
  100.             1. de_dust2 [votes: 1] (9%)
  101.             2. de_dust [votes: 0] (0%)
  102.             3. de_inferno [votes: 1] (9%)
  103.             4. de_train [votes: 5] (54%)
  104.             5. de_nuke [votes: 1] (9%)
  105.            
  106.             6. de_tuscan (current map) [votes: 1] (9%)
  107.            
  108.            
  109.             [Next map: de_train]
  110.            
  111.         You find bug?
  112.             - deroidocska (steam)
  113.             - https://forums.alliedmods.net/member.php?u=258497
  114.            
  115.         Plugin tested in [32 Real Players]:
  116.             - AMX 1.8.2
  117.             - AMX 1.8.3-dev+4532
  118.             - AMX 1.8.3-dev-git4751
  119.            
  120.         Thanks for using this plugin!          
  121.             DeRoiD
  122.            
  123.                     ___________[Special thanks]___________
  124.                            
  125.                     - fysiks for help to plugin (tips)
  126.                     - HamletEagle for help to plugin (tips)
  127.                     - mforce for idea
  128.                     - cs.stambeto for idea
  129.                     - OZH3NN for idea
  130.                        
  131.                     - ACM1PT for translation [es]
  132.                     - JustVladK & K:O for translation [ro]
  133.                     - battlefield 3 for translation [ru]
  134.                     - Perfect Scrash for translation [bp]
  135.                     - Belo95135 for translation [sk]
  136.                     - wEight for translation [sr]
  137.                     - ANTICHRISTUS for translation [fr]
  138.                     ______________________________________
  139.                    
  140.                    
  141.         Magyar nyelven is leirom!!! Koszonom, hogy ha ezt a plugint hasznalod! :)
  142. */
  143.  
  144. #include <amxmodx>
  145.  
  146. new const PLUGIN[] = "DeRoiD's Mapchooser";
  147. new const VERSION[] = "2.33";
  148. new const AUTHOR[] = "DeRoiD";
  149.  
  150. #define MapID 180912
  151.  
  152. #define R 240
  153. #define G 240
  154. #define B 240
  155.  
  156. #define CHUD 1.5
  157. #define MaxCSpeed 5.0
  158.  
  159. #define Max 200
  160. #define MinRounds 5
  161. #define MaxChoice 9
  162. #define PMPage 6
  163. #define MaxSB 8
  164.  
  165. #define StartVoteFlag ADMIN_LEVEL_A
  166. #define InfoFlag ADMIN_BAN
  167. #define RoundFlag ADMIN_RCON
  168.  
  169. #pragma semicolon 1
  170.  
  171. new MapFile[64], MapCycle[32], MapFile_Lines, MapCycle_Lines;
  172. new Maps[Max][32], MapName[32], MapNames[MaxChoice][32], MapRevote[2][32], NomMaps[Max][32], NomNum, Nom, Nomed[Max];
  173. new MapVote[MaxChoice], RevoteCounts[2], VoteMenu, RevoteMenu, MapCounter, LastMap[32], VotedMap[32], BeginCounter;
  174. new AllVotes, AllRevotes, Next[32], RTV, RTVTime[3], PlayerMap[33], ElapsedTime[3], VoteMod;
  175. new bool:Voted, bool:PlayerVoted[33], bool:ChangeMap, bool:Begined, bool:inProcess, bool:Revoted,
  176. bool:PlayerRTV[33], bool:toRTV, bool:AlreadyNom[33], bool:PlayerRevoted[33], bool:NeedRV;
  177. new SayText, Rounds, MaxRounds, TimeLimit, oRounds, Lang, StartButton, PlayedCount, Started;
  178.  
  179. new Cvar_WaitVoteMenuTime, Cvar_MenuDestroyTime, Cvar_RTVMinute, Cvar_VoteCounter,
  180. Cvar_NomChance, Cvar_VoteSound, Cvar_Extend, Cvar_StartRevoteTime, Cvar_VotePercentMin,
  181. Cvar_Nomination, Cvar_PlayedMaps, Cvar_RTV, Cvar_VoteVariable, Cvar_RTVMin, Cvar_Mod,
  182. Cvar_ChangeSpeed, Cvar_MaxMaps, Cvar_WaitRevoteMenuTime, Cvar_HudMod, Cvar_OnlyNextRound,
  183. Cvar_CountSound, Cvar_ChooseSound, Cvar_Ad, Cvar_StartButton, Cvar_LangMode;
  184.  
  185. new Prefix[32], sHudObj, Off;
  186.  
  187. new const MapMenuCommands[][] =
  188. {
  189.     "/playedmaps",
  190.     "/pm",
  191.     "!playedmaps",
  192.     "!pm",
  193.     "playedmaps",
  194.     "pm"
  195. };
  196. new const TimeLeftCommands[][] =
  197. {
  198.     "/timeleft",
  199.     "/tl",
  200.     "!timeleft",
  201.     "!tl",
  202.     "timeleft",
  203.     "tl"
  204. };
  205. new const NextMapCommands[][] =
  206. {
  207.     "/nextmap",
  208.     "/nm",
  209.     "!nextmap",
  210.     "!nm",
  211.     "nextmap",
  212.     "nm"
  213. };
  214. new const AdminCommands[][] =
  215. {
  216.     "/startvote",
  217.     "!startvote",
  218.     "startvote"
  219. };
  220. new const RTVCommands[][] =
  221. {
  222.     "/rtv",
  223.     "!rtv",
  224.     "/rockthevote",
  225.     "!rockthevote",
  226.     "rockthevote",
  227.     "rtv"
  228. };
  229. new const NomCommands[][] =
  230. {
  231.     "/nom",
  232.     "!nom",
  233.     "/nomination",
  234.     "!nomination",
  235.     "nom",
  236.     "nomination"
  237. };
  238. new const CurrentMapCommands[][] =
  239. {
  240.     "/currentmap",
  241.     "!currentmap",
  242.     "/cm",
  243.     "!cm",
  244.     "currentmap",
  245.     "cm"
  246. };
  247.  
  248. public plugin_init()
  249. {
  250.     register_plugin(PLUGIN, VERSION, AUTHOR);
  251.     register_cvar(PLUGIN, VERSION, FCVAR_SERVER);
  252.     register_dictionary("dmc.txt");
  253.     sHudObj = CreateHudSyncObj();
  254.    
  255.     static ConfigsDir[64];
  256.     get_localinfo("amxx_configsdir", ConfigsDir, 63);
  257.     formatex(MapFile, 63, "%s/dmc/mapdatas.dmc", ConfigsDir);
  258.     get_localinfo("amxx_configsdir", ConfigsDir, 63);
  259.     formatex(MapCycle, 31, "mapcycle.txt");
  260.     formatex(Prefix, 31, "!g[-|MNK|-]");
  261.    
  262.     MapFile_Lines = file_size(MapFile, 1);
  263.     MapCycle_Lines = file_size(MapCycle, 1);
  264.    
  265.     Cvar_Mod = register_cvar("dmc_mod", "1");
  266.     Cvar_HudMod = register_cvar("dmc_hudmod", "1");
  267.     Cvar_ChangeSpeed = register_cvar("dmc_changespeed", "5.0");
  268.     Cvar_WaitVoteMenuTime = register_cvar("dmc_waitvotemenutime", "10.0");
  269.     Cvar_WaitRevoteMenuTime = register_cvar("dmc_waitrevotemenutime", "5.0");
  270.     Cvar_MenuDestroyTime = register_cvar("dmc_menudestroyTime", "5.0");
  271.     Cvar_RTVMinute = register_cvar("dmc_rtvminute", "10");
  272.     Cvar_VoteCounter = register_cvar("dmc_votecounter", "15");
  273.     Cvar_VoteVariable = register_cvar("dmc_votevariable", "3");
  274.     Cvar_VotePercentMin = register_cvar("dmc_votepercent", "50");
  275.     Cvar_MaxMaps = register_cvar("dmc_maxmaps", "5");
  276.     Cvar_Nomination = register_cvar("dmc_nomination", "1");
  277.     Cvar_PlayedMaps = register_cvar("dmc_playedmaps", "1");
  278.     Cvar_RTV = register_cvar("dmc_rtv", "1");
  279.     Cvar_VoteSound = register_cvar("dmc_votesound", "1");
  280.     Cvar_RTVMin = register_cvar("dmc_rtvmin", "2");
  281.     Cvar_NomChance = register_cvar("dmc_nomchance", "50");
  282.     Cvar_Extend = register_cvar("dmc_extend", "15");
  283.     Cvar_StartRevoteTime = register_cvar("dmc_startrevotetime", "5.0");
  284.     Cvar_OnlyNextRound = register_cvar("dmc_onlynextround", "1");
  285.     Cvar_CountSound = register_cvar("dmc_countsound", "1");
  286.     Cvar_ChooseSound = register_cvar("dmc_choosesound", "1");
  287.     Cvar_Ad = register_cvar("dmc_ad", "1");
  288.     Cvar_LangMode = register_cvar("dmc_langmode", "0");
  289.     Cvar_StartButton = register_cvar("dmc_startbutton", "1");
  290.    
  291.     server_cmd("exec %s/dmc/dmc.cfg", ConfigsDir);
  292.     server_exec();
  293.     set_cvar_float("mp_chattime", 120.0);
  294.    
  295.     register_concmd("amx_dmc", "ShowInfo");
  296.    
  297.     VoteMenu = register_menuid("VoteMenu");
  298.     RevoteMenu = register_menuid("RevoteMenu");
  299.     register_menucmd(VoteMenu, 1023, "VoteMenuKeys");
  300.     register_menucmd(RevoteMenu, 1023, "RevoteMenuKeys");
  301.     SayText = get_user_msgid("SayText");
  302.    
  303.     TimeLimit = get_cvar_num("mp_timelimit");
  304.     MaxRounds = get_cvar_num("mp_maxrounds");
  305.     oRounds = MaxRounds;
  306.    
  307.     if(get_pcvar_num(Cvar_LangMode) == 0)
  308.     {
  309.         Lang = 0;
  310.     }
  311.     else
  312.     {
  313.         Lang = -1;
  314.     }
  315.    
  316.     StartButton = get_pcvar_num(Cvar_StartButton);
  317.    
  318.     if(StartButton < 1)
  319.     {
  320.         set_pcvar_num(Cvar_StartButton, 1);
  321.     }
  322.    
  323.     if(StartButton > 1 && StartButton <= MaxSB)
  324.     {
  325.         new Check;
  326.         Check = get_pcvar_num(Cvar_MaxMaps) + get_pcvar_num(Cvar_StartButton);
  327.        
  328.         if(Check > 9)
  329.         {
  330.             Check = MaxChoice - get_pcvar_num(Cvar_MaxMaps);
  331.             if(0 != Check - StartButton)
  332.             {
  333.                 Check -= StartButton;
  334.                 Check = -Check;
  335.                 set_pcvar_num(Cvar_MaxMaps, get_pcvar_num(Cvar_MaxMaps)-Check+1);
  336.             }
  337.         }
  338.     }
  339.     else if(StartButton > MaxSB)
  340.     {
  341.         StartButton = MaxSB;
  342.         set_pcvar_num(Cvar_MaxMaps, 2);
  343.     }
  344.     else
  345.     {
  346.         StartButton = 1;
  347.     }
  348.    
  349.     if(get_pcvar_num(Cvar_MaxMaps) > MaxChoice)
  350.     {
  351.         set_pcvar_num(Cvar_MaxMaps, MaxChoice);
  352.     }
  353.    
  354.     if(get_pcvar_num(Cvar_MaxMaps) <= 1)
  355.     {
  356.         set_pcvar_num(Cvar_MaxMaps, 2);
  357.     }
  358.    
  359.     if(get_pcvar_float(Cvar_ChangeSpeed) > MaxCSpeed)
  360.     {
  361.         set_pcvar_float(Cvar_ChangeSpeed, MaxCSpeed);
  362.     }
  363.    
  364.     if(get_pcvar_float(Cvar_ChangeSpeed) < 1.0)
  365.     {
  366.         set_pcvar_float(Cvar_ChangeSpeed, 1.0);
  367.     }
  368.    
  369.     if(MapCycle_Lines-get_pcvar_num(Cvar_MaxMaps) < 0)
  370.     {
  371.         new Error[64];
  372.         formatex(Error, charsmax(Error), "Only %d maps in %s file! (Min: %d)", MapCycle_Lines, MapCycle, get_pcvar_num(Cvar_MaxMaps));
  373.         log_amx(Error);
  374.        
  375.         if(MapCycle_Lines > 1)
  376.         {
  377.             set_pcvar_num(Cvar_MaxMaps, MapCycle_Lines);
  378.             formatex(Error, charsmax(Error), "MaxMaps set %d", MapCycle_Lines);
  379.             log_amx(Error);
  380.         }
  381.         else
  382.         {
  383.             Off = 1;
  384.         }
  385.     }
  386.    
  387.     if(TimeLimit == 0 && get_pcvar_num(Cvar_Mod) == 1)
  388.     {
  389.         Off = 1;
  390.     }
  391.    
  392.     if(Off == 0)
  393.     {
  394.         register_event("HLTV", "NewRound", "a", "1=0", "2=0");
  395.         register_logevent("SavePresentTime", 2, "0=World triggered", "1=Game_Commencing");
  396.         register_logevent("RestartRound", 2, "0=World triggered", "1&Restart_Round_");
  397.         register_logevent("RestartRound", 2, "0=World triggered", "1=Game_Commencing");
  398.        
  399.         if(get_pcvar_num(Cvar_Mod) == 0)
  400.         {
  401.             register_logevent("RoundEnd", 2, "0=World triggered", "1=Round_End");
  402.         }
  403.        
  404.         set_task(0.5, "CheckTime", MapID-1, _, _, "b");
  405.        
  406.         if(get_pcvar_num(Cvar_Mod) == 0)
  407.         {  
  408.             register_concmd("amx_dmc_maxrounds", "AddRound");
  409.            
  410.             if(MaxRounds < MinRounds)
  411.             {
  412.                 server_cmd("mp_maxrounds ^"%d^"", MinRounds);
  413.             }
  414.            
  415.             server_cmd("mp_timelimit 0");
  416.            
  417.             MaxRounds = get_cvar_num("mp_maxrounds");
  418.             oRounds = MaxRounds;
  419.         }
  420.        
  421.         if(get_pcvar_num(Cvar_Mod) == 1)
  422.         {
  423.             server_cmd("mp_maxrounds 0");
  424.         }
  425.     }
  426.    
  427.     get_mapname(MapName, charsmax(MapName));
  428.     get_localinfo("lastMap", LastMap, 31);
  429.    
  430.     set_task(random_float(0.1, 0.5), "LoadMaps");
  431.     set_task(random_float(0.1, 0.5), "LoadVoteMaps");
  432.     set_task(random_float(0.1, 0.5), "SavePresentTime");
  433.    
  434.     if(get_pcvar_num(Cvar_Ad) == 1)
  435.     {
  436.         set_task(random_float(100.0, 200.0), "AdvTime", MapID-10, _, _, "b");
  437.     }
  438.    
  439.     toRTV = false;
  440.  
  441.     new Cmd[32];
  442.    
  443.     if(get_pcvar_num(Cvar_PlayedMaps) == 1)
  444.     {
  445.         for(new Num = 0; Num < sizeof MapMenuCommands; Num++)
  446.         {
  447.             format(Cmd, charsmax(Cmd), "say %s", MapMenuCommands[Num]);
  448.             register_clcmd(Cmd, "ShowMapMenu");
  449.         }
  450.     }
  451.    
  452.     for(new Num = 0; Num < sizeof NextMapCommands; Num++)
  453.     {
  454.         format(Cmd, charsmax(Cmd), "say %s", NextMapCommands[Num]);
  455.         register_clcmd(Cmd, "ShowNextMap");
  456.     }
  457.    
  458.     for(new Num = 0; Num < sizeof CurrentMapCommands; Num++)
  459.     {
  460.         format(Cmd, charsmax(Cmd), "say %s", CurrentMapCommands[Num]);
  461.         register_clcmd(Cmd, "ShowCurrentMap");
  462.     }
  463.    
  464.     for(new Num = 0; Num < sizeof TimeLeftCommands; Num++)
  465.     {
  466.         format(Cmd, charsmax(Cmd), "say %s", TimeLeftCommands[Num]);
  467.         register_clcmd(Cmd, "ShowTimeLeft");
  468.     }
  469.    
  470.     for(new Num = 0; Num < sizeof AdminCommands; Num++)
  471.     {
  472.         format(Cmd, charsmax(Cmd), "say %s", AdminCommands[Num]);
  473.         register_clcmd(Cmd, "StartVote");
  474.     }
  475.    
  476.     if(get_pcvar_num(Cvar_RTV) == 1)
  477.     {
  478.         for(new Num = 0; Num < sizeof RTVCommands; Num++)
  479.         {
  480.             format(Cmd, charsmax(Cmd), "say %s", RTVCommands[Num]);
  481.             register_clcmd(Cmd, "RockTheVote");
  482.         }
  483.     }
  484.    
  485.     if(get_pcvar_num(Cvar_Nomination) == 1)
  486.     {
  487.         for(new Num = 0; Num < sizeof NomCommands; Num++)
  488.         {
  489.             format(Cmd, charsmax(Cmd), "say %s", NomCommands[Num]);
  490.             register_clcmd(Cmd, "ShowNomMenu");
  491.         }
  492.     }
  493. }
  494. public AddRound(id) {
  495.     if(get_user_flags(id) & RoundFlag)
  496.     {
  497.         new sRound[32], RoundNum;
  498.         read_args(sRound, charsmax(sRound));
  499.         remove_quotes(sRound);
  500.        
  501.         RoundNum = str_to_num(sRound);
  502.        
  503.         MaxRounds = RoundNum+Rounds;
  504.         set_cvar_num("mp_maxrounds", get_cvar_num("mp_maxrounds")+RoundNum);
  505.     }
  506. }
  507. public SavePresentTime()
  508. {  
  509.     new Hour[32], Minute[32], Second[32];
  510.     format_time(Hour, sizeof Hour - 1, "%H");
  511.     format_time(Minute, sizeof Minute - 1, "%M");
  512.     format_time(Second, sizeof Second  - 1, "%S");
  513.     ElapsedTime[0] = str_to_num(Second);
  514.     ElapsedTime[1] = str_to_num(Minute);
  515.     ElapsedTime[2] = str_to_num(Hour);
  516.     RTVTime[2] = str_to_num(Hour);
  517.     RTVTime[1] = str_to_num(Minute)+get_pcvar_num(Cvar_RTVMinute);
  518.     RTVTime[0] = str_to_num(Second);
  519.    
  520.     if(RTVTime[1] >= 60)
  521.     {
  522.         RTVTime[1] -= 60;
  523.         RTVTime[2]++;
  524.     }
  525. }
  526. public plugin_end()
  527. {
  528.     set_localinfo("lastMap", MapName);
  529. }
  530. public AdvTime()
  531. {
  532.     print_color(0, "%s %L", Prefix, Lang, "ADV", PLUGIN, VERSION);
  533. }
  534. public RestartRound() {
  535.     if(get_pcvar_num(Cvar_Mod) == 1)
  536.         server_cmd("mp_timelimit %d", TimeLimit);
  537.     else
  538.     {
  539.         server_cmd("mp_maxrounds %d", get_cvar_num("mp_maxrounds")+oRounds+Rounds);
  540.         MaxRounds = oRounds+Rounds;
  541.     }
  542.    
  543.     remove_task(MapID+8123);
  544.     remove_task(MapID+1);
  545.     remove_task(MapID+211);
  546.     remove_task(MapID+2);
  547.     remove_task(MapID+3);
  548.     remove_task(MapID+33);
  549.     NeedRV = false;
  550.     ChangeMap = false;
  551.     Begined = false;
  552.     BeginCounter = 0;
  553.     MapCounter = 0;
  554.     Voted = false;
  555.     Revoted = false;
  556.     inProcess = false;
  557.     AllVotes = 0;
  558.     AllRevotes = 0;
  559.     Started = 0;
  560.    
  561.     new Num;
  562.    
  563.     for(Num = 0; Num < 32; Num++)
  564.     {
  565.         if(!is_user_connected(Num))
  566.         {
  567.             continue;
  568.         }
  569.        
  570.         AlreadyNom[Num] = false;
  571.         PlayerMap[Num] = 0;
  572.         PlayerVoted[Num] = false;
  573.         PlayerRevoted[Num] = false;
  574.     }
  575.    
  576.     for(Num = 0; Num < Nom; Num++)
  577.     {
  578.         NomMaps[Num] = "";
  579.     }
  580.    
  581.     for(Num = 0; Num < Max; Num++)
  582.     {
  583.         Nomed[Num] = 0;
  584.     }
  585.    
  586.     for(Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  587.     {
  588.         MapNames[Num] = "";
  589.         MapVote[Num] = 0;
  590.     }
  591.    
  592.     RTV = 0;
  593.     Nom = 0;
  594.     LoadVoteMaps();
  595.     LoadNomMaps();
  596.     Next = "";
  597.     set_task(get_pcvar_float(Cvar_MenuDestroyTime)+1.0, "VotedMapN", MapID+777);
  598.     SavePresentTime();
  599. }
  600. public NewRound() {
  601.     if(get_pcvar_num(Cvar_Mod) == 1)
  602.     {
  603.         if(ChangeMap)
  604.         {
  605.             if(isValidMap(Next))
  606.             {
  607.                 ChangeLevel();
  608.             }
  609.         }
  610.     }
  611.     else if(get_pcvar_num(Cvar_Mod) == 0)
  612.     {
  613.         if(0 >= MaxRounds-Rounds)
  614.         {
  615.             if(ChangeMap)
  616.             {
  617.                 if(isValidMap(Next))
  618.                 {
  619.                     ChangeLevel();
  620.                 }
  621.             }
  622.         }
  623.     }
  624. }
  625. public RoundEnd()
  626. {
  627.     if(MaxRounds-Rounds > 0 && Started == 1)
  628.     {
  629.         Rounds++;
  630.     }
  631.     if(Started == 0)
  632.     {
  633.         Started = 1;
  634.     }
  635. }
  636. public StartVote(id)
  637. {
  638.     if(get_user_flags(id) & StartVoteFlag)
  639.     {
  640.         if(!inProcess || !Voted || !Revoted || !ChangeMap || Off == 0 || !Begined)
  641.         {
  642.             NeedRV = false;
  643.             new String[32];
  644.             float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  645.             replace_all(String, 2, ".", "");
  646.             Begined = true;
  647.             inProcess = true;
  648.            
  649.             if(get_pcvar_num(Cvar_Mod) == 1)
  650.             {
  651.                 server_cmd("mp_timelimit 0");
  652.             }
  653.             else if(get_pcvar_num(Cvar_Mod) == 0)
  654.             {
  655.                 Rounds = MaxRounds;
  656.             }
  657.            
  658.             VoteMod = 2;
  659.            
  660.             if(get_pcvar_num(Cvar_HudMod) == 1)
  661.             {
  662.                 remove_task(MapID+8123);
  663.                 BeginCounter = str_to_num(String);
  664.                 VoteCounter();
  665.             }
  666.             else if(get_pcvar_num(Cvar_HudMod) == 0)
  667.             {
  668.                 set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  669.                 set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  670.                 ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE2", String);
  671.             }
  672.         }
  673.     }
  674. }
  675. public VoteCounter()
  676. {
  677.     if(BeginCounter > 0)
  678.     {
  679.         new String[32];
  680.         num_to_str(BeginCounter, String, 2);
  681.        
  682.         if(get_pcvar_num(Cvar_CountSound) == 1)
  683.         {
  684.             new CountSound[32];
  685.             num_to_word(BeginCounter, CountSound, 31);
  686.            
  687.             if(get_pcvar_num(Cvar_VoteSound) == 1)
  688.                 client_cmd(0, "spk ^"fvox/%s^"", CountSound);
  689.         }
  690.        
  691.         set_hudmessage(R, G, B, -1.0, 0.20, 0, 0.1, CHUD);
  692.        
  693.         if(VoteMod == 4)
  694.         {
  695.             ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE4", String);
  696.         }
  697.         else if(VoteMod == 3)
  698.         {
  699.             ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String);
  700.         }
  701.         else if(VoteMod == 2)
  702.         {
  703.             ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE2", String);
  704.         }
  705.         else if(VoteMod == 1)
  706.         {
  707.             ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE1", String);
  708.         }
  709.        
  710.         BeginCounter--;
  711.         set_task(1.0, "VoteCounter", MapID+8123);
  712.     }
  713.     else
  714.     {
  715.         if(NeedRV)
  716.         {
  717.             StartRevote();
  718.         }
  719.         else
  720.         {
  721.             StartMapChooser();
  722.         }
  723.     }
  724. }
  725. public RockTheVote(id)
  726. {
  727.     new Hour[32], Minute[32], Time[2];
  728.     format_time(Hour, sizeof Hour - 1, "%H");
  729.     format_time(Minute, sizeof Minute - 1, "%M");
  730.     Time[0] = str_to_num(Hour);
  731.     Time[1] = str_to_num(Minute);
  732.    
  733.     if(Time[0] > RTVTime[2]
  734.     || Time[0] == RTVTime[2] && Time[1] >= RTVTime[1])
  735.     toRTV = true;
  736.    
  737.     if(PlayerRTV[id] || Voted || inProcess || !toRTV || Off == 1)
  738.     {
  739.         if(!toRTV)
  740.         {
  741.             if(RTVTime[2] > Time[0])
  742.             {
  743.                 print_color(id, "%s %L", Prefix, Lang, "RTV2", (RTVTime[1]+60)-Time[1]);
  744.             }
  745.             else
  746.             {
  747.                 print_color(id, "%s %L", Prefix, Lang, "RTV2", RTVTime[1]-Time[1]);
  748.             }
  749.         }
  750.        
  751.         if(PlayerRTV[id])
  752.         {
  753.             print_color(id, "%s %L", Prefix, Lang, "RTV1");
  754.         }
  755.        
  756.         return PLUGIN_HANDLED;
  757.     }
  758.    
  759.     PlayerRTV[id] = true;
  760.     RTV++;
  761.    
  762.     new Players[32], Num;
  763.     get_players(Players, Num, "c");
  764.    
  765.     if(RTV >= Num/get_pcvar_num(Cvar_RTVMin))
  766.     {
  767.         new String[32];
  768.         float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  769.         replace_all(String, 2, ".", "");
  770.         Begined = true;
  771.         inProcess = true;
  772.        
  773.         if(get_pcvar_num(Cvar_Mod) == 1)
  774.         {
  775.             server_cmd("mp_timelimit 0");
  776.         }
  777.         else if(get_pcvar_num(Cvar_Mod) == 0)
  778.         {
  779.             Rounds = MaxRounds;
  780.         }
  781.        
  782.         VoteMod = 1;
  783.        
  784.         if(get_pcvar_num(Cvar_HudMod) == 1)
  785.         {
  786.             remove_task(MapID+8123);
  787.             BeginCounter = str_to_num(String);
  788.             VoteCounter();
  789.         }
  790.         else if(get_pcvar_num(Cvar_HudMod) == 0)
  791.         {
  792.             set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  793.             set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  794.             ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE1", String);
  795.         }
  796.     }
  797.     else
  798.     {
  799.         print_color(0, "%s %L", Prefix, Lang, "RTV3", (Num/get_pcvar_num(Cvar_RTVMin))-RTV);
  800.     }
  801.    
  802.     return PLUGIN_HANDLED;
  803. }
  804. public Extend()
  805. {
  806.     NeedRV = false;
  807.     ChangeMap = false;
  808.     Begined = false;
  809.     Voted = false;
  810.     Revoted = false;
  811.     inProcess = false;
  812.     AllVotes = 0;
  813.     AllRevotes = 0;
  814.    
  815.     new Num;
  816.    
  817.     for(Num = 0; Num < 32; Num++)
  818.     {
  819.         if(!is_user_connected(Num))
  820.         {
  821.             continue;
  822.         }
  823.        
  824.         AlreadyNom[Num] = false;
  825.         PlayerMap[Num] = 0;
  826.         PlayerVoted[Num] = false;
  827.         PlayerRevoted[Num] = false;
  828.     }
  829.    
  830.     for(Num = 0; Num < Nom; Num++)
  831.     {
  832.         NomMaps[Num] = "";
  833.     }
  834.    
  835.     for(Num = 0; Num < Max; Num++)
  836.     {
  837.         Nomed[Num] = 0;
  838.     }
  839.    
  840.     for(Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  841.     {
  842.         MapNames[Num] = "";
  843.         MapVote[Num] = 0;
  844.     }
  845.    
  846.     RTV = 0;
  847.     Nom = 0;
  848.     LoadVoteMaps();
  849.     LoadNomMaps();
  850.     Next = "";
  851.     set_task(get_pcvar_float(Cvar_MenuDestroyTime)+1.0, "VotedMapN", MapID+777);
  852. }
  853. public VotedMapN()
  854. {
  855.     VotedMap = "";
  856. }
  857. public CheckTime()
  858. {
  859.     static Time[3];
  860.     Time[0] = get_timeleft();
  861.     Time[1] = Time[0] / 60;
  862.     Time[2] = Time[1] / 60;
  863.     Time[0] = Time[0] - Time[1] * 60;
  864.     Time[1] = Time[1] - Time[2] * 60;
  865.    
  866.     if(get_pcvar_num(Cvar_Mod) == 1)
  867.     {
  868.         if(Time[1] <= get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess)
  869.         {
  870.             new String[32];
  871.             float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  872.             replace_all(String, 2, ".", "");
  873.            
  874.             VoteMod = 3;
  875.            
  876.             if(get_pcvar_num(Cvar_HudMod) == 1)
  877.             {
  878.                 remove_task(MapID+8123);
  879.                 BeginCounter = str_to_num(String);
  880.                 VoteCounter();
  881.             }
  882.             else if(get_pcvar_num(Cvar_HudMod) == 0)
  883.             {
  884.                 set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  885.                 set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  886.                 ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String);
  887.             }
  888.        
  889.             Begined = true;
  890.             inProcess = true;
  891.         }
  892.    
  893.         if(Time[0] <= 3 && Time[1] == 0 && Time[2] == 0)
  894.         {
  895.             server_cmd("mp_timelimit 0");
  896.             if(!ChangeMap && Voted && !inProcess && !Revoted
  897.             || !ChangeMap && Revoted && !inProcess && !Voted)
  898.             {
  899.                 if(get_pcvar_num(Cvar_OnlyNextRound) == 1)
  900.                 {
  901.                     print_color(0, "%s %L", Prefix, Lang, "MCAR");
  902.                     set_cvar_string("amx_nextmap", Next);
  903.                     ChangeMap = true;
  904.                 }
  905.                 else if(get_pcvar_num(Cvar_OnlyNextRound) == 0)
  906.                 {
  907.                     ChangeMap = true;
  908.                     set_cvar_string("amx_nextmap", Next);
  909.                     ChangeLevel();
  910.                 }
  911.             }
  912.         }
  913.     }
  914.     else if(get_pcvar_num(Cvar_Mod) == 0)
  915.     {
  916.         if(Rounds == MaxRounds-get_pcvar_num(Cvar_VoteVariable) && !Begined && !inProcess)
  917.         {
  918.             new String[32];
  919.             float_to_str(get_pcvar_float(Cvar_WaitVoteMenuTime), String, 2);
  920.             replace_all(String, 2, ".", "");
  921.            
  922.             VoteMod = 3;
  923.            
  924.             if(get_pcvar_num(Cvar_HudMod) == 1)
  925.             {
  926.                 remove_task(MapID+8123);
  927.                 BeginCounter = str_to_num(String);
  928.                 VoteCounter();
  929.             }
  930.             else if(get_pcvar_num(Cvar_HudMod) == 0)
  931.             {
  932.                 set_task(get_pcvar_float(Cvar_WaitVoteMenuTime), "StartMapChooser", MapID+3);
  933.                 set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  934.                 ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE3", String);
  935.             }
  936.            
  937.             Begined = true;
  938.             inProcess = true;
  939.         }
  940.        
  941.         if(Rounds >= MaxRounds && !ChangeMap && Voted
  942.         || Rounds >= MaxRounds && !ChangeMap && Revoted)
  943.         {
  944.             print_color(0, "%s %L", Prefix, Lang, "MCAR");
  945.             set_cvar_string("amx_nextmap", Next);
  946.             ChangeMap = true;
  947.         }
  948.     }
  949.    
  950.     if(!toRTV)
  951.     {
  952.         new Hour[32], Minute[32];
  953.         format_time(Hour, sizeof Hour - 1, "%H");
  954.         format_time(Minute, sizeof Minute - 1, "%M");
  955.         Time[2] = str_to_num(Hour);
  956.         Time[1] = str_to_num(Minute);
  957.        
  958.         if(RTVTime[2] == Time[2] && RTVTime[1]+get_pcvar_num(Cvar_RTVMinute) <= Time[1])
  959.         {
  960.             toRTV = true;
  961.         }
  962.     }
  963. }
  964. public StartMapChooser()
  965. {
  966.     remove_task(MapID+3);
  967.     ChangeMap = false;
  968.     Voted = false;
  969.     Revoted = false;
  970.     MapCounter = get_pcvar_num(Cvar_VoteCounter);
  971.     Counter();
  972.     VoteMod = 0;
  973.     if(get_pcvar_num(Cvar_VoteSound) == 1)
  974.     {
  975.         client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2));
  976.     }
  977. }
  978. public Change()
  979. {
  980.     if(ChangeMap)
  981.     {
  982.         server_cmd("changelevel ^"%s^"", Next);
  983.     }
  984. }
  985. public ShowInfo(id)
  986. {
  987.     if(get_user_flags(id) & InfoFlag)
  988.     {
  989.         client_print(id, print_console, "* ------------");
  990.         client_print(id, print_console, "* %s - v%s *", PLUGIN, VERSION);
  991.         client_print(id, print_console, "* ------------");
  992.         client_print(id, print_console, "* Last map: %s", LastMap);
  993.         client_print(id, print_console, "* Next map: %s", Next);
  994.         client_print(id, print_console, "* Total maps: %d", NomNum);
  995.         client_print(id, print_console, "* ------------");
  996.         client_print(id, print_console, "* Original timeleft: %d", TimeLimit);
  997.         client_print(id, print_console, "* Max Rounds: %d", oRounds);
  998.         client_print(id, print_console, "* ------------");
  999.         client_print(id, print_console, "* Total played count: %d", PlayedCount);
  1000.         client_print(id, print_console, "* ------------");
  1001.     }
  1002. }
  1003. public ShowTimeLeft()
  1004. {
  1005.     if(get_pcvar_num(Cvar_Mod) == 1)
  1006.     {
  1007.         static Time[3];
  1008.         Time[0] = get_timeleft();
  1009.         Time[1] = Time[0] / 60;
  1010.         Time[2] = Time[1] / 60;
  1011.         Time[0] = Time[0] - Time[1] * 60;
  1012.         Time[1] = Time[1] - Time[2] * 60;
  1013.         if(ChangeMap && Voted && Begined && !Revoted || ChangeMap && Revoted && Begined && !Voted)
  1014.         {
  1015.             print_color(0, "%s!y %L!t !t-!y:!t-", Prefix, Lang, "TL");
  1016.         }
  1017.         else
  1018.         {
  1019.             if(Time[2] > 0 && Time[1] > 0 && Time[0] > 0)
  1020.                 print_color(0, "%s!y %L!t %d%!y:!t%02d!y:!t%02d", Prefix, Lang, "TL", Time[2], Time[1], Time[0]);
  1021.             else if(Time[1] > 0 && Time[0] > 0)
  1022.                 print_color(0, "%s!y %L!t %02d!y:!t%02d", Prefix, Lang, "TL", Time[1], Time[0]);
  1023.             else
  1024.                 print_color(0, "%s!y %L!t !t-!y:!t-", Prefix, Lang, "TL");
  1025.         }
  1026.     }
  1027.     else if(get_pcvar_num(Cvar_Mod) == 0)
  1028.     {
  1029.         print_color(0, "%s!t %L", Prefix, Lang, "RM", MaxRounds-Rounds);
  1030.     }
  1031. }
  1032. public ShowNextMap()
  1033. {
  1034.     new Status[2][32];
  1035.     formatex(Status[0], 31, "%L", Lang, "NYT");
  1036.     formatex(Status[1], 31, "%L", Lang, "VIP");
  1037.     if(isValidMap(Next))
  1038.     print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Next);
  1039.     else
  1040.     {
  1041.         if(inProcess)
  1042.         {
  1043.             print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Status[1]);
  1044.         }
  1045.         else
  1046.         {
  1047.             print_color(0, "%s!y %L!t %s", Prefix, Lang, "NM", Status[0]);
  1048.         }
  1049.     }
  1050. }
  1051. public ShowCurrentMap()
  1052. {
  1053.     print_color(0, "%s!y %L", Prefix, Lang, "CM", MapName);
  1054. }
  1055. public Counter()
  1056. {
  1057.     if(MapCounter < 1)
  1058.     {
  1059.         Voted = true;
  1060.        
  1061.         inProcess = false;
  1062.        
  1063.         CheckVotes();
  1064.        
  1065.         for(new Num; Num < 32; Num++)
  1066.         {
  1067.             if(!is_user_connected(Num))
  1068.                 continue;
  1069.                
  1070.             ShowVoteMenu(Num);
  1071.         }
  1072.     }
  1073.     else
  1074.     {
  1075.         MapCounter--;
  1076.        
  1077.         set_task(1.0, "Counter", MapID+1);
  1078.        
  1079.         for(new Num; Num < 32; Num++)
  1080.         {
  1081.             if(!is_user_connected(Num))
  1082.                 continue;
  1083.                
  1084.             ShowVoteMenu(Num);
  1085.         }
  1086.     }
  1087. }
  1088. public NextMap()
  1089. {
  1090.     remove_task(MapID-4);
  1091.    
  1092.     if(!NeedRV)
  1093.     {
  1094.         ShowNextMap();
  1095.     }
  1096.    
  1097.     set_task(get_pcvar_float(Cvar_MenuDestroyTime), "DestroyVoteMenu", MapID-4);
  1098. }
  1099. public DestroyVoteMenu()
  1100. {
  1101.     for(new Num; Num < 32; Num++)
  1102.     {
  1103.         if(!is_user_connected(Num))
  1104.             continue;
  1105.            
  1106.         show_menu(Num, 0, "^n", 1);
  1107.     }
  1108. }
  1109. public ShowVoteMenu(id)
  1110. {  
  1111.     if(equal(VotedMap, MapName))
  1112.     {
  1113.         DestroyVoteMenu();
  1114.         return;
  1115.     }
  1116.    
  1117.     new Menu[512], String[128], Key, MapPercent[MaxChoice];
  1118.    
  1119.     AllVotes = 0;
  1120.    
  1121.     for(new All; All < get_pcvar_num(Cvar_MaxMaps); All++)
  1122.     {
  1123.         AllVotes += MapVote[All];
  1124.     }
  1125.    
  1126.     formatex(String, 127, "%L", Lang, "CHONM", AllVotes);
  1127.     add(Menu, 511, String);
  1128.    
  1129.     for(new Num; Num < get_pcvar_num(Cvar_MaxMaps); Num++)
  1130.     {
  1131.         if(MapVote[Num] > 0)
  1132.         MapPercent[Num] = ((MapVote[Num]*100)/(AllVotes));
  1133.         if(equal(MapName, MapNames[Num]))
  1134.         formatex(String, 127, "%L", Lang, "MOP5", Num+StartButton, MapNames[Num], MapVote[Num], MapPercent[Num]);
  1135.         else
  1136.         formatex(String, 127, "%L", Lang, "MOPD", Num+StartButton, MapNames[Num], MapVote[Num], MapPercent[Num]);
  1137.         add(Menu, 511, String);
  1138.     }
  1139.    
  1140.     if(Voted)
  1141.     formatex(String, 127, "%L", Lang, "MNM", Next);
  1142.     else if(!Revoted && !Voted && MapCounter <= 0 && NeedRV)
  1143.     formatex(String, 127, "%L", Lang, "MNRE");
  1144.     else
  1145.     formatex(String, 127, "%L", Lang, "MCSL", MapCounter);
  1146.    
  1147.     add(Menu, 511, String);
  1148.    
  1149.     Key = (-1^(-1<<(get_pcvar_num(Cvar_MaxMaps)+StartButton)));
  1150.    
  1151.     show_menu(id, Key, Menu, -1, "VoteMenu");
  1152. }
  1153. public VoteMenuKeys(id, Key)
  1154. {
  1155.     if(PlayerVoted[id] || Voted)
  1156.     {
  1157.         if(PlayerVoted[id])
  1158.         {
  1159.             print_color(id, "%s %L", Prefix, Lang, "AVO");
  1160.         }
  1161.         return;
  1162.     }
  1163.    
  1164.     if(!Begined || NeedRV)
  1165.     {
  1166.         show_menu(id, 0, "^n", 1);
  1167.         return;
  1168.     }
  1169.    
  1170.     new PlayerName[32];
  1171.     get_user_name(id, PlayerName, 31);
  1172.    
  1173.     Key -= StartButton-1;
  1174.     if(Key < get_pcvar_num(Cvar_MaxMaps) && Key > -1)
  1175.     {
  1176.         PlayerMap[id] = Key;
  1177.         PlayerVoted[id] = true;
  1178.         print_color(0, "%s %L", Prefix, Lang, "PCHO", PlayerName, MapNames[Key]);
  1179.         MapVote[Key]++;
  1180.         if(get_pcvar_num(Cvar_ChooseSound) == 1)
  1181.         {
  1182.             client_cmd(0, "spk buttons/lightswitch2");
  1183.         }
  1184.     }
  1185.    
  1186.     ShowVoteMenu(id);
  1187. }
  1188. public LoadVoteMaps()
  1189. {
  1190.     new Line[128], Map[32], Len, Used[Max], Loaded, File, Found;
  1191.    
  1192.     File = fopen(MapCycle, "rt");
  1193.    
  1194.     if(File)
  1195.     {
  1196.        
  1197.         for(new lNum; lNum < Max; lNum++)
  1198.         {
  1199.             Found = 0;
  1200.            
  1201.             new RandomMap = random(MapCycle_Lines);
  1202.             read_file(MapCycle, RandomMap, Line, 127, Len);
  1203.            
  1204.             parse(Line, Map, 31);
  1205.            
  1206.             for(new mc; mc < MaxChoice; mc++)
  1207.             {
  1208.                 if(equali(Map, MapNames[mc]))
  1209.                 {
  1210.                     Found = 1;
  1211.                 }
  1212.             }
  1213.            
  1214.             if(Found == 1 || equali(Map, MapName))
  1215.             {
  1216.                 continue;
  1217.             }
  1218.            
  1219.             if(Used[RandomMap] == 0 && Loaded < get_pcvar_num(Cvar_MaxMaps)-1 && isValidMap(Map))
  1220.             {
  1221.                 Used[RandomMap] = 1;
  1222.                 copy(MapNames[Loaded], sizeof Map - 1, Map);
  1223.                 Loaded++;
  1224.             }
  1225.         }
  1226.        
  1227.     }
  1228.    
  1229.     fclose(File);
  1230.    
  1231.     MapNames[get_pcvar_num(Cvar_MaxMaps)-1] = MapName;
  1232.     set_task(0.1, "LoadNomMaps", MapID+69);
  1233. }
  1234. public LoadNomMaps()
  1235. {
  1236.     new Line[128], Map[32], File, Found;
  1237.    
  1238.     File = fopen(MapCycle, "rt");
  1239.    
  1240.     while(!feof(File))
  1241.     {
  1242.         fgets(File, Line, charsmax(Line));
  1243.            
  1244.         parse(Line, Map, 31);
  1245.        
  1246.         for(new nn; nn < NomNum; nn++)
  1247.         {
  1248.             if(equali(Map, NomMaps[nn]))
  1249.             {
  1250.                 Found = 1;
  1251.             }
  1252.         }
  1253.        
  1254.         if(Found == 1)
  1255.         {
  1256.             continue;
  1257.         }
  1258.        
  1259.         if(NomNum < MapCycle_Lines && isValidMap(Map))
  1260.         {
  1261.             copy(NomMaps[NomNum], sizeof Map - 1, Map);
  1262.             NomNum++;
  1263.         }
  1264.     }
  1265.    
  1266.     fclose(File);
  1267. }
  1268. public ShowMapMenu(id)
  1269. {
  1270.     new Menu, MenuLine[128], MapDatas[2][32], String[32];
  1271.     formatex(MenuLine, 127, "%L", Lang, "MPNM");
  1272.     Menu = menu_create(MenuLine, "MapKey");
  1273.    
  1274.     for(new MapNum; MapNum < MapFile_Lines-1; MapNum++)
  1275.     {
  1276.         parse(Maps[MapNum], MapDatas[0], 31, MapDatas[1], 31);
  1277.         formatex(MenuLine, 127, "%L", Lang, "PMPM", MapDatas[0], MapDatas[1]);
  1278.         num_to_str(MapNum, String, 2);
  1279.         menu_additem(Menu, MenuLine, String);
  1280.     }
  1281.    
  1282.     formatex(MenuLine, 127, "%L", Lang, "MNEXT");
  1283.     menu_setprop(Menu, MPROP_NEXTNAME, MenuLine);
  1284.     formatex(MenuLine, 127, "%L", Lang, "MEXIT");
  1285.     menu_setprop(Menu, MPROP_EXITNAME, MenuLine);
  1286.     formatex(MenuLine, 127, "%L", Lang, "MBACK");
  1287.     menu_setprop(Menu, MPROP_BACKNAME, MenuLine);
  1288.     menu_setprop(Menu, MPROP_PERPAGE, PMPage);
  1289.     menu_display(id, Menu);
  1290. }
  1291. public MapKey(id, Menu, Item)
  1292. {
  1293.     new MenuNum[2], Data[2][32], Key;
  1294.     menu_item_getinfo(Menu, Item, MenuNum[0], Data[0], charsmax(Data), Data[1], charsmax(Data), MenuNum[1]);
  1295.    
  1296.     Key = str_to_num(Data[0]);
  1297.    
  1298.     if(Item == MENU_EXIT)
  1299.     {
  1300.         menu_destroy(Menu);
  1301.         return;
  1302.     }
  1303.    
  1304.     new MapDatas[2][32];
  1305.     parse(Maps[Key], MapDatas[0], 31, MapDatas[1], 31);
  1306.    
  1307.     print_color(id, "%s %L", Prefix, Lang, "MNP", MapDatas[0], MapDatas[1]);
  1308. }
  1309. public ShowNomMenu(id)
  1310. {  
  1311.     if(Nom >= get_pcvar_num(Cvar_MaxMaps)-1)
  1312.     {
  1313.         print_color(id, "%s %L", Prefix, Lang, "NOMT");
  1314.         return;
  1315.     }
  1316.     if(AlreadyNom[id])
  1317.     {
  1318.         print_color(id, "%s %L", Prefix, Lang, "NOMN");
  1319.         return;
  1320.     }
  1321.     if(inProcess || Voted || Revoted)
  1322.     {
  1323.         return;
  1324.     }
  1325.    
  1326.     new Menu, MenuLine[128], Already;
  1327.     formatex(MenuLine, 127, "%L", Lang, "NOMM");
  1328.     Menu = menu_create(MenuLine, "NomKey");
  1329.    
  1330.     for(new MapNum; MapNum < MapCycle_Lines; MapNum++)
  1331.     {
  1332.         if(Nomed[MapNum] == 1)
  1333.             continue;
  1334.            
  1335.         Already = 0;
  1336.        
  1337.         for(new mc; mc < MaxChoice; mc++)
  1338.         {
  1339.             if(equali(NomMaps[MapNum], MapNames[mc]))
  1340.             {
  1341.                 Already = 1;
  1342.             }
  1343.         }
  1344.        
  1345.         if(Already == 1)
  1346.             continue;
  1347.            
  1348.         if(equali(NomMaps[MapNum], MapName))
  1349.             continue;
  1350.            
  1351.         if(!isValidMap(NomMaps[MapNum]))
  1352.             continue;
  1353.        
  1354.         formatex(MenuLine, 127, "%L", Lang, "NOM1", NomMaps[MapNum]);
  1355.         menu_additem(Menu, MenuLine, NomMaps[MapNum]);
  1356.     }
  1357.    
  1358.     formatex(MenuLine, 127, "%L", Lang, "MNEXT");
  1359.     menu_setprop(Menu, MPROP_NEXTNAME, MenuLine);
  1360.     formatex(MenuLine, 127, "%L", Lang, "MEXIT");
  1361.     menu_setprop(Menu, MPROP_EXITNAME, MenuLine);
  1362.     formatex(MenuLine, 127, "%L", Lang, "MBACK");
  1363.     menu_setprop(Menu, MPROP_BACKNAME, MenuLine);
  1364.     menu_display(id, Menu);
  1365. }
  1366. public NomKey(id, Menu, Item)
  1367. {
  1368.     if(Nom > get_pcvar_num(Cvar_MaxMaps)-1)
  1369.     {
  1370.         print_color(id, "%s %L", Prefix, Lang, "NOMT");
  1371.         return PLUGIN_HANDLED;
  1372.     }
  1373.     if(AlreadyNom[id])
  1374.     {
  1375.         print_color(id, "%s %L", Prefix, Lang, "NOMN");
  1376.         return PLUGIN_HANDLED;
  1377.     }
  1378.     if(inProcess || Voted)
  1379.     {
  1380.         return PLUGIN_HANDLED;
  1381.     }
  1382.    
  1383.     new MenuNum[2], Data_1[32], Data_2[32], PlayerName[32];
  1384.     menu_item_getinfo(Menu, Item, MenuNum[0], Data_1, charsmax(Data_1), Data_2, charsmax(Data_2), MenuNum[1]);
  1385.    
  1386.     if(Item == MENU_EXIT)
  1387.     {
  1388.         menu_destroy(Menu);
  1389.         return PLUGIN_HANDLED;
  1390.     }
  1391.            
  1392.     new Already = 0;
  1393.  
  1394.     for(new mc; mc < MaxChoice; mc++)
  1395.     {
  1396.         if(equali(Data_1, MapNames[mc]))
  1397.         {
  1398.             Already = 1;
  1399.         }
  1400.     }
  1401.    
  1402.     if(Already == 1 || !isValidMap(Data_1) || Nomed[Nom] == 1)
  1403.     return PLUGIN_HANDLED;
  1404.    
  1405.     get_user_name(id, PlayerName, charsmax(PlayerName));
  1406.    
  1407.     print_color(0, "%s %L", Prefix, Lang, "NOMC", PlayerName, Data_1);
  1408.    
  1409.     if(get_pcvar_num(Cvar_NomChance) >= (random_num(1,100)))
  1410.     {
  1411.         MapNames[Nom] = Data_1;
  1412.     }
  1413.    
  1414.     MapNames[Nom] = Data_1;
  1415.     Nomed[Nom] = 1;
  1416.     Nom++;
  1417.     AlreadyNom[id] = true;
  1418.    
  1419.     return PLUGIN_HANDLED;
  1420. }
  1421. public LoadMapMenu()
  1422. {
  1423.     new Line[64], File, Len;
  1424.    
  1425.     File = fopen(MapFile, "rt");
  1426.    
  1427.     if(File)
  1428.     {
  1429.         for(new MapNum; MapNum < MapFile_Lines; MapNum++)
  1430.         {
  1431.             read_file(MapFile, MapNum, Line, 63, Len);
  1432.            
  1433.             if(Line[0] == ';' || strlen(Line) < 2)
  1434.                 continue;
  1435.                
  1436.             remove_quotes(Line);
  1437.            
  1438.             copy(Maps[MapNum], sizeof Line - 1, Line);
  1439.         }
  1440.     }
  1441.    
  1442.     fclose(File);
  1443. }
  1444. public LoadMaps()
  1445. {
  1446.     remove_task(MapID);
  1447.    
  1448.     new Line[64], File, MapDatas[2][32], LineNum, MapNum, bool:Found;
  1449.     File = fopen(MapFile, "rt");
  1450.    
  1451.     while(!feof(File))
  1452.     {
  1453.         fgets(File, Line, charsmax(Line));
  1454.        
  1455.         if(Line[0] == ';' || strlen(Line) < 2)
  1456.             continue;
  1457.            
  1458.         parse(Line, MapDatas[0], 31, MapDatas[1], 31);
  1459.        
  1460.         PlayedCount += str_to_num(MapDatas[1]);
  1461.        
  1462.         if(equal(MapDatas[0], MapName))
  1463.         {
  1464.             MapNum = str_to_num(MapDatas[1])+1;
  1465.             format(Line, sizeof Line - 1, "^"%s^" ^"%d^"", MapName, MapNum);
  1466.             write_file(MapFile, Line, LineNum);
  1467.             Found = true;
  1468.         }
  1469.        
  1470.         LineNum++;
  1471.     }
  1472.    
  1473.     fclose(File);
  1474.    
  1475.     if(!Found)
  1476.     {
  1477.         NewMap();
  1478.     }
  1479.    
  1480.     set_task(0.5, "LoadMapMenu", MapID);
  1481. }
  1482. public NewMap()
  1483. {
  1484.     new Line[32], File;
  1485.     File = fopen(MapFile, "at+");
  1486.     formatex(Line, sizeof Line - 1, "^"%s^" ^"%d^"^n", MapName, 1);
  1487.     fprintf(File, Line);
  1488.     fclose(File);
  1489. }
  1490. public StartRevoteTime()
  1491. {
  1492.     new String[32];
  1493.     float_to_str(get_pcvar_float(Cvar_WaitRevoteMenuTime), String, 2);
  1494.     replace_all(String, 2, ".", "");
  1495.     VoteMod = 4;
  1496.     if(get_pcvar_num(Cvar_HudMod) == 1)
  1497.     {
  1498.         remove_task(MapID+8123);
  1499.         BeginCounter = str_to_num(String);
  1500.         VoteCounter();
  1501.     }
  1502.     else if(get_pcvar_num(Cvar_HudMod) == 0)
  1503.     {
  1504.         set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevote", MapID+33);
  1505.         set_hudmessage(R, G, B, -1.0, 0.20, 0, 6.0, get_pcvar_float(Cvar_WaitVoteMenuTime));
  1506.         ShowSyncHudMsg(0, sHudObj, "%L", Lang, "VOTE4", String);
  1507.     }
  1508.    
  1509.     inProcess = true;
  1510. }
  1511. public StartRevote()
  1512. {
  1513.     Voted = false;
  1514.     Begined = true;
  1515.     MapCounter = get_pcvar_num(Cvar_VoteCounter);
  1516.     ReCounter();
  1517.     if(get_pcvar_num(Cvar_VoteSound) == 1)
  1518.         client_cmd(0, "spk Gman/Gman_Choose%i", random_num(1, 2));
  1519. }
  1520. public ShowRevoteMenu(id)
  1521. {
  1522.     if(equal(VotedMap, MapName))
  1523.     {
  1524.         DestroyVoteMenu();
  1525.         return;
  1526.     }
  1527.    
  1528.     new Menu[512], String[128], Key, MapPercent[MaxChoice];
  1529.    
  1530.     AllRevotes = 0;
  1531.    
  1532.     for(new All; All < 2; All++)
  1533.     {
  1534.         AllRevotes += RevoteCounts[All];
  1535.     }
  1536.    
  1537.     formatex(String, 127, "%L", Lang, "CHONM", AllRevotes);
  1538.     add(Menu, 511, String);
  1539.    
  1540.     for(new Num; Num < 2; Num++)
  1541.     {
  1542.         if(RevoteCounts[Num] > 0)
  1543.         MapPercent[Num] = ((RevoteCounts[Num]*100)/(AllRevotes));
  1544.         formatex(String, 127, "%L", Lang, "MOPD", Num+StartButton, MapRevote[Num], RevoteCounts[Num], MapPercent[Num]);
  1545.         add(Menu, 511, String);
  1546.     }
  1547.    
  1548.     if(!Revoted)
  1549.     formatex(String, 127, "%L", Lang, "MCSL", MapCounter);
  1550.     else
  1551.     formatex(String, 127, "%L", Lang, "MNM", Next);
  1552.    
  1553.     add(Menu, 511, String);
  1554.    
  1555.     Key = (-1^(-1<<(1+StartButton)));
  1556.    
  1557.     show_menu(id, Key, Menu, -1, "RevoteMenu");
  1558. }
  1559. public RevoteMenuKeys(id, Key)
  1560. {
  1561.     if(PlayerRevoted[id] || Revoted)
  1562.     {
  1563.         if(PlayerVoted[id])
  1564.             print_color(id, "%s %L", Prefix, Lang, "AVO");
  1565.        
  1566.         ShowRevoteMenu(id);
  1567.         return;
  1568.     }
  1569.    
  1570.     if(!Begined)
  1571.     {
  1572.         show_menu(id, 0, "^n", 1);
  1573.         return;
  1574.     }
  1575.    
  1576.     new PlayerName[32];
  1577.     get_user_name(id, PlayerName, 31);
  1578.    
  1579.     Key -= StartButton-1;
  1580.    
  1581.     if(Key <= 2 && Key > -1)
  1582.     {
  1583.         PlayerMap[id] = Key;
  1584.         PlayerRevoted[id] = true;
  1585.         print_color(0, "%s %L", Prefix, Lang, "PCHO", PlayerName, MapRevote[Key]);
  1586.         RevoteCounts[Key]++;
  1587.         if(get_pcvar_num(Cvar_ChooseSound) == 1)
  1588.         {
  1589.             client_cmd(0, "spk buttons/lightswitch2");
  1590.         }
  1591.     }
  1592.    
  1593.     ShowRevoteMenu(id);
  1594. }
  1595. public ReCounter()
  1596. {
  1597.     if(MapCounter < 1)
  1598.     {
  1599.         Revoted = true;
  1600.        
  1601.         inProcess = false;
  1602.        
  1603.         CheckRevotes();
  1604.        
  1605.         for(new Num; Num < 32; Num++)
  1606.         {
  1607.             if(!is_user_connected(Num))
  1608.                 continue;
  1609.                
  1610.             ShowRevoteMenu(Num);
  1611.         }
  1612.     }
  1613.     else
  1614.     {
  1615.         MapCounter--;
  1616.        
  1617.         set_task(1.0, "ReCounter", MapID+211);
  1618.        
  1619.         for(new Num; Num < 32; Num++)
  1620.         {
  1621.             if(!is_user_connected(Num))
  1622.                 continue;
  1623.                
  1624.             ShowRevoteMenu(Num);
  1625.         }
  1626.     }
  1627. }
  1628. public client_disconnect(id)
  1629. {
  1630.     if(PlayerRTV[id])
  1631.     {
  1632.         RTV--;
  1633.         PlayerRTV[id] = false;
  1634.     }
  1635.    
  1636.     if(PlayerVoted[id])
  1637.     {
  1638.         MapVote[PlayerMap[id]]--;
  1639.         PlayerVoted[id] = false;
  1640.     }
  1641.    
  1642.     if(PlayerRevoted[id])
  1643.     {
  1644.         RevoteCounts[PlayerMap[id]]--;
  1645.         PlayerRevoted[id] = false;
  1646.     }
  1647.    
  1648.     PlayerMap[id] = 0;
  1649.    
  1650. }
  1651. stock ChangeLevel()
  1652. {
  1653.     set_task(get_pcvar_float(Cvar_ChangeSpeed), "Change", MapID+2);
  1654.     message_begin(MSG_ALL, SVC_INTERMISSION);
  1655.     message_end();
  1656. }
  1657. stock print_color(const id, const input[], any:...)
  1658. {
  1659.     new Count = 1, Players[32];
  1660.     static Msg[191];
  1661.     vformat(Msg, 190, input, 3);
  1662.    
  1663.     replace_all(Msg, 190, "!g", "^4");
  1664.     replace_all(Msg, 190, "!y", "^1");
  1665.     replace_all(Msg, 190, "!t", "^3");
  1666.  
  1667.     if(id) Players[0] = id; else get_players(Players, Count, "ch");
  1668.     {
  1669.         for (new i = 0; i < Count; i++)
  1670.         {
  1671.             if (is_user_connected(Players[i]))
  1672.             {
  1673.                 message_begin(MSG_ONE_UNRELIABLE, SayText, _, Players[i]);
  1674.                 write_byte(Players[i]);
  1675.                 write_string(Msg);
  1676.                 message_end();
  1677.             }
  1678.         }
  1679.     }
  1680.     return PLUGIN_HANDLED;
  1681. }
  1682. stock CheckVotes() {
  1683.    
  1684.     if(AllVotes == 0)
  1685.     {
  1686.         Revoted = false;
  1687.         Next = MapNames[0];
  1688.         set_cvar_string("amx_nextmap", Next);
  1689.         NextMap();
  1690.         return PLUGIN_HANDLED;
  1691.     }
  1692.    
  1693.     new VoteNum_1 = 0;
  1694.    
  1695.     for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num)
  1696.     {
  1697.         if(MapVote[VoteNum_1] < MapVote[Num])
  1698.         {
  1699.             VoteNum_1 = Num;
  1700.         }
  1701.     }
  1702.    
  1703.     if((MapVote[VoteNum_1]*100/AllVotes) >= get_pcvar_num(Cvar_VotePercentMin))
  1704.     {
  1705.         Revoted = false;
  1706.         Next = MapNames[VoteNum_1];
  1707.         VotedMap = Next;
  1708.         set_cvar_string("amx_nextmap", Next);
  1709.        
  1710.         if(get_pcvar_num(Cvar_Mod) == 1)
  1711.         {
  1712.             if(equali(Next, MapName))
  1713.             {
  1714.                 new Hour[32], Minute[32], Second[32], pTime[3];
  1715.                 format_time(Hour, sizeof Hour - 1, "%H");
  1716.                 format_time(Minute, sizeof Minute - 1, "%M");
  1717.                 format_time(Second, sizeof Second - 1, "%S");
  1718.                 pTime[0] = str_to_num(Second);
  1719.                 pTime[1] = str_to_num(Minute);
  1720.                 pTime[2] = str_to_num(Hour);
  1721.                
  1722.                 pTime[1] = pTime[1] - ElapsedTime[1];
  1723.                
  1724.                 if(pTime[0] >= ElapsedTime[0])
  1725.                     pTime[0] = pTime[0] - ElapsedTime[0];
  1726.                 else
  1727.                 {
  1728.                     pTime[0] = pTime[0]+60 - ElapsedTime[0];
  1729.                     pTime[1]--;
  1730.                 }
  1731.                
  1732.                 if(pTime[2] == ElapsedTime[2])
  1733.                 server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]);
  1734.                 else
  1735.                 server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]);
  1736.                
  1737.                 print_color(0, "%s %L", Prefix, Lang, "MEXTEND1", get_pcvar_num(Cvar_Extend));
  1738.                
  1739.                 Extend();
  1740.             }
  1741.         }
  1742.         else if(get_pcvar_num(Cvar_Mod) == 0)
  1743.         {
  1744.             if(equali(Next, MapName))
  1745.             {
  1746.                 print_color(0, "%s %L", Prefix, Lang, "MEXTEND2", get_pcvar_num(Cvar_Extend));
  1747.                 server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds+Rounds);
  1748.                
  1749.                 MaxRounds = get_pcvar_num(Cvar_Extend)+(MaxRounds-Rounds);
  1750.                 Rounds = 0;
  1751.                
  1752.                 Extend();
  1753.             }
  1754.         }
  1755.     }
  1756.     else
  1757.     {
  1758.         NeedRV = true;
  1759.         Voted = false;
  1760.        
  1761.         MapVote[VoteNum_1] = -MapVote[VoteNum_1];
  1762.        
  1763.         new VoteNum_1_1 = 0;
  1764.  
  1765.         for(new Num = 0; Num < get_pcvar_num(Cvar_MaxMaps); ++Num)
  1766.         {
  1767.             if(MapVote[VoteNum_1_1] < MapVote[Num])
  1768.             {
  1769.                 VoteNum_1_1 = Num;
  1770.             }
  1771.         }
  1772.        
  1773.         MapVote[VoteNum_1] = 0-MapVote[VoteNum_1];
  1774.        
  1775.         copy(MapRevote[0], 31, MapNames[VoteNum_1]);
  1776.         copy(MapRevote[1], 31, MapNames[VoteNum_1_1]);
  1777.        
  1778.         RevoteCounts[0] = 0;
  1779.         RevoteCounts[1] = 0;
  1780.        
  1781.         VoteMod = 0;
  1782.         set_task(get_pcvar_float(Cvar_StartRevoteTime), "StartRevoteTime", MapID+3);
  1783.         print_color(0, "%s %L", Prefix, Lang, "RER", get_pcvar_num(Cvar_VotePercentMin));
  1784.     }  
  1785.    
  1786.     NextMap();
  1787.     return PLUGIN_CONTINUE;
  1788. }
  1789. stock CheckRevotes() {
  1790.    
  1791.     if(AllRevotes == 0)
  1792.     {
  1793.         Next = MapRevote[0];
  1794.         set_cvar_string("amx_nextmap", Next);
  1795.         NeedRV = false;
  1796.         VotedMap = Next;
  1797.         NextMap();
  1798.         return PLUGIN_HANDLED;
  1799.     }
  1800.    
  1801.     new VoteNum_1 = 0;
  1802.    
  1803.     for(new Num = 0; Num < 2; ++Num)
  1804.     {
  1805.         if(RevoteCounts[VoteNum_1] < RevoteCounts[Num])
  1806.         VoteNum_1 = Num;
  1807.     }
  1808.    
  1809.     Next = MapRevote[VoteNum_1];
  1810.     set_cvar_string("amx_nextmap", Next);
  1811.     NeedRV = false;
  1812.     VotedMap = Next;
  1813.    
  1814.     if(get_pcvar_num(Cvar_Mod) == 1)
  1815.     {
  1816.         if(equali(Next, MapName))
  1817.         {
  1818.             new Hour[32], Minute[32], Second[32], pTime[3];
  1819.             format_time(Hour, sizeof Hour - 1, "%H");
  1820.             format_time(Minute, sizeof Minute - 1, "%M");
  1821.             format_time(Second, sizeof Second - 1, "%S");
  1822.             pTime[0] = str_to_num(Second);
  1823.             pTime[1] = str_to_num(Minute);
  1824.             pTime[2] = str_to_num(Hour);
  1825.            
  1826.             pTime[1] = pTime[1] - ElapsedTime[1];
  1827.            
  1828.             if(pTime[0] >= ElapsedTime[0])
  1829.                 pTime[0] = pTime[0] - ElapsedTime[0];
  1830.             else
  1831.             {
  1832.                 pTime[0] = pTime[0]+60 - ElapsedTime[0];
  1833.                 pTime[1]--;
  1834.             }
  1835.            
  1836.             if(pTime[2] == ElapsedTime[2])
  1837.             server_cmd("mp_timelimit %d.%02d", get_pcvar_num(Cvar_Extend)+pTime[1], pTime[0]);
  1838.             else
  1839.             server_cmd("mp_timelimit %d.%02d", (get_pcvar_num(Cvar_Extend)+pTime[1])+(60*(pTime[2]-ElapsedTime[2])), pTime[0]);
  1840.            
  1841.             print_color(0, "%s %L", Prefix, Lang, "MEXTEND1", get_pcvar_num(Cvar_Extend));
  1842.            
  1843.             Extend();
  1844.         }
  1845.     }
  1846.     else if(get_pcvar_num(Cvar_Mod) == 0)
  1847.     {
  1848.         if(equali(Next, MapName))
  1849.         {
  1850.             print_color(0, "%s %L", Prefix, Lang, "MEXTEND2", get_pcvar_num(Cvar_Extend));
  1851.             server_cmd("mp_maxrounds ^"%d^"", get_pcvar_num(Cvar_Extend)+oRounds+Rounds);
  1852.            
  1853.             MaxRounds = get_pcvar_num(Cvar_Extend)+(MaxRounds-Rounds);
  1854.             Rounds = 0;
  1855.            
  1856.             Extend();
  1857.         }
  1858.     }
  1859.    
  1860.     NextMap();
  1861.     return PLUGIN_CONTINUE;
  1862. }
  1863. stock bool:isValidMap(Map[])
  1864. {
  1865.     if(is_map_valid(Map))
  1866.     {
  1867.         return true;
  1868.     }
  1869.    
  1870.     new Len = strlen(Map) - 4;
  1871.    
  1872.     if(0 > Len)
  1873.     {
  1874.         return false;
  1875.     }
  1876.    
  1877.     if(equali(Map[Len], ".bsp"))
  1878.     {
  1879.         Map[Len] = '^0';
  1880.        
  1881.         if(is_map_valid(Map))
  1882.         {
  1883.             return true;
  1884.         }
  1885.     }
  1886.    
  1887.     return false;
  1888. }


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2016.07.06. 20:40 
Offline
Félisten
Avatar

Csatlakozott: 2015.03.12. 18:30
Hozzászólások: 975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
Mindkettőt a dmc.cfg-ben találod.
dmc_mod - Működési mód. [1 = Időben | 0 = Körökben] (Alap: 1)
mp_timelimit x perc

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.

Ők köszönték meg kengurumancs nek ezt a hozzászólást: voga955 (2016.07.06. 20:41)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 24 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole