⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel

Webailesi Portal Sistemi

Yazar: EmReiS^
26-03-2025, 22:11
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(PLUGIN, VERSION, AUTHOR);

    
register_dictionary(LANGUAGE_FILE);

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

    
Array_mapsPlayed = ArrayCreate(32, 1);
    
Array_modesPlayed = ArrayCreate(32, 1);
    
Load_Old_Maps();

    
Array_mapNames = ArrayCreate(32, 1);
    
Array_mapMode = ArrayCreate(32, 1);
    
Load_Mode_Maps();

    if(
ArraySize(Array_modes))
    {
        new 
bool:found;
        new Array:
modes = Array:ArrayGetCell(Array_modes, ArraySize(Array_modes)-1);
        if(
ArraySize(modes))
        {
            for(new 
arrayIndex = 0, modPlayed[32]; arrayIndex < ArraySize(modes); arrayIndex++)
            {
                
ArrayGetString(modes, arrayIndex, modPlayed, charsmax(modPlayed));
                for(new 
index = 0, mapName2[32], modName2[32]; index < ArraySize(Array_mapNames); index++)
                {
                    
ArrayGetString(Array_mapNames, index, mapName2, charsmax(mapName2));
                    if(
equal(mapName, mapName2))
                    {
                        
ArrayGetString(Array_mapMode, index, modName2, charsmax(modName2));
                        if(
equal(modPlayed, modName2))
                        {
                            for(new 
index2 = ArraySize(Array_mapsPlayed)-1, mapPlayed2[32], modPlayed2[32]; index2 >= 0; index2--)
                            {
                                
ArrayGetString(Array_modesPlayed, index2, modPlayed2, charsmax(modPlayed2));
                                
ArrayGetString(Array_mapsPlayed, index2, mapPlayed2, charsmax(mapPlayed2));

                                if(
equal(mapPlayed2, mapName2) && equal(modPlayed2, modName2))
                                {
                                    
found = true;
                                }
                            }

                            if(!
found)
                            {
                                
ArrayPushString(Array_mapsPlayed, mapName);
                                
ArrayPushString(Array_modesPlayed, modPlayed);
                                
Save_Map_Played(true);
                            } 
                            
                            
found = false;
                        }
                    }
                }
            }
        }
    }

    
ArrayClear(Array_mapNames);
    
ArrayClear(Array_mapMode);

    if(
equali(mapName, "fy_iceworld16"))
    {
        
remove_task(TASK_MAP_TIMELEFT, 1);
        
remove_task(TASK_MAP_TIMEEND, 1);

        
Load_Hours_Modes();
        
Load_Mode_Maps();

        if(
ArraySize(Array_modes))
        {
            new Array:
modes = Array:ArrayGetCell(Array_modes, ArraySize(Array_modes)-1);
            if(
ArraySize(modes))
            {
                for(new 
arrayIndex = 0, modPlayed[32]; arrayIndex < ArraySize(modes); arrayIndex++)
                {
                    
ArrayGetString(modes, arrayIndex, modPlayed, charsmax(modPlayed));
                    for(new 
index = ArraySize(Array_mapNames)-1, mapName2[32], modName2[32]; index >= 0; index--)
                    {
                        
ArrayGetString(Array_mapNames, index, mapName2, charsmax(mapName2));
                        
ArrayGetString(Array_mapMode, index, modName2, charsmax(modName2));
                        for(new 
index2 = ArraySize(Array_mapsPlayed)-1, mapPlayed2[32], modPlayed2[32]; index2 >= 0; index2--)
                        {
                            
ArrayGetString(Array_modesPlayed, index2, modPlayed2, charsmax(modPlayed2));
                            
ArrayGetString(Array_mapsPlayed, index2, mapPlayed2, charsmax(mapPlayed2));

                            if(
equal(mapPlayed2, mapName2) && equal(modPlayed2, modName2))
                            {
                                
ArrayDeleteItem(Array_mapNames, index);
                                
ArrayDeleteItem(Array_mapMode, index);
                            }
                        }
                    }
                }
            }
        }

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

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

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

            
ArrayPushString(Array_MapNames, mapName);
        }

        if(
ArraySize(Array_MapNames))
        {
            
ArrayGetString(Array_MapNames, random_num(0, ArraySize(Array_MapNames)-1), mapName, charsmax(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_mapBunny, ArraySize(Array_mapBunny)-1) > 0) 
        {
            
server_cmd("ze_bunny 1");
        } else {
            
server_cmd("ze_bunny 0");
        }
    }
    
    if(
ArraySize(Array_mapJump))
    {
        if(
ArrayGetCell(Array_mapJump, ArraySize(Array_mapJump)-1) > 0) 
        {
            
server_cmd("ze_triplejump 1");
        } else {
            
server_cmd("ze_triplejump 0");
        }
    }

    if(
ArraySize(Array_mapParachute))
    {
        if(
ArrayGetCell(Array_mapParachute, ArraySize(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_tokenMultiplier, ArraySize(Array_tokenMultiplier)-1));
    }

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

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

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

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

    if(
get_timeleft() <= 0 || get_timeleft() > 10)
        return;
 
    
remove_task(TASK_MAP_TIMELEFT, 1);
    
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_DRAW, ROUND_HUMANWIN, ROUND_ZOMBIEWIN:
        {
            if(
task_exists(TASK_MAP_TIMEEND, 1))
            {
                
remove_task(TASK_MAP_TIMEEND, 1);

                
Load_Hours_Modes();
                
Load_Mode_Maps();

                if(
ArraySize(Array_modes))
                {
                    new Array:
modes = Array:ArrayGetCell(Array_modes, ArraySize(Array_modes)-1);
                    if(
ArraySize(modes))
                    {
                        for(new 
arrayIndex = 0, modPlayed[32]; arrayIndex < ArraySize(modes); arrayIndex++)
                        {
                            
ArrayGetString(modes, arrayIndex, modPlayed, charsmax(modPlayed));
                            for(new 
index = ArraySize(Array_mapNames)-1, mapName2[32], modName2[32]; index >= 0; index--)
                            {
                                
ArrayGetString(Array_mapNames, index, mapName2, charsmax(mapName2));
                                
ArrayGetString(Array_mapMode, index, modName2, charsmax(modName2));
                                for(new 
index2 = ArraySize(Array_mapsPlayed)-1, mapPlayed2[32], modPlayed2[32]; index2 >= 0; index2--)
                                {
                                    
ArrayGetString(Array_modesPlayed, index2, modPlayed2, charsmax(modPlayed2));
                                    
ArrayGetString(Array_mapsPlayed, index2, mapPlayed2, charsmax(mapPlayed2));

                                    if(
equal(mapPlayed2, mapName2) && equal(modPlayed2, modName2))
                                    {
                                        
ArrayDeleteItem(Array_mapNames, index);
                                        
ArrayDeleteItem(Array_mapMode, index);
                                    }
                                }
                            }
                        }
                    }
                }

                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())-1, playerIndex; arrayIndex >= 0; arrayIndex--)
                    {
                        
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(mapMenu, MPROP_TITLE, fmt("%L", clientIndex, "MENU_MAP_TITLE", voteTime));
    
menu_setprop(mapMenu, MPROP_BACKNAME, fmt("\w%L", clientIndex, "MENU_BACK"));
    
menu_setprop(mapMenu, MPROP_NEXTNAME, fmt("\w%L", clientIndex, "MENU_NEXT"));
    
menu_setprop(mapMenu, MPROP_EXITNAME, fmt("\w%L", clientIndex, "MENU_EXIT"));
    
menu_display(clientIndex, mapMenu);
}

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

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

                    
ArrayGetString(Array_mapMode, index, modeName2, charsmax(modeName2));
                    if(
strlen(modesName)) format(modesName, charsmax(modesName), "%s, %L", modesName, playerIndex, modeName2);
                    else 
formatex(modesName, charsmax(modesName), "%L", playerIndex, modeName2);
                }
                
Color_Chat(playerIndex, 0, "!g[%s]!n %L", Mod_Name, playerIndex, "MENU_MAP_CHANGING", mapName, biggest, modesName);
            }
            
set_task(3.0, "Task_Change_Level", TASK_MAP_TIMEEND);
        }    
        return;
    }
    
    for(new 
arrayIndex = ArraySize(Array_PlayerList_Connected())-1, playerIndex; arrayIndex >= 0; arrayIndex--)
    {
        
playerIndex = ArrayGetCell(Array_PlayerList_Connected(), arrayIndex);
        
Show_MapMenu(playerIndex);
    }
}

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

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

Load_Old_Maps()
{
    new 
path[64]; get_configsdir(path, charsmax(path));
    
format(path, charsmax(path), "%s/%s", path, OLDMAPS_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(File, linedata, charsmax(linedata));
        
replace(linedata, charsmax(linedata), "^n", "");
        if(!
linedata[0] || linedata[0] == ';') continue;

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

        
ArrayPushString(Array_mapsPlayed, linedata);
        
ArrayPushString(Array_modesPlayed, modeName);
    }

    if(
File) fclose(File);
}

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

    if (!
file_exists(path))
    {
        new 
Error[100]; formatex(Error, charsmax(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(File, linedata, charsmax(linedata));
        
replace(linedata, charsmax(linedata), "^n", "");
        if(!
linedata[0] || linedata[0] == ';') continue;

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

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

        if(!
strlen(modeName))
            continue;

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

            if(
str_to_num(value))
            {
                
ArrayPushString(Array_mapNames, key);
                
ArrayPushString(Array_mapMode, modeName);
            }
        }
    }

    if(
File) fclose(File);
}

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

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

    new 
hour[4]; get_time("%H", hour, charsmax(hour))
    new 
currentHour = str_to_num(hour);
    new 
modeHour;

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

        if(
linedata[0] == '[')
        {
            
copyc(linedata, charsmax(linedata), linedata[1], ']')
            
modeHour = clamp(str_to_num(linedata), 0, 24);
            if(
modeHour == 0) modeHour = -1;
            if(
ArrayFindValue(ArrayHours, modeHour) == -1)
            {
                new 
arrayIndex = ArrayPushCell(ArrayHours, modeHour);
                new Array:
Array_modeHours = ArrayCreate(32, 1);
                
amx_load_setting_string_arr(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "MODES", Array_modeHours);
                
ArrayPushCell(ArrayModes, Array_modeHours);

                new 
instaVote; amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "INSTA VOTE", instaVote);
                if(
instaVote == 0) instaVote = -1;
                
ArrayPushCell(ArrayInstaVote, instaVote);

                new 
Float:expMultiplier; amx_load_setting_float(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "EXP MULTIPLIER", expMultiplier);
                if(
expMultiplier == 0.0) expMultiplier = -1.0;
                
ArrayPushCell(ArrayExp, expMultiplier);

                new 
Float:tokenMultiplier; amx_load_setting_float(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "TOKEN MULTIPLIER", tokenMultiplier);
                if(
tokenMultiplier == 0.0) tokenMultiplier = -1.0;
                
ArrayPushCell(ArrayToken, tokenMultiplier);

                new 
minute; amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "MAP MINUTE", minute);
                if(
minute == 0) minute = -1;
                
ArrayPushCell(ArrayMapMinutes, minute);

                new 
bunny; amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "BUNNY ACTIVE", bunny);
                if(
bunny == 0) bunny = -1;
                
ArrayPushCell(ArrayBunny, bunny);

                new 
jump; amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "TRIPLE JUMP ACTIVE", jump);
                if(
jump == 0) jump = -1;
                
ArrayPushCell(ArrayJump, jump);

                new 
parachute; amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "PARACHUTE ACTIVE", parachute);
                if(
parachute == 0) parachute = -1;
                
ArrayPushCell(ArrayParachute, parachute);

                new Array:
