Chooser

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
Terror
Senbūvis
Posts: 1086
Joined: 2015 Feb 27 19:29
Location: Alytus

Chooser

Post by Terror »

kaip padaryti kad veiktu map chooser ant gungame,nes kai gauni gungame level 23 turetu mesk vote o sit chooster meta tik tada kai map liks 3 minutes ten yra cfg nustatyt bet man reik kad pagal gungame jis veiktu ir kad veiktu pagal cvars nuo kelinto level mestu vote :)

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 }*/

sss
Flooderis arba specialistas
Posts: 621
Joined: 2010 Dec 22 20:00
Location: ey b0s

Re: Chooser

Post by sss »

lengviausias budas integracija padaryti plugine, sukurti cvara mapchangeryje kuri call'inus is kito plugino i serveri ivyktu tuo metu funkcija t.y salyga kai pasiekia 23 leveli siuncia nurodyta cvar i pati serveri kuris suveikia mapchangerio kode ir pakeicia map
"Give me control of a nation's money and I care not who makes it's laws" — Mayer Amschel Bauer Rothschild
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests