⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🔥 Netvay VDS – Daha Fazla Güç, Daha Fazla Performans, Daha Fazla Başarı!
Sponsor Görsel 2
SponsorSponsor

Map oylama eklentisi aynı maplar dönüyor.

Konu

#1
Merhaba aynı haritalar dönmekte yani 2 el önceki haritayı tekrar başlatıyor bazen oylamada , hemen hemen belli haritalarda sürekli dönmekte.
eklenti oynanan mapları "ze_playedmaps.ini" içine ekliyor oylamada o listede ise oylamıyor taki listedeki son harita kalana kadar mantığı ile yazılmış eklenti ancak 1 el önceki map yada 2 el önceki map veya listenin ilk 20 haritası vs oylamada çıkıyor.Problem nerede düzeltme şansımız varmıdır.

PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <zombie_escape>
#include <amx_settings_api>

#pragma compress 1 

#define PLUGIN "Map Vote System"
#define VERSION "FINAL"
#define AUTHOR "Jenessee"

new Array:Array_hours, Array:Array_modes, Array:Array_mapMinute, Array:Array_mapBunny, Array:Array_mapJump, Array:Array_mapParachute, Array:Array_expMultiplier, Array:Array_tokenMultiplier;
new Array:
Array_mapNames, Array:Array_mapMode;
new Array:
Array_mapsPlayed, Array:Array_modesPlayed;
new Array:
ArrayHours, Array:ArrayInstaVote;
new 
startHour;
new Array:
Array_mapsSelected, Array:Array_mapsSelectedName;
new 
bool:menuActive[MAX_PLAYERS 1];
new 
mapMenu INVALID_HANDLE;
new 
voteTime;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);

    
register_dictionary(LANGUAGE_FILE);

    new 
hour[4]; get_time("%H"hourcharsmax(hour));
    
startHour str_to_num(hour);
    if(
startHour == 0startHour = -1;
    
    new 
mapName[32]; get_mapname(mapNamecharsmax(mapName));
    
ArrayHours ArrayCreate(11);
    
ArrayInstaVote ArrayCreate(11);
    
Array_hours ArrayCreate(11);
    
Array_modes ArrayCreate(11);
    
Array_expMultiplier ArrayCreate(11);
    
Array_tokenMultiplier ArrayCreate(11);
    
Array_mapMinute ArrayCreate(11);
    
Array_mapBunny ArrayCreate(11);
    
Array_mapJump ArrayCreate(11);
    
Array_mapParachute ArrayCreate(11);
    
Load_Hours_Modes();

    
Array_mapsPlayed ArrayCreate(321);
    
Array_modesPlayed ArrayCreate(321);
    
Load_Old_Maps();

    
Array_mapNames ArrayCreate(321);
    
Array_mapMode ArrayCreate(321);
    
Load_Mode_Maps();

    if(
ArraySize(Array_modes))
    {
        new 
bool:found;
        new Array:
modes = Array:ArrayGetCell(Array_modesArraySize(Array_modes)-1);
        if(
ArraySize(modes))
        {
            for(new 
arrayIndex 0modPlayed[32]; arrayIndex ArraySize(modes); arrayIndex++)
            {
                
ArrayGetString(modesarrayIndexmodPlayedcharsmax(modPlayed));
                for(new 
index 0mapName2[32], modName2[32]; index ArraySize(Array_mapNames); index++)
                {
                    
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
                    if(
equal(mapNamemapName2))
                    {
                        
ArrayGetString(Array_mapModeindexmodName2charsmax(modName2));
                        if(
equal(modPlayedmodName2))
                        {
                            for(new 
index2 ArraySize(Array_mapsPlayed)-1mapPlayed2[32], modPlayed2[32]; index2 >= 0index2--)
                            {
                                
ArrayGetString(Array_modesPlayedindex2modPlayed2charsmax(modPlayed2));
                                
ArrayGetString(Array_mapsPlayedindex2mapPlayed2charsmax(mapPlayed2));

                                if(
equal(mapPlayed2mapName2) && equal(modPlayed2modName2))
                                {
                                    
found true;
                                }
                            }

                            if(!
found)
                            {
                                
ArrayPushString(Array_mapsPlayedmapName);
                                
ArrayPushString(Array_modesPlayedmodPlayed);
                                
Save_Map_Played(true);
                            } 
                            
                            
found false;
                        }
                    }
                }
            }
        }
    }

    
ArrayClear(Array_mapNames);
    
ArrayClear(Array_mapMode);

    if(
equali(mapName"fy_iceworld16"))
    {
        
remove_task(TASK_MAP_TIMELEFT1);
        
remove_task(TASK_MAP_TIMEEND1);

        
Load_Hours_Modes();
        
Load_Mode_Maps();

        if(
ArraySize(Array_modes))
        {
            new Array:
modes = Array:ArrayGetCell(Array_modesArraySize(Array_modes)-1);
            if(
ArraySize(modes))
            {
                for(new 
arrayIndex 0modPlayed[32]; arrayIndex ArraySize(modes); arrayIndex++)
                {
                    
ArrayGetString(modesarrayIndexmodPlayedcharsmax(modPlayed));
                    for(new 
index ArraySize(Array_mapNames)-1mapName2[32], modName2[32]; index >= 0index--)
                    {
                        
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
                        
ArrayGetString(Array_mapModeindexmodName2charsmax(modName2));
                        for(new 
index2 ArraySize(Array_mapsPlayed)-1mapPlayed2[32], modPlayed2[32]; index2 >= 0index2--)
                        {
                            
ArrayGetString(Array_modesPlayedindex2modPlayed2charsmax(modPlayed2));
                            
ArrayGetString(Array_mapsPlayedindex2mapPlayed2charsmax(mapPlayed2));

                            if(
equal(mapPlayed2mapName2) && equal(modPlayed2modName2))
                            {
                                
ArrayDeleteItem(Array_mapNamesindex);
                                
ArrayDeleteItem(Array_mapModeindex);
                            }
                        }
                    }
                }
            }
        }

        if(!
ArraySize(Array_mapNames))
        {
            
Save_Map_Played(false);
            
Load_Mode_Maps();
        }

        if(!
ArraySize(Array_mapNames))
        {
            return;
        }

        new Array:
Array_MapNames ArrayCreate(321);
        for(new 
index ArraySize(Array_mapNames)-1index >= 0index--)
        {
            
ArrayGetString(Array_mapNamesindexmapNamecharsmax(mapName));
            if(
ArrayFindString(Array_MapNamesmapName) != -1)
                continue;

            
ArrayPushString(Array_MapNamesmapName);
        }

        if(
ArraySize(Array_MapNames))
        {
            
ArrayGetString(Array_MapNamesrandom_num(0ArraySize(Array_MapNames)-1), mapNamecharsmax(mapName));
            
            
server_cmd("amx_map %s"mapName);
            
plugin_end();
        }
        
ArrayDestroy(Array_MapNames);
        return;
    }

    
set_task(5.0"Task_Check_TimeLeft"TASK_MAP_TIMELEFT, .flags "b");
}

public 
plugin_end()
{
    
Load_Hours_Modes();
    
    if(
ArraySize(Array_mapBunny))
    {
        if(
ArrayGetCell(Array_mapBunnyArraySize(Array_mapBunny)-1) > 0
        {
            
server_cmd("ze_bunny 1");
        } else {
            
server_cmd("ze_bunny 0");
        }
    }
    
    if(
ArraySize(Array_mapJump))
    {
        if(
ArrayGetCell(Array_mapJumpArraySize(Array_mapJump)-1) > 0
        {
            
server_cmd("ze_triplejump 1");
        } else {
            
server_cmd("ze_triplejump 0");
        }
    }

    if(
ArraySize(Array_mapParachute))
    {
        if(
ArrayGetCell(Array_mapParachuteArraySize(Array_mapParachute)-1) > 0
        {
            
server_cmd("ze_parachute 1");
        } else {
            
server_cmd("ze_parachute 0");
        }
    }

    if(
ArraySize(Array_tokenMultiplier))
    {
        
server_cmd("ze_token_multiplier %0.1f"Float:ArrayGetCell(Array_tokenMultiplierArraySize(Array_tokenMultiplier)-1));
    }

    if(
ArraySize(Array_expMultiplier))
    {
        
server_cmd("ze_exp_multiplier %0.1f"Float:ArrayGetCell(Array_expMultiplierArraySize(Array_expMultiplier)-1));
    }

    if(
ArraySize(Array_mapMinute))
    {
        
server_cmd("mp_timelimit %i"ArrayGetCell(Array_mapMinuteArraySize(Array_mapMinute)-1));
    }
}

public 
Task_Check_TimeLeft()
{
    new 
hour[4]; get_time("%H"hourcharsmax(hour));
    new 
currentHour str_to_num(hour);
    if(
currentHour == 0currentHour = -1;
    if(
startHour != currentHour)
    {
        new 
arrayIndex;
        if((
arrayIndex ArrayFindValue(ArrayHourscurrentHour)) != -1)
        {
            if(
ArrayGetCell(ArrayInstaVotearrayIndex) > 0)
            {
                
remove_task(TASK_MAP_TIMELEFT1);
                
set_task(1.0"Task_Map_TimeEnd"TASK_MAP_TIMEEND, .flags "b");

                
server_cmd("mp_timelimit 0");
                return;
            }
        }
    }

    if(
get_timeleft() <= || get_timeleft() > 10)
        return;
 
    
remove_task(TASK_MAP_TIMELEFT1);
    
set_task(1.0"Task_Map_TimeEnd"TASK_MAP_TIMEEND, .flags "b");

    
server_cmd("mp_timelimit 0");
}

public 
Task_Map_TimeEnd(){}
public 
OnRoundStateChanged(const roundStates:oldState, const roundStates:newState)
{
    switch(
newState)
    {
        case 
ROUND_DRAWROUND_HUMANWINROUND_ZOMBIEWIN:
        {
            if(
task_exists(TASK_MAP_TIMEEND1))
            {
                
remove_task(TASK_MAP_TIMEEND1);

                
Load_Hours_Modes();
                
Load_Mode_Maps();

                if(
ArraySize(Array_modes))
                {
                    new Array:
modes = Array:ArrayGetCell(Array_modesArraySize(Array_modes)-1);
                    if(
ArraySize(modes))
                    {
                        for(new 
arrayIndex 0modPlayed[32]; arrayIndex ArraySize(modes); arrayIndex++)
                        {
                            
ArrayGetString(modesarrayIndexmodPlayedcharsmax(modPlayed));
                            for(new 
index ArraySize(Array_mapNames)-1mapName2[32], modName2[32]; index >= 0index--)
                            {
                                
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
                                
ArrayGetString(Array_mapModeindexmodName2charsmax(modName2));
                                for(new 
index2 ArraySize(Array_mapsPlayed)-1mapPlayed2[32], modPlayed2[32]; index2 >= 0index2--)
                                {
                                    
ArrayGetString(Array_modesPlayedindex2modPlayed2charsmax(modPlayed2));
                                    
ArrayGetString(Array_mapsPlayedindex2mapPlayed2charsmax(mapPlayed2));

                                    if(
equal(mapPlayed2mapName2) && equal(modPlayed2modName2))
                                    {
                                        
ArrayDeleteItem(Array_mapNamesindex);
                                        
ArrayDeleteItem(Array_mapModeindex);
                                    }
                                }
                            }
                        }
                    }
                }

                if(!
ArraySize(Array_mapNames))
                {
                    
Save_Map_Played(false);
                    
Load_Mode_Maps();
                }

                if(!
ArraySize(Array_mapNames))
                {
                    
server_cmd("mp_timelimit 1");
                    return;
                }

                
Create_Map_Menu();
                if(
mapMenu != INVALID_HANDLE)
                {
                    
set_task(1.0"Task_Map_VoteTime"TASK_MAP_TIMEEND, .flags "b");
                    for(new 
arrayIndex ArraySize(Array_PlayerList_Connected())-1playerIndexarrayIndex >= 0arrayIndex--)
                    {
                        
playerIndex ArrayGetCell(Array_PlayerList_Connected(), arrayIndex);
                    
                        
menuActive[playerIndex] = true;
                        
Show_MapMenu(playerIndex);
                    }
                }
            }
        }
    }
}

public 
Show_MapMenu(const clientIndex)
{
    if(!
is_player_connected(clientIndex) || !menuActive[clientIndex])
        return;

    
menu_setprop(mapMenuMPROP_TITLEfmt("%L"clientIndex"MENU_MAP_TITLE"voteTime));
    
menu_setprop(mapMenuMPROP_BACKNAMEfmt("\w%L"clientIndex"MENU_BACK"));
    
menu_setprop(mapMenuMPROP_NEXTNAMEfmt("\w%L"clientIndex"MENU_NEXT"));
    
menu_setprop(mapMenuMPROP_EXITNAMEfmt("\w%L"clientIndex"MENU_EXIT"));
    
menu_display(clientIndexmapMenu);
}

public 
Task_Map_VoteTime()
{
    if(--
voteTime <= 0)
    {
        
remove_task(TASK_MAP_TIMEEND1);
        new 
mapName[32], biggest = -1;
        for(new 
index 0index ArraySize(Array_mapsSelected); index++)
        {
            if(
biggest == -|| biggest ArrayGetCell(Array_mapsSelectedindex))
            {
                
biggest ArrayGetCell(Array_mapsSelectedindex);
                
ArrayGetString(Array_mapsSelectedNameindexmapNamecharsmax(mapName));
            }
        }

        if(
biggest == -1)
        {
            
server_cmd("mp_timelimit 1");
        } else {
            for(new 
arrayIndex ArraySize(Array_PlayerList_Connected())-1playerIndexarrayIndex >= 0arrayIndex--)
            {
                
playerIndex ArrayGetCell(Array_PlayerList_Connected(), arrayIndex);
            
                new 
modesName[128];
                for(new 
index ArraySize(Array_mapNames)-1modeName2[32], mapName2[32]; index >= 0index--)
                {
                    
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
                    if(!
equal(mapNamemapName2))
                        continue;

                    
ArrayGetString(Array_mapModeindexmodeName2charsmax(modeName2));
                    if(
strlen(modesName)) format(modesNamecharsmax(modesName), "%s, %L"modesNameplayerIndexmodeName2);
                    else 
formatex(modesNamecharsmax(modesName), "%L"playerIndexmodeName2);
                }
                
Color_Chat(playerIndex0"!g[%s]!n %L"Mod_NameplayerIndex"MENU_MAP_CHANGING"mapNamebiggestmodesName);
            }
            
set_task(3.0"Task_Change_Level"TASK_MAP_TIMEEND);
        }    
        return;
    }
    
    for(new 
arrayIndex ArraySize(Array_PlayerList_Connected())-1playerIndexarrayIndex >= 0arrayIndex--)
    {
        
playerIndex ArrayGetCell(Array_PlayerList_Connected(), arrayIndex);
        
Show_MapMenu(playerIndex);
    }
}

public 
Task_Change_Level()
{
    new 
mapName[32], biggest = -1;
    for(new 
index 0index ArraySize(Array_mapsSelected); index++)
    {
        if(
biggest == -|| biggest ArrayGetCell(Array_mapsSelectedindex))
        {
            
biggest ArrayGetCell(Array_mapsSelectedindex);
            
ArrayGetString(Array_mapsSelectedNameindexmapNamecharsmax(mapName));
        }
    }

    
server_cmd("amx_map %s"mapName);
    
plugin_end();
}

Load_Old_Maps()
{
    new 
path[64]; get_configsdir(pathcharsmax(path));
    
format(pathcharsmax(path), "%s/%s"pathOLDMAPS_FILE);

    if(!
file_exists(path))
    {
        return;
    }

    
ArrayClear(Array_mapsPlayed);
    
ArrayClear(Array_modesPlayed);

    new 
modeName[32];
    new 
linedata[1024], File fopen(path"rt");
    while(
File && !feof(File))
    {
        
fgets(Filelinedatacharsmax(linedata));
        
replace(linedatacharsmax(linedata), "^n""");
        if(!
linedata[0] || linedata[0] == ';') continue;

        if(
linedata[0] == '[')
        {
            
copyc(linedatacharsmax(linedata), linedata[1], ']')
            
copy(modeNamecharsmax(modeName), linedata);
            continue;
        }

        
ArrayPushString(Array_mapsPlayedlinedata);
        
ArrayPushString(Array_modesPlayedmodeName);
    }

    if(
Filefclose(File);
}

Load_Mode_Maps()
{
    new 
path[64]; get_configsdir(pathcharsmax(path));
    
format(pathcharsmax(path), "%s/%s"pathMODES_FILE);

    if (!
file_exists(path))
    {
        new 
Error[100]; formatex(Errorcharsmax(Error), "[AMXX] Can't read file (%s)"path);
        
set_fail_state(Error);
        return;
    }

    
ArrayClear(Array_mapNames);
    
ArrayClear(Array_mapMode);

    new 
modeName[32];
    new 
linedata[1024], key[64], value[960], File fopen(path"rt");
    while(
File && !feof(File))
    {
        
fgets(Filelinedatacharsmax(linedata));
        
replace(linedatacharsmax(linedata), "^n""");
        if(!
linedata[0] || linedata[0] == ';') continue;

        if(
linedata[0] == '[')
        {
            
copyc(linedatacharsmax(linedata), linedata[1], ']')
            
copy(modeNamecharsmax(modeName), "");
            if(!
ArraySize(Array_modes))
                continue;
            if(
ArrayFindString(Array:ArrayGetCell(Array_modesArraySize(Array_modes)-1), linedata) == -1)
            {
                continue;
            }

            
copy(modeNamecharsmax(modeName), linedata);
            continue;
        }

        if(!
strlen(modeName))
            continue;

        if(
linedata[0] == '_')
        {
            
strtok(linedata[1], keycharsmax(key), valuecharsmax(value), '=');
            
trim(key);
            
trim(value);

            if(
str_to_num(value))
            {
                
ArrayPushString(Array_mapNameskey);
                
ArrayPushString(Array_mapModemodeName);
            }
        }
    }

    if(
Filefclose(File);
}

Load_Hours_Modes()
{
    new 
path[64]; get_configsdir(pathcharsmax(path));
    
format(pathcharsmax(path), "%s/%s"pathHOURS_FILE);

    if (!
file_exists(path))
    {
        new 
Error[100]; formatex(Errorcharsmax(Error), "[AMXX] Can't read file (%s)"path);
        
set_fail_state(Error);
        return;
    }

    new 
hour[4]; get_time("%H"hourcharsmax(hour))
    new 
currentHour str_to_num(hour);
    new 
modeHour;

    
ArrayClear(ArrayHours);
    
ArrayClear(ArrayInstaVote);
    
    new Array:
ArrayModes ArrayCreate(11);
    new Array:
ArrayExp ArrayCreate(11);
    new Array:
ArrayToken ArrayCreate(11);
    new Array:
ArrayBunny ArrayCreate(11);
    new Array:
ArrayJump ArrayCreate(11);
    new Array:
ArrayParachute ArrayCreate(11);
    new Array:
ArrayMapMinutes ArrayCreate(11);
    new 
linedata[1024], File fopen(path"rt");
    while(
File && !feof(File))
    {
        
fgets(Filelinedatacharsmax(linedata));
        
replace(linedatacharsmax(linedata), "^n""");
        if(!
linedata[0] || linedata[0] == ';') continue;

        if(
linedata[0] == '[')
        {
            
copyc(linedatacharsmax(linedata), linedata[1], ']')
            
modeHour clamp(str_to_num(linedata), 024);
            if(
modeHour == 0modeHour = -1;
            if(
ArrayFindValue(ArrayHoursmodeHour) == -1)
            {
                new 
arrayIndex ArrayPushCell(ArrayHoursmodeHour);
                new Array:
Array_modeHours ArrayCreate(321);
                
amx_load_setting_string_arr(HOURS_FILEfmt("%i"modeHour == -modeHour), "MODES"Array_modeHours);
                
ArrayPushCell(ArrayModesArray_modeHours);

                new 
instaVoteamx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "INSTA VOTE"instaVote);
                if(
instaVote == 0instaVote = -1;
                
ArrayPushCell(ArrayInstaVoteinstaVote);

                new 
Float:expMultiplieramx_load_setting_float(HOURS_FILEfmt("%i"modeHour == -modeHour), "EXP MULTIPLIER"expMultiplier);
                if(
expMultiplier == 0.0expMultiplier = -1.0;
                
ArrayPushCell(ArrayExpexpMultiplier);

                new 
Float:tokenMultiplieramx_load_setting_float(HOURS_FILEfmt("%i"modeHour == -modeHour), "TOKEN MULTIPLIER"tokenMultiplier);
                if(
tokenMultiplier == 0.0tokenMultiplier = -1.0;
                
ArrayPushCell(ArrayTokentokenMultiplier);

                new 
minuteamx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "MAP MINUTE"minute);
                if(
minute == 0minute = -1;
                
ArrayPushCell(ArrayMapMinutesminute);

                new 
bunnyamx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "BUNNY ACTIVE"bunny);
                if(
bunny == 0bunny = -1;
                
ArrayPushCell(ArrayBunnybunny);

                new 
jumpamx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "TRIPLE JUMP ACTIVE"jump);
                if(
jump == 0jump = -1;
                
ArrayPushCell(ArrayJumpjump);

                new 
parachuteamx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "PARACHUTE ACTIVE"parachute);
                if(
parachute == 0parachute = -1;
                
ArrayPushCell(ArrayParachuteparachute);

                new Array:
Array_modeHours2 ArrayCreate(321);
                if(
amx_load_setting_string_arr(HOURS_FILEfmt("%i"modeHour == -modeHour), "MODES2"Array_modeHours2) && ArraySize(Array_modeHours2))
                {
                    new 
bool:sameMod;
                    if(
ArraySize(Array_hours))
                    {
                        if(
modeHour == ArrayGetCell(Array_hoursArraySize(Array_hours)-1))
                        {
                            
sameMod true;
                        }
                    } 

                    if(
sameMod)
                    {
                        new 
Float:expMultiplier2;
                        if(
amx_load_setting_float(HOURS_FILEfmt("%i"modeHour == -modeHour), "EXP MULTIPLIER2"expMultiplier2))
                        {
                            if(
expMultiplier2 == 0.0expMultiplier2 = -1.0;
                            
ArrayDeleteItem(ArrayExparrayIndex);
                            
ArrayPushCell(ArrayExpexpMultiplier2);
                        }

                        new 
Float:tokenMultiplier2;
                        if(
amx_load_setting_float(HOURS_FILEfmt("%i"modeHour == -modeHour), "TOKEN MULTIPLIER2"tokenMultiplier2))
                        {
                            if(
tokenMultiplier2 == 0.0tokenMultiplier2 = -1.0;
                            
ArrayDeleteItem(ArrayTokenarrayIndex);
                            
ArrayPushCell(ArrayTokentokenMultiplier2);
                        }

                        new 
minute2
                        if(
amx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "MAP MINUTE2"minute2))
                        {
                            if(
minute2 == 0minute2 = -1;
                            
ArrayDeleteItem(ArrayMapMinutesarrayIndex);
                            
ArrayPushCell(ArrayMapMinutesminute2);
                        }

                        new 
bunny2
                        if(
amx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "BUNNY ACTIVE2"bunny2))
                        {
                            if(
bunny2 == 0bunny2 = -1;
                            
ArrayDeleteItem(ArrayBunnyarrayIndex);
                            
ArrayPushCell(ArrayBunnybunny2);
                        }

                        new 
jump2
                        if(
amx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "TRIPLE JUMP ACTIVE2"jump2))
                        {
                            if(
jump2 == 0jump2 = -1;
                            
ArrayDeleteItem(ArrayJumparrayIndex);
                            
ArrayPushCell(ArrayJumpjump2);
                        }

                        new 
parachute2
                        if(
amx_load_setting_int(HOURS_FILEfmt("%i"modeHour == -modeHour), "PARACHUTE ACTIVE2"parachute2))
                        {
                            if(
parachute2 == 0parachute2 = -1;
                            
ArrayDeleteItem(ArrayParachutearrayIndex);
                            
ArrayPushCell(ArrayParachuteparachute2);
                        }

                        new Array:
ArrayModesDelete = Array:ArrayGetCell(ArrayModesarrayIndex);
                        
ArrayDestroy(ArrayModesDelete);
                        
ArrayDeleteItem(ArrayModesarrayIndex);
                        
ArrayPushCell(ArrayModesArray_modeHours2);
                    } else {
                        
ArrayDestroy(Array_modeHours2);
                    }
                } else {
                    
ArrayDestroy(Array_modeHours2);
                }
            } 
        }
    }

    if(
Filefclose(File);

    
ArrayClear(Array_hours);
    
ArrayClear(Array_mapMinute);
    
ArrayClear(Array_expMultiplier);
    
ArrayClear(Array_tokenMultiplier);
    
ArrayClear(Array_mapBunny);
    
ArrayClear(Array_mapJump);
    
ArrayClear(Array_mapParachute);
    for(new 
arrayIndex ArraySize(Array_modes)-1, Array:deleteArraysarrayIndex >= 0arrayIndex--)
    {
        
deleteArrays = Array:ArrayGetCell(Array_modesarrayIndex);
        
ArrayDestroy(deleteArrays);
    }    
    
ArrayClear(Array_modes);

    if(
ArraySize(ArrayHours))
    {
        for(new 
searchValue = -1arrayIndexsearchValue <= 24searchValue++)
        {
            if(
searchValue == 0)
                continue;
            if((
arrayIndex ArrayFindValue(ArrayHourssearchValue)) == -1)
                continue;
            
            
ArrayPushCell(Array_hoursArrayGetCell(ArrayHoursarrayIndex));
            
ArrayPushCell(Array_mapMinutearrayIndex);
        }

        new 
selectedArray NULLENT;
        new 
arrayIndex;
        for(
arrayIndex 0arrayIndex ArraySize(Array_hours); arrayIndex++)
        {
            if(
currentHour ArrayGetCell(Array_hoursarrayIndex))
                continue;

            
selectedArray ArrayGetCell(Array_mapMinutearrayIndex);
        }

        if(
selectedArray == NULLENT)
        {
            
arrayIndex ArraySize(Array_hours)-1;
            
selectedArray ArrayGetCell(Array_mapMinutearrayIndex);
        }
        
        
ArrayClear(Array_hours);
        
ArrayClear(Array_mapMinute);

        
ArrayPushCell(Array_hoursArrayGetCell(ArrayHoursselectedArray));
        
ArrayPushCell(Array_expMultiplierFloat:ArrayGetCell(ArrayExpselectedArray));
        
ArrayPushCell(Array_tokenMultiplierFloat:ArrayGetCell(ArrayTokenselectedArray));
        
ArrayPushCell(Array_mapMinuteArrayGetCell(ArrayMapMinutesselectedArray));
        
ArrayPushCell(Array_mapBunnyArrayGetCell(ArrayBunnyselectedArray));
        
ArrayPushCell(Array_mapJumpArrayGetCell(ArrayJumpselectedArray));
        
ArrayPushCell(Array_mapParachuteArrayGetCell(ArrayParachuteselectedArray));
        new Array:
saveModes ArrayClone(Array:ArrayGetCell(ArrayModesselectedArray));
        
ArrayPushCell(Array_modessaveModes);
    }

    
ArrayDestroy(ArrayExp);
    
ArrayDestroy(ArrayToken);
    
ArrayDestroy(ArrayMapMinutes);
    
ArrayDestroy(ArrayBunny);
    
ArrayDestroy(ArrayJump);
    
ArrayDestroy(ArrayParachute);
    for(new 
arrayIndex ArraySize(ArrayModes)-1, Array:deleteArraysarrayIndex >= 0arrayIndex--)
    {
        
deleteArrays = Array:ArrayGetCell(ArrayModesarrayIndex);
        
ArrayDestroy(deleteArrays);
    }    
    
ArrayDestroy(ArrayModes);
}

Save_Map_Played(bool:Save)
{
    new 
path[64]; get_configsdir(pathcharsmax(path));
    
format(pathcharsmax(path), "%s"path);

    if(!(
dir_exists(path)))
    {
        
mkdir(path);
    }

    
format(pathcharsmax(path), "%s/%s"pathOLDMAPS_FILE);

    
delete_file(path);

    if(!
Save)
    {
        new 
iFile fopen(path"a+");
        if(
iFile)
        {
            for(new 
arrayIndex ArraySize(Array_mapsPlayed)-1mapPlayed[32], modPlayed[32]; arrayIndex >= 0arrayIndex--)
            {
                
ArrayGetString(Array_modesPlayedarrayIndexmodPlayedcharsmax(modPlayed));
                if(
ArraySize(Array_modes))
                {
                    if(
ArrayFindString(Array:ArrayGetCell(Array_modesArraySize(Array_modes)-1), modPlayed) != -1)
                    {
                        
ArrayDeleteItem(Array_mapsPlayedarrayIndex);
                        
ArrayDeleteItem(Array_modesPlayedarrayIndex);
                        continue;
                    }
                }

                
ArrayGetString(Array_mapsPlayedarrayIndexmapPlayedcharsmax(mapPlayed));
                
fprintf(iFile"^n[%s]^n"modPlayed);
                
fprintf(iFile"%s^n"mapPlayed);
            }

            
fclose(iFile);
            return;
        }    
    }    

    new 
iFile fopen(path"a+");
    if(
iFile)
    {
        for(new 
arrayIndex ArraySize(Array_mapsPlayed)-1mapPlayed[32], modPlayed[32]; arrayIndex >= 0arrayIndex--)
        {
            
ArrayGetString(Array_mapsPlayedarrayIndexmapPlayedcharsmax(mapPlayed));
            
ArrayGetString(Array_modesPlayedarrayIndexmodPlayedcharsmax(modPlayed));

            
fprintf(iFile"^n[%s]^n"modPlayed);
            
fprintf(iFile"%s^n"mapPlayed);
        }

        
fclose(iFile);
    }    
   
}

Create_Map_Menu()
{
    
Array_mapsSelected ArrayCreate(61);
    
Array_mapsSelectedName ArrayCreate(321);
    
voteTime 15;

    new 
menuTitle[64]; formatex(menuTitlecharsmax(menuTitle), "-"); 
    
mapMenu menu_create(menuTitle"MenuHandle_Map");
    new 
iCallback menu_makecallback("MenuCallback_Map");

    new Array:
Array_MapNames ArrayCreate(321);
    for(new 
index ArraySize(Array_mapNames)-1mapName[32]; index >= 0index--)
    {
        
ArrayGetString(Array_mapNamesindexmapNamecharsmax(mapName));
        if(
ArrayFindString(Array_MapNamesmapName) != -1)
            continue;

        
ArrayPushString(Array_MapNamesmapName);
    }

    
menu_additem(mapMenu"-""one"_iCallback);
    new 
mapName[32], indexmapCount min(5ArraySize(Array_MapNames));
    while(
index mapCount)
    {
        
ArrayGetString(Array_MapNamesrandom_num(0ArraySize(Array_MapNames)-1), mapNamecharsmax(mapName));
        if(
ArrayFindString(Array_mapsSelectedNamemapName) != -1)
            continue;

        
menu_additem(mapMenumapNamefmt("%i"index), _iCallback);
        
ArrayPushString(Array_mapsSelectedNamemapName);
        
ArrayPushCell(Array_mapsSelected0);
        
index++;
    }
    
ArrayDestroy(Array_MapNames);
    
menu_setprop(mapMenuMPROP_EXITMEXIT_NEVER);
}

public 
MenuCallback_Map(const clientIndex, const iMenu, const Item)
{
    new 
szInfo[6];
    
menu_item_getinfo(iMenuItem_szInfocharsmax(szInfo), ___);

    new 
mapName[32];
    if(
equal(szInfo"one"))
    {
        new 
biggest = -1;
        for(new 
index 0index ArraySize(Array_mapsSelected); index++)
        {
            if(
biggest == -|| biggest ArrayGetCell(Array_mapsSelectedindex))
            {
                
biggest ArrayGetCell(Array_mapsSelectedindex);
                
ArrayGetString(Array_mapsSelectedNameindexmapNamecharsmax(mapName));
            }
        }

        if(
biggest == -1menu_item_setname(iMenuItemfmt("%L"clientIndex"MENU_MAP_NO_MAP_REGISTERED"));
        else 
        {
            new 
modesName[128];
            for(new 
index ArraySize(Array_mapNames)-1modeName2[32], mapName2[32]; index >= 0index--)
            {
                
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
                if(!
equal(mapNamemapName2))
                    continue;

                
ArrayGetString(Array_mapModeindexmodeName2charsmax(modeName2));
                if(
strlen(modesName)) format(modesNamecharsmax(modesName), "%s, %L"modesNameclientIndexmodeName2);
                else 
formatex(modesNamecharsmax(modesName), "%L"clientIndexmodeName2);
            }

            
menu_item_setname(iMenuItemfmt("%s \y(%i) \r(%s)"mapNamebiggestmodesName));
        }
        return 
ITEM_DISABLED;
    }

    new 
mapIndex str_to_num(szInfo);
    
ArrayGetString(Array_mapsSelectedNamemapIndexmapNamecharsmax(mapName));

    new 
modesName[128];
    for(new 
index ArraySize(Array_mapNames)-1modeName2[32], mapName2[32]; index >= 0index--)
    {
        
ArrayGetString(Array_mapNamesindexmapName2charsmax(mapName2));
        if(!
equal(mapNamemapName2))
            continue;

        
ArrayGetString(Array_mapModeindexmodeName2charsmax(modeName2));
        if(
strlen(modesName)) format(modesNamecharsmax(modesName), "%s, %L"modesNameclientIndexmodeName2);
        else 
formatex(modesNamecharsmax(modesName), "%L"clientIndexmodeName2);
    }
    
menu_item_setname(iMenuItemfmt("%s \y(%i) \r(%s)"mapNameArrayGetCell(Array_mapsSelectedmapIndex), modesName));
    return 
ITEM_ENABLED;
}

public 
MenuHandle_Map(const clientIndex, const iMenu, const iItem)
{
    if(!
is_player_connected(clientIndex) || !voteTime)
        return;
    if(
iItem == MENU_EXIT || iItem 0)
    {
        return;
    }

    new 
szData[6]; menu_item_getinfo(iMenuiItem_szDatacharsmax(szData), ___);
    new 
mapIndex str_to_num(szData);
    new 
mapName[32]; ArrayGetString(Array_mapsSelectedNamemapIndexmapNamecharsmax(mapName));
    new 
selectCount ArrayGetCell(Array_mapsSelectedmapIndex)+1;

    
menuActive[clientIndex] = false;
    
ArraySetCell(Array_mapsSelectedmapIndexselectCount);
    for(new 
arrayIndex ArraySize(Array_PlayerList_Connected())-1playerIndexarrayIndex >= 0arrayIndex--)
    {
        
playerIndex ArrayGetCell(Array_PlayerList_Connected(), arrayIndex);

        
Color_Chat(playerIndex0"!g[%s]!n %L"Mod_NameplayerIndex"MENU_MAP_SELECTED"clientIndexmapNameselectCount);
        
Show_MapMenu(playerIndex);
    }

#2
(26-03-2025, 22:11)EmReiS^ Adlı Kullanıcıdan Alıntı: Merhaba aynı haritalar dönmekte yani 2 el önceki haritayı tekrar başlatıyor bazen oylamada , hemen hemen belli haritalarda sürekli dönmekte.
eklenti oynanan mapları "ze_playedmaps.ini" içine ekliyor oylamada o listede ise oylamıyor taki listedeki son harita kalana kadar mantığı ile yazılmış eklenti ancak 1 el önceki map yada 2 el önceki map veya listenin ilk 20 haritası vs oylamada çıkıyor.Problem nerede düzeltme şansımız varmıdır.
düzeltebiliriz ze_playedmaps.ini kısmından random map çeker bir el onceki haritayı oraya koymaz detayları yazarsanız ayarlamayı yapalım ve kaç map olacak şeklinde vs detaylı yazarsanız iyi olur

.ini dosyanızı ekelmeyi unutmayınız
| Return All Starz | Valorant Mod | 95.173.173.31 |
Son Düzenleme: 26-03-2025, 22:51, Düzenleyen: Merhabalarr.
#3
map listesini ze_modes.ini den çekiyor.
oynanan haritayı ze_playedmaps.ini de kaydediyor.
harita ze_playedmaps.ini de daha önce yazıldıysa oylamaya koymuyor.

lakin ara sıra aynı haritalıda çekiyor ze_xx1 haritası 2 el önce oynandıysa bidaha oyluyor mesela. Tabi bu durum %100 her zamanda olmuyor yani kayıt etmede kayıttaki mapı çekmede bi problem yaşıyor bazen.

Tüm maplar bitene kadar aynı harita bugün tekrar oylamaya gelmesin.

ze_playedmaps.ini içeriği :

PHP Kod:
[MODE_NEMESIS]
de_pathway

[MODE_INFECTION]
ze_liberation_xmas_dawnx

[MODE_AMONGUS]
amongus_kabul_32

[MODE_INFECTION]
ze_castle_dawnx_rmk

[MODE_NEMESIS]
cs_assault_aged_dawn

[MODE_INFECTION]
ze_watery_escape2022

[MODE_AMONGUS]
amongus_cliffx

[MODE_INFECTION]
ze_forgettenlands_v1

[MODE_NEMESIS]
de_kabul_32

[MODE_INFECTION]
ze_jp4_reverse

[MODE_INFECTION]
ze_altiplano_dgx

[MODE_INFECTION]
ze_isla_nublar_level4_finals

[MODE_NEMESIS]
de_westwood

[MODE_INFECTION]
ze_island_rock_escape_v1

[MODE_INFECTION]
ze_rushed_aztec_e4

[MODE_INFECTION]
ze_military_v1_2024

[MODE_INFECTION]
ze_freezy_xmas_x3x

[MODE_INFECTION]
ze_xmas_city_bp

[MODE_INFECTION]
ze_rock_escapes_dpfixs

[MODE_INFECTION]
ze_ultrapower_surfx

[MODE_INFECTION]
ze_frostworld_tg

[MODE_INFECTION]
ze_isla_nublar_rt

[MODE_INFECTION]
ze_italyinf_2024_dawn_v3

[MODE_INFECTION]
ze_factory_escape_dawnx

[MODE_INFECTION]
ze_emergencydawn_update1

[MODE_INFECTION]
ze_jurassickpark4_dawn_xmass

[MODE_INFECTION]
ze_warz_fearless_v5

[MODE_INFECTION]
ze_isla_nublar_level3_dpfix

[MODE_INFECTION]
ze_minecraftworld2_dg

[MODE_INFECTION]
ze_blacktrain_dawn_2025

[MODE_INFECTION]
ze_rock_escape2_dpfix

[MODE_INFECTION]
ze_trainyard_pg

[MODE_NEMESIS]
de_pathway_dawn3

[MODE_INFECTION]
ze_jurassicpark_battle_dww1

[MODE_INFECTION]
ze_coffeelobbys_ocean_escape_v2

[MODE_NEMESIS]
cs_assault_dawn6

[MODE_INFECTION]
ze_unstopple_strengh_dawn1

[MODE_INFECTION]
ze_darkness_city_2024

[MODE_INFECTION]
ze_paty_escaper_2023

[MODE_INFECTION]
ze_cave_dw_v2

[MODE_INFECTION]
ze_lasthope_2024_v1

[MODE_INFECTION]
ze_lasthope_reverse

[MODE_INFECTION]
ze_longdead_dawn_2024

[MODE_INFECTION]
ze_unmerciful_dawnx

[MODE_INFECTION]
ze_dark_surf_dpfix

[MODE_INFECTION]
ze_atix_panic_v1_fix

[MODE_INFECTION]
ze_forest3_dawn3

[MODE_INFECTION]
ze_portal2_dw

[MODE_INFECTION]
ze_nasa_rocket_shuttlex

[MODE_INFECTION]
ze_jurasicpark3snow_dw

[MODE_INFECTION]
ze_atix_assault_dawn_spring1

[MODE_INFECTION]
ze_dust_escape_rmk_dp

[MODE_INFECTION]
ze_extreme_prox_dawn

[MODE_INFECTION]
ze_parkour_fabi_dawnx

[MODE_CANNIBAL]
dawn_special_mode5

[MODE_TAG]
dawn_special_mode5

[MODE_INFECTION]
ze_orient_v3_fixed

[MODE_INFECTION]
ze_dark_lab_dpfix

[MODE_INFECTION]
ze_houses_v1

[MODE_INFECTION]
ze_green_heaven_dawnx

[MODE_INFECTION]
ze_jurassicpark_edition

[MODE_INFECTION]
ze_area51_dawn

[MODE_INFECTION]
ze_freed_desire_dawnx

[MODE_INFECTION]
ze_black_hawk_dawn 
Son Düzenleme: 26-03-2025, 23:02, Düzenleyen: EmReiS^.
#4
(26-03-2025, 22:11)EmReiS^ Adlı Kullanıcıdan Alıntı: Merhaba aynı haritalar dönmekte yani 2 el önceki haritayı tekrar başlatıyor bazen oylamada , hemen hemen belli haritalarda sürekli dönmekte.
eklenti oynanan mapları "ze_playedmaps.ini" içine ekliyor oylamada o listede ise oylamıyor taki listedeki son harita kalana kadar mantığı ile yazılmış eklenti ancak 1 el önceki map yada 2 el önceki map veya listenin ilk 20 haritası vs oylamada çıkıyor.Problem nerede düzeltme şansımız varmıdır.
map randommu açılacak

(26-03-2025, 22:11)EmReiS^ Adlı Kullanıcıdan Alıntı: Merhaba aynı haritalar dönmekte yani 2 el önceki haritayı tekrar başlatıyor bazen oylamada , hemen hemen belli haritalarda sürekli dönmekte.
eklenti oynanan mapları "ze_playedmaps.ini" içine ekliyor oylamada o listede ise oylamıyor taki listedeki son harita kalana kadar mantığı ile yazılmış eklenti ancak 1 el önceki map yada 2 el önceki map veya listenin ilk 20 haritası vs oylamada çıkıyor.Problem nerede düzeltme şansımız varmıdır.
 buyrun deneyiniz https://www.webailesi.com/ds-mapvote-14973.sma

Yapılan Değişiklikler
Oylamada son 2 harita asla çıkmaz
Tüm oynanan haritalar mapler.ini'de tutulur (silinmez)
Not: Eğer MAX_RECENT_MAPS 5 yaparsanız, son 5 harita oylamaya çıkmaz!
Oylama süresini 15 dakika yaptım kendinize göre değiştirebilirsiniz
mapler.ini'den rastgele 5 harita seçer
Aynı haritanın tekrar seçilmemesini garantiler
Geri Sayım
15 dakikalık süre başlar
Ekranda dakika saniye şeklinde geri sayım gösterir
Oy Kullanma
Oyuncular menüden harita seçer
Seçim yapınca "[OY] x haritasına oy verdiniz" mesajı alırlar

daha optimize ve daha iyi hali olarak bunu deneyiniz ekranda gereksiz bir hud vardı kaldırdım ve deneyınız extra yaptırmak ıstedıgınız bırsey varsa ekleyın yapalım ayrıca adminler /oylama yazarak oylama baslatabilirler U yetkisine ayarlıdır https://www.webailesi.com/ds-mapvote-14975.sma

eğer mapler.ini dosyasnız var ise gerek yok fakat eklenti zaten kendi bir dosya açıyordu kendi ama siz her ihtimale karşı dosyayı amxmodx/configs/mapler.ini kısmına atmayı unutmayınız.
https://www.webailesi.com/ds-mapler-14976.ini

kodunuzu düzelttim herşey sorunsuz çalışmaktaydı fakat kodda mod seçimi olduğunu farkettim buyrun mode seçimli hali budur deneyip dönersiniz https://www.webailesi.com/ds-webailesi-istek-14978.sma
Anlatım
maplar.ini # Mod-harita eşleşmeleri (EL İLE DÜZENLENİR)
ze_playedmaps.ini # Oynanan mapleri tutar
vote_hours.ini # Özel oylama saatleri
| Return All Starz | Valorant Mod | 95.173.173.31 |
Son Düzenleme: 27-03-2025, 22:36, Düzenleyen: Merhabalarr.
#5
İstek konusu, @Merhabalarr adlı kullanıcı tarafından 4 gün içinde çözülmüştür.
İsteği çözdüğü için Merhabalarr Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Merhabalarr Adlı kullanıcı sizin dışınızda toplam 11 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task