Array_modeHours2 = ArrayCreate(32, 1);
                if(
amx_load_setting_string_arr(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "MODES2", Array_modeHours2) && ArraySize(Array_modeHours2))
                {
                    new 
bool:sameMod;
                    if(
ArraySize(Array_hours))
                    {
                        if(
modeHour == ArrayGetCell(Array_hours, ArraySize(Array_hours)-1))
                        {
                            
sameMod = true;
                        }
                    } 

                    if(
sameMod)
                    {
                        new 
Float:expMultiplier2;
                        if(
amx_load_setting_float(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "EXP MULTIPLIER2", expMultiplier2))
                        {
                            if(
expMultiplier2 == 0.0) expMultiplier2 = -1.0;
                            
ArrayDeleteItem(ArrayExp, arrayIndex);
                            
ArrayPushCell(ArrayExp, expMultiplier2);
                        }

                        new 
Float:tokenMultiplier2;
                        if(
amx_load_setting_float(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "TOKEN MULTIPLIER2", tokenMultiplier2))
                        {
                            if(
tokenMultiplier2 == 0.0) tokenMultiplier2 = -1.0;
                            
ArrayDeleteItem(ArrayToken, arrayIndex);
                            
ArrayPushCell(ArrayToken, tokenMultiplier2);
                        }

                        new 
minute2; 
                        if(
amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "MAP MINUTE2", minute2))
                        {
                            if(
minute2 == 0) minute2 = -1;
                            
ArrayDeleteItem(ArrayMapMinutes, arrayIndex);
                            
ArrayPushCell(ArrayMapMinutes, minute2);
                        }

                        new 
bunny2; 
                        if(
amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "BUNNY ACTIVE2", bunny2))
                        {
                            if(
bunny2 == 0) bunny2 = -1;
                            
ArrayDeleteItem(ArrayBunny, arrayIndex);
                            
ArrayPushCell(ArrayBunny, bunny2);
                        }

                        new 
jump2; 
                        if(
amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "TRIPLE JUMP ACTIVE2", jump2))
                        {
                            if(
jump2 == 0) jump2 = -1;
                            
ArrayDeleteItem(ArrayJump, arrayIndex);
                            
ArrayPushCell(ArrayJump, jump2);
                        }

                        new 
parachute2; 
                        if(
amx_load_setting_int(HOURS_FILE, fmt("%i", modeHour == -1 ? 0 : modeHour), "PARACHUTE ACTIVE2", parachute2))
                        {
                            if(
parachute2 == 0) parachute2 = -1;
                            
ArrayDeleteItem(ArrayParachute, arrayIndex);
                            
ArrayPushCell(ArrayParachute, parachute2);
                        }

                        new Array:
ArrayModesDelete = Array:ArrayGetCell(ArrayModes, arrayIndex);
                        
ArrayDestroy(ArrayModesDelete);
                        
ArrayDeleteItem(ArrayModes, arrayIndex);
                        
ArrayPushCell(ArrayModes, Array_modeHours2);
                    } else {
                        
ArrayDestroy(Array_modeHours2);
                    }
                } else {
                    
ArrayDestroy(Array_modeHours2);
                }
            } 
        }
    }

    if(
File) fclose(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:deleteArrays; arrayIndex >= 0; arrayIndex--)
    {
        
deleteArrays = Array:ArrayGetCell(Array_modes, arrayIndex);
        
ArrayDestroy(deleteArrays);
    }    
    
ArrayClear(Array_modes);

    if(
ArraySize(ArrayHours))
    {
        for(new 
searchValue = -1, arrayIndex; searchValue <= 24; searchValue++)
        {
            if(
searchValue == 0)
                continue;
            if((
arrayIndex = ArrayFindValue(ArrayHours, searchValue)) == -1)
                continue;
            
            
ArrayPushCell(Array_hours, ArrayGetCell(ArrayHours, arrayIndex));
            
ArrayPushCell(Array_mapMinute, arrayIndex);
        }

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

            
selectedArray = ArrayGetCell(Array_mapMinute, arrayIndex);
        }

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

        
ArrayPushCell(Array_hours, ArrayGetCell(ArrayHours, selectedArray));
        
ArrayPushCell(Array_expMultiplier, Float:ArrayGetCell(ArrayExp, selectedArray));
        
ArrayPushCell(Array_tokenMultiplier, Float:ArrayGetCell(ArrayToken, selectedArray));
        
ArrayPushCell(Array_mapMinute, ArrayGetCell(ArrayMapMinutes, selectedArray));
        
ArrayPushCell(Array_mapBunny, ArrayGetCell(ArrayBunny, selectedArray));
        
ArrayPushCell(Array_mapJump, ArrayGetCell(ArrayJump, selectedArray));
        
ArrayPushCell(Array_mapParachute, ArrayGetCell(ArrayParachute, selectedArray));
        new Array:
saveModes = ArrayClone(Array:ArrayGetCell(ArrayModes, selectedArray));
        
ArrayPushCell(Array_modes, saveModes);
    }

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

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

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

    
format(path, charsmax(path), "%s/%s", path, OLDMAPS_FILE);

    
delete_file(path);

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

                
ArrayGetString(Array_mapsPlayed, arrayIndex, mapPlayed, charsmax(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)-1, mapPlayed[32], modPlayed[32]; arrayIndex >= 0; arrayIndex--)
        {
            
ArrayGetString(Array_mapsPlayed, arrayIndex, mapPlayed, charsmax(mapPlayed));
            
ArrayGetString(Array_modesPlayed, arrayIndex, modPlayed, charsmax(modPlayed));

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

        
fclose(iFile);
    }    
   
}

Create_Map_Menu()
{
    
Array_mapsSelected = ArrayCreate(6, 1);
    
Array_mapsSelectedName = ArrayCreate(32, 1);
    
voteTime = 15;

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

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

        
ArrayPushString(Array_MapNames, mapName);
    }

    
menu_additem(mapMenu, "-", "one", _, iCallback);
    new 
mapName[32], index, mapCount = min(5, ArraySize(Array_MapNames));
    while(
index < mapCount)
    {
        
ArrayGetString(Array_MapNames, random_num(0, ArraySize(Array_MapNames)-1), mapName, charsmax(mapName));
        if(
ArrayFindString(Array_mapsSelectedName, mapName) != -1)
            continue;

        
menu_additem(mapMenu, mapName, fmt("%i", index), _, iCallback);
        
ArrayPushString(Array_mapsSelectedName, mapName);
        
ArrayPushCell(Array_mapsSelected, 0);
        
index++;
    }
    
ArrayDestroy(Array_MapNames);
    
menu_setprop(mapMenu, MPROP_EXIT, MEXIT_NEVER);
}

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

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

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

                
ArrayGetString(Array_mapMode, index, modeName2, charsmax(modeName2));
                if(
strlen(modesName)) format(modesName, charsmax(modesName), "%s, %L", modesName, clientIndex, modeName2);
                else 
formatex(modesName, charsmax(modesName), "%L", clientIndex, modeName2);
            }

            
menu_item_setname(iMenu, Item, fmt("%s \y(%i) \r(%s)", mapName, biggest, modesName));
        }
        return 
ITEM_DISABLED;
    }

    new 
mapIndex = str_to_num(szInfo);
    
ArrayGetString(Array_mapsSelectedName, mapIndex, mapName, charsmax(mapName));

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

        
ArrayGetString(Array_mapMode, index, modeName2, charsmax(modeName2));
        if(
strlen(modesName)) format(modesName, charsmax(modesName), "%s, %L", modesName, clientIndex, modeName2);
        else 
formatex(modesName, charsmax(modesName), "%L", clientIndex, modeName2);
    }
    
menu_item_setname(iMenu, Item, fmt("%s \y(%i) \r(%s)", mapName, ArrayGetCell(Array_mapsSelected, mapIndex), 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(iMenu, iItem, _, szData, charsmax(szData), _, _, _);
    new 
mapIndex = str_to_num(szData);
    new 
mapName[32]; ArrayGetString(Array_mapsSelectedName, mapIndex, mapName, charsmax(mapName));
    new 
selectCount = ArrayGetCell(Array_mapsSelected, mapIndex)+1;

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

        
Color_Chat(playerIndex, 0, "!g[%s]!n %L", Mod_Name, playerIndex, "MENU_MAP_SELECTED", clientIndex, mapName, selectCount);
        
Show_MapMenu(playerIndex);
    }
} 
Yazar: ReckLesS
26-03-2025, 17:20
Merhabalar

bu maç botuna pause unpause eklemek mümkün mü veya ayrı bir eklenti olarakta yapabilabilir maç esnasında gerektiği zaman oyunu durduramıyoruz sorun oluyor.
.sma bot2.sma (Dosya Boyutu: 120,26 KB | İndirme Sayısı: 3)
26-03-2025, 11:46
Eklenti Adı: [BB] Yardım Menü

Eklenti Yapımcısı: Anılcan

Eklenti Açıklaması: Oyuncuların ve yetkili adminlenlerin yardım aldığı menü sistemidir.

NOT: Görsel yok zamanın da CILGIN TURKLER'de yaptırdığım bir eklenti olduğu için SS ve video almamıştık.


- Eklenti Hakkındaki Resimler, Videolar -ds-screenshot-73-14942

[b]Eklenti: 
.rar csyardimbbmenus.rar (Dosya Boyutu: 6,51 KB | İndirme Sayısı: 2)

[/b]
Merhabalar, Gungame sunucusu için oyuncuya kill asist yerine gungamedeki score kazandıracak bir eklenti yapmak istiyorum.

Kendi çapımda bir şeyler denedim ama olmadı, Oyuncu gungame score vermesi gerekiyor ek olarakta, belirli seviyelerde çalışacak şekilde ayarlanır ise çok güzel olur, şimdiden teşekkürler.

Örnek : Level 1, level 3,level 5,level 6 gibi.


Kullandığım asist eklentisi: https://www.webailesi.com/konu-reapi-gel...tisi-18320

Ufak tefek güncellemeler ile yaptığım hali: 
.sma killscore.sma (Dosya Boyutu: 4,06 KB | İndirme Sayısı: 8)
Yazar: Batuhanvr
25-03-2025, 21:52
Tasarım Yapımcısı: eFsaneGabrieLLa*

- Tasarım Çalışması -

Wc6ts0AegzS
Yazar: stelios9293
25-03-2025, 21:47
[TR-[Navi] Zombi Gaming] - En İyi Zombie Plague Sunucusu!
Merhaba CS 1.6 severler! Yeni ve özel bir Zombie Plague sunucusuna katılmaya ne dersiniz? Sunucumuz, klasik ZP deneyimini daha eğlenceli ve adrenalin dolu hale getirmek için özel olarak tasarlandı!
Sunucu Bilgileri: 📌 Sunucu Adı: TR-[Navi] Zombi Gaming
📌 IP: 95.173.173.136
📌 Mod: Zombie Plague (Özel Pluginler & Market)
📌 Slot: 32 Oyuncu
📌 Anti-Cheat: Var
📌 Ping Koruması: Var
Sunucumuzda Neler Var? ✅ Özel Market & Item Sistemi - Oyun içi kazanılan paralarla güçlü eşyalar satın alabilirsin!
✅ Özel Skinler & Silahlar - Sadece sunucumuza özel muhteşem skinler ve silahlar!
✅ Dengeli Oyun Mekanikleri - Oyuncular için en adil ve eğlenceli ZP deneyimi!
✅ Anti-Lag & Stabil Performans - Düşük ping ve akıcı oyun keyfi!
✅ Eğlenceli Etkinlikler - Haftalık turnuvalar ve sürpriz ödüller!
✅ Aktif & Yardımsever Adminler - Hızlı destek ve adil yönetim anlayışı!
Nasıl Katılabilirsin? 1️⃣ CS 1.6'yı aç ve "Find Servers" kısmına gel.
2️⃣ "Add Server" butonuna tıklayıp IP'yi gir.
3️⃣ Sunucumuza bağlan ve ZP eğlencesine katıl!
🎮 Bize Katıl! 💬 Discord: [Discord sunucu linki]
🌐 Web Site: [Varsa web site linki]
Zombi kıyametinde hayatta kalabilecek misin? Hemen sunucumuza katıl ve kendini kanıtla! 🔥
Yazar: Rixing
25-03-2025, 21:20
Eklenti Adı: Hız Göstergesi
Eklenti Yapımcısı: v3xm - R i x.
Eklenti Açıklaması; Oyun içerisinde fotoğrafta görüldüğü gibi alt tabanda çıkan hız göstergesi. Fazla hud yoksa sunucunuzda bir çakışma yapmadan sorunsuz kullanabilirsiniz. Her iki takımda da aktif olarak çalışmaktadır. iyi kullanımlar!

- Eklenti Hakkındaki Resimler, Videolar -
ds-26-14941

Şifre;
.rar BraveFriendsGaming.rar (Dosya Boyutu: 1,11 KB | İndirme Sayısı: 72)
ikiside wav ve mono yapıldı lr de neden çalmıyor bazı müzikler lrvpremium kullanıyorum
.zip Yeni WinRAR ZIP arşivi.zip (Dosya Boyutu: 3,41 MB | İndirme Sayısı: 6)
Yazar: Batuhanvr
25-03-2025, 14:43
Tasarım Yapımcısı: eFsaneGabrieLLa*

- Tasarım Çalışması -
G5IHCxnF
Yazar: Batuhanvr
25-03-2025, 14:38
Selamlar Biz ShieldsClan olarak 10. yılımızı dolduracağız, her zaman en kaliteli işi yapmaya çalıştık ve bunu başardık.
Kalite & Oyun & Eğlence unsurlarının bulduğu bir sunucuyuz.
2015'dan beri kaliteli bir şekilde işimizin başındayız.
Sizleride aramızda görmek isteriz.
Toplantılarımız Cumartesi günü saat 20:00'da yapılmaktadır.
Her gün saat 24:00'da maç atılmaktadır.
Tecrübeli kurucu kadrosu ve eğlenceli yetkili kardeşlerimiz ile son gaz bomba gibi ilermeye devam ediyoruz.
Sunucumuzun kurucuları cRw FiiqX & The Love & ql@ng'dur.
Sunucunun asıl sahipleri bu sunucuya emek gösteren kişilerdir.
» Cs İp:213.238.173.32
» Ts3İp: ShieldsClan , ShieldsClans, sg32,
NeOB88

Hoşgeldin, Ziyaretçi

Sitemizden yararlanabilmek için Kayıt olmalısınız.

Forumda Ara

Forum İstatistikleri

Toplam Üyeler: 45.111
Son Üye: Hasoo179
Toplam Konular: 34.807
Toplam Yorumlar: 456.210

Son Aktiviteler

🛠️ PROFESYONEL CS 1.6 MOD...

Son Yorum: Atabeyy • 19 dakika önce
Yorumlar: 24 • Okunma: 4.767

🎁 Webailesi.com’a Özel Çe...

Son Yorum: ayasyazılım • 24 dakika önce
Yorumlar: 10 • Okunma: 134

👑 DOST MECLİSİ PRO 95.173...

Son Yorum: Fransua • 35 dakika önce
Yorumlar: 25 • Okunma: 1.701

Kehf-i Alem JailBreak Tea...

Forum: TS3 - Yedek
Son Yorum: Asvalt @ valocu • 45 dakika önce
Yorumlar: 215 • Okunma: 44.178

Oda Aç Takıl Yedek TS3 20...

Forum: TS3 - Yedek
Son Yorum: [email protected] • 1 saat önce
Yorumlar: 119 • Okunma: 19.188

Oda aç takıl yedeği en sa...

Forum: TS3 - Yedek
Son Yorum: [email protected] • 1 saat önce
Yorumlar: 392 • Okunma: 56.518

RedLine Force Açıksız Yed...

Forum: TS3 - Yedek
Son Yorum: jiws • 1 saat önce
Yorumlar: 146 • Okunma: 44.505

Cs1.6 Valorant Skin Paket...

Son Yorum: mirzababpiro • 2 saat önce
Yorumlar: 459 • Okunma: 68.439

FragFps.com Monitoring Si...

Son Yorum: walestn • 2 saat önce
Yorumlar: 14 • Okunma: 313

TeamSpeak 3 Yaş iconları ...

Son Yorum: Jisto • 4 saat önce
Yorumlar: 90 • Okunma: 8.301