⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐ Buraya kendi metin reklamınızı vererek binlerce kişiye ulaşın! ⭐
Sponsor Görsel 2
SponsorSponsor

Zombie Escape Map Oylama Eklentisi Problem

Konu

#1
Merhaba Arkadaşlar;

Ekte veridiğim oylama eklentisinde şöyle bir şey istiyorum.

Mapın bitmesine 4 dk kala oylama yapılacak ve seçilen map süre bitiminde açılacak ancak süre bittiğin de round'un ortasındaysa el sonu açılacak.

Böyle bir şey mümkün müdür ?
.smaZe_Oylama.sma(Dosya Boyutu: 6,71 KB | İndirme Sayısı: 4)
#2
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const SERVERISMI[] = "CAKAL [T]R";

new const 
defaultMap[] = "ze_jurassicpark4"
// Gece 00:00 'dan "map_saatkactaBaslasin" cvarinda ayarladiginiz saate kadar bu map acik kalir !
// Ayrica  'map_kisiSiniri' cvarini 0 dan farkli girdiyseniz, oyuncu sayisi degerin altinda kalirsa bu map acilir!

new const file[] = "addons/amxmodx/configs/maps.ini"// maps.ini 'de en az 7 tane map yazili olmasi gerekir !!!

enum _g_Data MapNumMapisim[32], Oylamanum };
new 
maplar[4][g_Data], bool:oylamakontrol[MAX_CLIENTS+1], sonuc[32], oylamasuremap[32], Dosyag_Cvars[3];

const 
manualOylama_Yetkisi ADMIN_IMMUNITY;


new 
Floattutucu
new control 0,mapdegissin=0

#define kac_dakika_kala 4 * 60

public plugin_init() {
    
register_plugin("Jailbreak Map Oylama Sistemi""v1.0""n.dgn");
    
    
register_clcmd("say /mapoyla""mapseckontrol"); // Manual Oylama 
    
RegisterHookChain(RG_CSGameRules_RestartRound"restartRound"true);
    
    
bind_pcvar_num(create_cvar("map_saatkactaBaslasin""0"), g_Cvars[0]);
    
// Saat kactan - 00:00 'a kadar map oylama sistemi aktif olsun?
    // 0 Yaparsaniz map oylama sistemi surekli aktif olur !
    // [default : 12] > Sabah 12 - Aksam 12
    
    
bind_pcvar_num(create_cvar("map_gunRestart""99999"), g_Cvars[1]); // 99999 yaparak bu yontemi devre disi biraktik.
    // Gun Kacta Map Oylamasi Yapilsin ?
    // Gece Map degisikligi olmazsa bu cvardan 1 gun sonra restart atilir!
    
    
bind_pcvar_num(create_cvar("map_kisiSiniri""1"), g_Cvars[2]);
    
// Oyuncu sayisi bu sayinin altindaysa otomatik 'defaultMap' acilir.
    // 0 yaparsaniz bu ozellik kapanir!
    
    
get_mapname(mapcharsmax(map));
    
    
set_task(0.9,"kontrol",1,_,_,"b"); 
    
tutucu =  get_cvar_float("mp_timelimit") * 60
    
    register_clcmd
("say /dene","asd")
    
control 0
    mapdegissin 
0
    
    
    
    register_logevent
("eRoundEnd",2,"1=Round_End");
}

public 
eRoundEnd(){
    if(
is_map_valid(sonuc) && mapdegissin == 1
        
server_cmd("changelevel %s"sonuc);
    
}

public 
asd(){
    
renkli_yazi(0,"!gSu kadar saniye sonra baslar: %f",(tutucu kac_dakika_kala))
    
renkli_yazi(0,"!gTutucu:: %f",tutucu )
}

public 
restartRound() {
    new 
days get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) + 1;
    
    if(
days == g_Cvars[1]) {
        new 
saat[4]; 
        
get_time("%H"saatcharsmax(saat));
        
        if(
str_to_num(saat) >= g_Cvars[0] && get_playersnum() >= g_Cvars[2]) 
            
set_task(5.0"mapsec");
        
        else if(!
equal(mapdefaultMap)) 
            
server_cmd("changelevel %s"defaultMap);
        
    } else if(
days g_Cvars[1]) 
    
set_cvar_num("sv_restartround"5);
    
}

public 
kontrol(){
    if( 
control== 1) return
    
    else if((
tutucu kac_dakika_kala) > (kac_dakika_kala)  ) {
        
tutucu--;
    }
    
    else if((
tutucu kac_dakika_kala)  == ) {
        
control=1;
        
mapsec()
    }
    return;
}


public 
mapseckontrol(id) {
    if(
get_user_flags(id) & manualOylama_Yetkisi
        
mapsec();
    
    return 
PLUGIN_HANDLED;
}

public 
mapsec() { 
    new 
maxlines file_size(file1);
    if(
maxlines 6) {
        
        new 
onceki1[32], onceki2[32], i=0;
        
nvault_getDosya "2OncekiHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
        
        while(
i<4) {
            
maplar[i][MapNum] = random_num(0maxlines);
            
            switch(
i) {
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum]) continue;
                    case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum]) continue;
                    case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum] ||  maplar[i-3][MapNum] == maplar[i][MapNum]) continue;
                }
            
            
read_file(filemaplar[i][MapNum], maplar[i][Mapisim], 31);
            
            if( 
contain(maplar[i][Mapisim], ";") == -&& strlen(maplar[i][Mapisim]) > && 
            !
equal(maplar[i][Mapisim], map) && 
            !
equal(maplar[i][Mapisim], onceki1) && 
            !
equal(maplar[i][Mapisim], onceki2)  ) {
                
                
i++;
            }
        }
        
oylama();
    }
}

public 
oylama() {
    new 
players[MAX_PLAYERS], numidsi
    
get_players_ex(playersnumGetPlayers_ExcludeBots);
    
    for(
i=0i<4i++) 
        
maplar[i][Oylamanum]=0;
    
    
oylamasure=15;
    
remove_task(1340); 
    
set_task_ex(1.0"eksilt"1340, .flags SetTask_Repeat);
    
set_task(15.5"oylamabitir"1340);
    
    for(
i=0i<numi++) {
        
        
ids=players[i];
        
oylamakontrol[ids]=false;
        
remove_task(ids+1340);
        
oylamamenu(ids+1340);
        
        
set_task_ex(1.0"oylamamenu"ids+1340, .flags SetTask_Repeat);
    }
    
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map oylamasi basladi.^3 15 saniye^4 sonra oylama bitecektir!"SERVERISMI);
    
}

public 
oylamamenu(id) {
    
id=id-1340;
    
    if(
oylamasure>&& is_user_connected(id)) {
        
        new 
ndmenu[128], nums[4]; 
        
formatex(ndmenucharsmax(ndmenu),"\y%s \r• \wMap Oylamasi^n\dOylamanin bitmesine son \r%d saniye\d kaldi!"SERVERISMIoylamasure);
        new 
Menu menu_create(ndmenu"korumaoylamamenu2");
        
        for(new 
i=0i<4i++) {
            
            
formatex(ndmenucharsmax(ndmenu), "%s%s \r[ \w%d Oy\r ]",oylamakontrol[id] ? "\d":"\y"maplar[i][Mapisim], maplar[i][Oylamanum]);
            
            if(
oylamakontrol[id]) 
                
menu_additem(Menundmenu"5");
            
            else { 
                
num_to_str(i+1numscharsmax(nums));
                
menu_additem(Menundmenunums); 
            }
        }
        
menu_addtext(Menu"^n\r• \yOylamada Esitlik Olursa Rastgele secilir!");
        
        
menu_setprop(MenuMPROP_EXITNAME"\wCikis");
        
menu_display(idMenu);
        
    } else 
remove_task(id+1340), show_menu(id0"");
}

public 
korumaoylamamenu2(idmenuitem) {
    if(
item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
    
    new 
data[6], key
    
menu_item_getinfo(menuitem_datacharsmax(data));
    
key str_to_num(data);
    
    if(
key != 5) {
        
maplar[key-1][Oylamanum]++;
        
oylamakontrol[id]=true;
        
    } else 
    
client_print_color(idid"^1[^3%s^1]^4 Siz oy verdiniz!"SERVERISMI);
    
    
oylamamenu(id+1340);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
oylamabitir() {
    
remove_task(1340);
    
    new 
max=maplar[0][Oylamanum];
    
formatex(sonuccharsmax(sonuc), "%s"maplar[0][Mapisim]);
    
    for(new 
i=1i<4i++) {
        
        if((
maplar[i][Oylamanum] > max) || (maplar[i][Oylamanum] == max && random_num(12) == 1)) {
            
            
max maplar[i][Oylamanum];
            
formatex(sonuccharsmax(sonuc), "%s"maplar[i][Mapisim]);
        }
    }
    
mapdegissin 1
    
    
for(new i=0i<5i++) 
        
client_print_color(0print_team_blue"^1[^3%s^1]^4 Oylamada ^3[^1%s^3]^4 Kazandi! ^1Harita degistiriliyor^3..."SERVERISMIsonuc);
}

public 
mapdegis() {
    if(
is_map_valid(sonuc)) {
        
//server_cmd("changelevel %s", sonuc);
    
}
    
    else {
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
        
set_task(5.0"mapsec");
    }
}

public 
eksilt() 
    
oylamasure--;

public 
plugin_cfg() {
    
Dosya nvault_open("gecmismaplar");
    
    if(
Dosya == INVALID_HANDLE)    
        
set_fail_state"Vault Dosyasi Acilamadi !" );
    
    else {
        
        new 
onceki1[32], onceki2[32];
        
nvault_getDosya "SuanHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
        
        
nvault_setDosya "1OncekiHarita" onceki1 );
        
nvault_setDosya "2OncekiHarita" onceki2 );
        
nvault_setDosya "SuanHarita" map );
    }
}

public 
plugin_end() 
    
nvault_closeDosya );


stock renkli_yazi(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
    
replace_all(msg190"!n""^x01");
    
replace_all(msg190"!g""^x04");
    
replace_all(msg190"!t""^x03");
    if (
idplayers[0] = id; else get_players(playerscount"ch");{
        for (new 
0counti++)    {
            if (
is_user_connected(players[i])){
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

#3
(02-06-2023, 13:50)Smash Adlı Kullanıcıdan Alıntı:
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const SERVERISMI[] = "CAKAL [T]R";

new const 
defaultMap[] = "ze_jurassicpark4"
// Gece 00:00 'dan "map_saatkactaBaslasin" cvarinda ayarladiginiz saate kadar bu map acik kalir !
// Ayrica  'map_kisiSiniri' cvarini 0 dan farkli girdiyseniz, oyuncu sayisi degerin altinda kalirsa bu map acilir!

new const file[] = "addons/amxmodx/configs/maps.ini"// maps.ini 'de en az 7 tane map yazili olmasi gerekir !!!

enum _g_Data MapNumMapisim[32], Oylamanum };
new 
maplar[4][g_Data], bool:oylamakontrol[MAX_CLIENTS+1], sonuc[32], oylamasuremap[32], Dosyag_Cvars[3];

const 
manualOylama_Yetkisi ADMIN_IMMUNITY;


new 
Floattutucu
new control 0,mapdegissin=0

#define kac_dakika_kala 4 * 60

public plugin_init() {
    
register_plugin("Jailbreak Map Oylama Sistemi""v1.0""n.dgn");
    
    
register_clcmd("say /mapoyla""mapseckontrol"); // Manual Oylama 
    
RegisterHookChain(RG_CSGameRules_RestartRound"restartRound"true);
    
    
bind_pcvar_num(create_cvar("map_saatkactaBaslasin""0"), g_Cvars[0]);
    
// Saat kactan - 00:00 'a kadar map oylama sistemi aktif olsun?
    // 0 Yaparsaniz map oylama sistemi surekli aktif olur !
    // [default : 12] > Sabah 12 - Aksam 12
    
    
bind_pcvar_num(create_cvar("map_gunRestart""99999"), g_Cvars[1]); // 99999 yaparak bu yontemi devre disi biraktik.
    // Gun Kacta Map Oylamasi Yapilsin ?
    // Gece Map degisikligi olmazsa bu cvardan 1 gun sonra restart atilir!
    
    
bind_pcvar_num(create_cvar("map_kisiSiniri""1"), g_Cvars[2]);
    
// Oyuncu sayisi bu sayinin altindaysa otomatik 'defaultMap' acilir.
    // 0 yaparsaniz bu ozellik kapanir!
    
    
get_mapname(mapcharsmax(map));
    
    
set_task(0.9,"kontrol",1,_,_,"b"); 
    
tutucu =  get_cvar_float("mp_timelimit") * 60
    
    register_clcmd
("say /dene","asd")
    
control 0
    mapdegissin 
0
    
    
    
    register_logevent
("eRoundEnd",2,"1=Round_End");
}

public 
eRoundEnd(){
    if(
is_map_valid(sonuc) && mapdegissin == 1
        
server_cmd("changelevel %s"sonuc);
    
}

public 
asd(){
    
renkli_yazi(0,"!gSu kadar saniye sonra baslar: %f",(tutucu kac_dakika_kala))
    
renkli_yazi(0,"!gTutucu:: %f",tutucu )
}

public 
restartRound() {
    new 
days get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) + 1;
    
    if(
days == g_Cvars[1]) {
        new 
saat[4]; 
        
get_time("%H"saatcharsmax(saat));
        
        if(
str_to_num(saat) >= g_Cvars[0] && get_playersnum() >= g_Cvars[2]) 
            
set_task(5.0"mapsec");
        
        else if(!
equal(mapdefaultMap)) 
            
server_cmd("changelevel %s"defaultMap);
        
    } else if(
days g_Cvars[1]) 
    
set_cvar_num("sv_restartround"5);
    
}

public 
kontrol(){
    if( 
control== 1) return
    
    else if((
tutucu kac_dakika_kala) > (kac_dakika_kala)  ) {
        
tutucu--;
    }
    
    else if((
tutucu kac_dakika_kala)  == ) {
        
control=1;
        
mapsec()
    }
    return;
}


public 
mapseckontrol(id) {
    if(
get_user_flags(id) & manualOylama_Yetkisi
        
mapsec();
    
    return 
PLUGIN_HANDLED;
}

public 
mapsec() { 
    new 
maxlines file_size(file1);
    if(
maxlines 6) {
        
        new 
onceki1[32], onceki2[32], i=0;
        
nvault_getDosya "2OncekiHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
        
        while(
i<4) {
            
maplar[i][MapNum] = random_num(0maxlines);
            
            switch(
i) {
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum]) continue;
                    case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum]) continue;
                    case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum] ||  maplar[i-3][MapNum] == maplar[i][MapNum]) continue;
                }
            
            
read_file(filemaplar[i][MapNum], maplar[i][Mapisim], 31);
            
            if( 
contain(maplar[i][Mapisim], ";") == -&& strlen(maplar[i][Mapisim]) > && 
            !
equal(maplar[i][Mapisim], map) && 
            !
equal(maplar[i][Mapisim], onceki1) && 
            !
equal(maplar[i][Mapisim], onceki2)  ) {
                
                
i++;
            }
        }
        
oylama();
    }
}

public 
oylama() {
    new 
players[MAX_PLAYERS], numidsi
    
get_players_ex(playersnumGetPlayers_ExcludeBots);
    
    for(
i=0i<4i++) 
        
maplar[i][Oylamanum]=0;
    
    
oylamasure=15;
    
remove_task(1340); 
    
set_task_ex(1.0"eksilt"1340, .flags SetTask_Repeat);
    
set_task(15.5"oylamabitir"1340);
    
    for(
i=0i<numi++) {
        
        
ids=players[i];
        
oylamakontrol[ids]=false;
        
remove_task(ids+1340);
        
oylamamenu(ids+1340);
        
        
set_task_ex(1.0"oylamamenu"ids+1340, .flags SetTask_Repeat);
    }
    
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map oylamasi basladi.^3 15 saniye^4 sonra oylama bitecektir!"SERVERISMI);
    
}

public 
oylamamenu(id) {
    
id=id-1340;
    
    if(
oylamasure>&& is_user_connected(id)) {
        
        new 
ndmenu[128], nums[4]; 
        
formatex(ndmenucharsmax(ndmenu),"\y%s \r• \wMap Oylamasi^n\dOylamanin bitmesine son \r%d saniye\d kaldi!"SERVERISMIoylamasure);
        new 
Menu menu_create(ndmenu"korumaoylamamenu2");
        
        for(new 
i=0i<4i++) {
            
            
formatex(ndmenucharsmax(ndmenu), "%s%s \r[ \w%d Oy\r ]",oylamakontrol[id] ? "\d":"\y"maplar[i][Mapisim], maplar[i][Oylamanum]);
            
            if(
oylamakontrol[id]) 
                
menu_additem(Menundmenu"5");
            
            else { 
                
num_to_str(i+1numscharsmax(nums));
                
menu_additem(Menundmenunums); 
            }
        }
        
menu_addtext(Menu"^n\r• \yOylamada Esitlik Olursa Rastgele secilir!");
        
        
menu_setprop(MenuMPROP_EXITNAME"\wCikis");
        
menu_display(idMenu);
        
    } else 
remove_task(id+1340), show_menu(id0"");
}

public 
korumaoylamamenu2(idmenuitem) {
    if(
item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
    
    new 
data[6], key
    
menu_item_getinfo(menuitem_datacharsmax(data));
    
key str_to_num(data);
    
    if(
key != 5) {
        
maplar[key-1][Oylamanum]++;
        
oylamakontrol[id]=true;
        
    } else 
    
client_print_color(idid"^1[^3%s^1]^4 Siz oy verdiniz!"SERVERISMI);
    
    
oylamamenu(id+1340);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
oylamabitir() {
    
remove_task(1340);
    
    new 
max=maplar[0][Oylamanum];
    
formatex(sonuccharsmax(sonuc), "%s"maplar[0][Mapisim]);
    
    for(new 
i=1i<4i++) {
        
        if((
maplar[i][Oylamanum] > max) || (maplar[i][Oylamanum] == max && random_num(12) == 1)) {
            
            
max maplar[i][Oylamanum];
            
formatex(sonuccharsmax(sonuc), "%s"maplar[i][Mapisim]);
        }
    }
    
mapdegissin 1
    
    
for(new i=0i<5i++) 
        
client_print_color(0print_team_blue"^1[^3%s^1]^4 Oylamada ^3[^1%s^3]^4 Kazandi! ^1Harita degistiriliyor^3..."SERVERISMIsonuc);
}

public 
mapdegis() {
    if(
is_map_valid(sonuc)) {
        
//server_cmd("changelevel %s", sonuc);
    
}
    
    else {
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
        
set_task(5.0"mapsec");
    }
}

public 
eksilt() 
    
oylamasure--;

public 
plugin_cfg() {
    
Dosya nvault_open("gecmismaplar");
    
    if(
Dosya == INVALID_HANDLE)    
        
set_fail_state"Vault Dosyasi Acilamadi !" );
    
    else {
        
        new 
onceki1[32], onceki2[32];
        
nvault_getDosya "SuanHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
        
        
nvault_setDosya "1OncekiHarita" onceki1 );
        
nvault_setDosya "2OncekiHarita" onceki2 );
        
nvault_setDosya "SuanHarita" map );
    }
}

public 
plugin_end() 
    
nvault_closeDosya );


stock renkli_yazi(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
    
replace_all(msg190"!n""^x01");
    
replace_all(msg190"!g""^x04");
    
replace_all(msg190"!t""^x03");
    if (
idplayers[0] = id; else get_players(playerscount"ch");{
        for (new 
0counti++)    {
            if (
is_user_connected(players[i])){
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

Yok reis 4 dk kala oylama yapmadı.

Güncel

Güncel
Son Düzenleme: 07-06-2023, 20:05, Düzenleyen: Cassis.
#4
Deneyin;
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const SERVERISMI[] = "KaoS Gaming";

new const 
defaultMap[] = "jail_buyukisyan_dark"
// Gece 00:00 'dan "map_saatkactaBaslasin" cvarinda ayarladiginiz saate kadar bu map acik kalir !
// Ayrica  'map_kisiSiniri' cvarini 0 dan farkli girdiyseniz, oyuncu sayisi degerin altinda kalirsa bu map acilir!


new const ctmenu_koruma[] = "ctmenum/oylama.wav";
new const 
file[] = "addons/amxmodx/configs/maps.ini"// maps.ini 'de en az 7 tane map yazili olmasi gerekir !!!

enum _g_Data MapNumMapisim[32], Oylamanum };
new 
maplar[4][g_Data], bool:oylamakontrol[MAX_CLIENTS+1], sonuc[32], oylamasuremap[32], Dosyag_Cvars[3], bool:InRoundbool:ChangeLevel;

const 
manualOylama_Yetkisi ADMIN_RCON;

public 
plugin_init() {
    
register_plugin("Jailbreak Map Oylama Sistemi""v1.0""n.dgn");

    
register_clcmd("say /mapoyla""mapseckontrol"); // Manual Oylama 
    
RegisterHookChain(RG_RoundEnd"RoundEnd", .post true);
    
RegisterHookChain(RG_CSGameRules_RestartRound"restartRound"true);

    
bind_pcvar_num(create_cvar("map_saatkactaBaslasin""12"), g_Cvars[0]); 
                            
// Saat kactan - 00:00 'a kadar map oylama sistemi aktif olsun?
                            // 0 Yaparsaniz map oylama sistemi surekli aktif olur !
                            // [default : 12] > Sabah 12 - Aksam 12

    
bind_pcvar_num(create_cvar("map_gunRestart""20"), g_Cvars[1]); 
                            
// Gun Kacta Map Oylamasi Yapilsin ?
                            // Gece Map degisikligi olmazsa bu cvardan 1 gun sonra restart atilir!

    
bind_pcvar_num(create_cvar("map_kisiSiniri""8"), g_Cvars[2]); 
                            
// Oyuncu sayisi bu sayinin altindaysa otomatik 'defaultMap' acilir.
                            // 0 yaparsaniz bu ozellik kapanir!

    
set_task(5.0"ControlTheTime"890, .flags "b");

    
get_mapname(mapcharsmax(map));
}

public 
ControlTheTime()
{
    new 
iTimeLeft get_timeleft();

    if(
iTimeLeft <= 240)
    {
        
mapsec();
        
remove_task(890);
    }
}

public 
RoundEnd(WinStatus:statusScenarioEventEndRound:eventFloat:tmDelay) {
    if(
ChangeLevel) {
        
client_print_color(0print_team_blue"^1[^3%s^1]^4 Harita degistiriliyor^3..."SERVERISMIsonuc);

        
set_task(3.0"ChangeLevelFinal");
    }

    
InRound false;
}

public 
ChangeLevelFinal() {
    if(
is_map_valid(sonuc)) 
        
server_cmd("changelevel %s"sonuc);
    else {
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
        
set_task(5.0"mapsec");
    }
}

public 
restartRound() {
    
InRound true;
    new 
days get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) + 1;

    if(
days == g_Cvars[1]) {
        new 
saat[4]; 
        
get_time("%H"saatcharsmax(saat));

        if(
str_to_num(saat) >= g_Cvars[0] && get_playersnum() >= g_Cvars[2]) 
            
set_task(5.0"mapsec");

        else if(!
equal(mapdefaultMap)) 
            
server_cmd("changelevel %s"defaultMap);

    } else if(
days g_Cvars[1]) 
        
set_cvar_num("sv_restartround"5);

}

public 
mapseckontrol(id) {
    if(
get_user_flags(id) & manualOylama_Yetkisi
        
mapsec();

    return 
PLUGIN_HANDLED;
}

public 
mapsec() { 
    new 
maxlines file_size(file1);
    if(
maxlines 6) {

        new 
onceki1[32], onceki2[32], i=0;
        
nvault_getDosya "2OncekiHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
    
        while(
i<4) {
            
maplar[i][MapNum] = random_num(0maxlines);
            
            switch(
i) {
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum]) continue;
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum]) continue;
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum] ||  maplar[i-3][MapNum] == maplar[i][MapNum]) continue;
            }
            
            
read_file(filemaplar[i][MapNum], maplar[i][Mapisim], 31);

            if( 
contain(maplar[i][Mapisim], ";") == -&& strlen(maplar[i][Mapisim]) > && 
                !
equal(maplar[i][Mapisim], map) && 
                !
equal(maplar[i][Mapisim], onceki1) && 
                !
equal(maplar[i][Mapisim], onceki2)  ) {

                
i++;
            }
        }
        
oylama();
    }
}

public 
oylama() {
    new 
players[MAX_PLAYERS], numidsi
    
get_players_ex(playersnumGetPlayers_ExcludeBots);

    for(
i=0i<4i++) 
        
maplar[i][Oylamanum]=0;

    
oylamasure=15;
    
remove_task(1340); 
    
set_task_ex(1.0"eksilt"1340, .flags SetTask_Repeat);
    
set_task(15.5"oylamabitir"1340);

    for(
i=0i<numi++) {

        
ids=players[i];
        
oylamakontrol[ids]=false;
        
remove_task(ids+1340);
        
oylamamenu(ids+1340);

        
set_task_ex(1.0"oylamamenu"ids+1340, .flags SetTask_Repeat);
    }
    
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map oylamasi basladi.^3 15 saniye^4 sonra oylama bitecektir!"SERVERISMI);
    
    
client_cmd(0"stopsound"), set_task(0.1"caldir");

}

public 
caldir()
    
rg_send_audio(0ctmenu_koruma);

public 
oylamamenu(id) {
    
id=id-1340;

    if(
oylamasure>&& is_user_connected(id)) {

        new 
ndmenu[128], nums[4]; 
        
formatex(ndmenucharsmax(ndmenu),"\w%s \d|| \yMap Oylamasi^n\dOylamanin bitmesine son \r%d saniye\d kaldi!"SERVERISMIoylamasure);
        new 
Menu menu_create(ndmenu"korumaoylamamenu2");

        for(new 
i=0i<4i++) {

            
formatex(ndmenucharsmax(ndmenu), "%s%s \r[ \w%d Oy\r ]",oylamakontrol[id] ? "\d":"\y"maplar[i][Mapisim], maplar[i][Oylamanum]);

            if(
oylamakontrol[id]) 
                
menu_additem(Menundmenu"5");

            else { 
                
num_to_str(i+1numscharsmax(nums));
                
menu_additem(Menundmenunums); 
            }
        }
        
menu_addtext(Menu"\y^nOylamada Esitlik Olursa Rastgele secilir!");

        
menu_setprop(MenuMPROP_EXITNAME"\wCikis");
        
menu_display(idMenu);

    } else 
remove_task(id+1340), show_menu(id0"");
}

public 
korumaoylamamenu2(idmenuitem) {
    if(
item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }

    new 
data[6], key
    
menu_item_getinfo(menuitem_datacharsmax(data));
    
key str_to_num(data);

    if(
key != 5) {
        
maplar[key-1][Oylamanum]++;
        
oylamakontrol[id]=true;

    } else 
        
client_print_color(idid"^1[^3%s^1]^4 Siz oy verdiniz!"SERVERISMI);

    
oylamamenu(id+1340);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
oylamabitir() {
    
remove_task(1340);

    new 
max=maplar[0][Oylamanum];
    
formatex(sonuccharsmax(sonuc), "%s"maplar[0][Mapisim]);

    for(new 
i=1i<4i++) {

        if((
maplar[i][Oylamanum] > max) || (maplar[i][Oylamanum] == max && random_num(12) == 1)) {

            
max maplar[i][Oylamanum];
            
formatex(sonuccharsmax(sonuc), "%s"maplar[i][Mapisim]);
        }
    }
    
set_task(4.0"mapdegis");

    
// for(new i=0; i<5; i++) 
    //     client_print_color(0, print_team_blue, "^1[^3%s^1]^4 Oylamada ^3[^1%s^3]^4 Kazandi! ^1Harita degistiriliyor^3...", SERVERISMI, sonuc);
}

public 
mapdegis() {
    if(
InRound) {
        
ChangeLevel true;
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Round bitmedigi icin map acilamadi, el sonu map degisecek^4!!!"SERVERISMI);
    }
    else {
        if(
is_map_valid(sonuc)) 
            
server_cmd("changelevel %s"sonuc);

        else {
            
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
            
set_task(5.0"mapsec");
        }
    }
}

public 
eksilt() 
    
oylamasure--;

public 
plugin_precache() 
    
precache_sound(ctmenu_koruma);

public 
plugin_cfg() {
    
Dosya nvault_open("gecmismaplar");

    if(
Dosya == INVALID_HANDLE)    
        
set_fail_state"Vault Dosyasi Acilamadi !" );

    else {

        new 
onceki1[32], onceki2[32];
        
nvault_getDosya "SuanHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );

        
nvault_setDosya "1OncekiHarita" onceki1 );
        
nvault_setDosya "2OncekiHarita" onceki2 );
        
nvault_setDosya "SuanHarita" map );
    }
}

public 
plugin_end() 
    
nvault_closeDosya ); 
Steam:Tıkla • Discord: lynchk
#5
(08-06-2023, 10:09)orucoglukayra Adlı Kullanıcıdan Alıntı: Deneyin;
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const SERVERISMI[] = "KaoS Gaming";

new const 
defaultMap[] = "jail_buyukisyan_dark"
// Gece 00:00 'dan "map_saatkactaBaslasin" cvarinda ayarladiginiz saate kadar bu map acik kalir !
// Ayrica  'map_kisiSiniri' cvarini 0 dan farkli girdiyseniz, oyuncu sayisi degerin altinda kalirsa bu map acilir!


new const ctmenu_koruma[] = "ctmenum/oylama.wav";
new const 
file[] = "addons/amxmodx/configs/maps.ini"// maps.ini 'de en az 7 tane map yazili olmasi gerekir !!!

enum _g_Data MapNumMapisim[32], Oylamanum };
new 
maplar[4][g_Data], bool:oylamakontrol[MAX_CLIENTS+1], sonuc[32], oylamasuremap[32], Dosyag_Cvars[3], bool:InRoundbool:ChangeLevel;

const 
manualOylama_Yetkisi ADMIN_RCON;

public 
plugin_init() {
    
register_plugin("Jailbreak Map Oylama Sistemi""v1.0""n.dgn");

    
register_clcmd("say /mapoyla""mapseckontrol"); // Manual Oylama 
    
RegisterHookChain(RG_RoundEnd"RoundEnd", .post true);
    
RegisterHookChain(RG_CSGameRules_RestartRound"restartRound"true);

    
bind_pcvar_num(create_cvar("map_saatkactaBaslasin""12"), g_Cvars[0]); 
                            
// Saat kactan - 00:00 'a kadar map oylama sistemi aktif olsun?
                            // 0 Yaparsaniz map oylama sistemi surekli aktif olur !
                            // [default : 12] > Sabah 12 - Aksam 12

    
bind_pcvar_num(create_cvar("map_gunRestart""20"), g_Cvars[1]); 
                            
// Gun Kacta Map Oylamasi Yapilsin ?
                            // Gece Map degisikligi olmazsa bu cvardan 1 gun sonra restart atilir!

    
bind_pcvar_num(create_cvar("map_kisiSiniri""8"), g_Cvars[2]); 
                            
// Oyuncu sayisi bu sayinin altindaysa otomatik 'defaultMap' acilir.
                            // 0 yaparsaniz bu ozellik kapanir!

    
set_task(5.0"ControlTheTime"890, .flags "b");

    
get_mapname(mapcharsmax(map));
}

public 
ControlTheTime()
{
    new 
iTimeLeft get_timeleft();

    if(
iTimeLeft <= 240)
    {
        
mapsec();
        
remove_task(890);
    }
}

public 
RoundEnd(WinStatus:statusScenarioEventEndRound:eventFloat:tmDelay) {
    if(
ChangeLevel) {
        
client_print_color(0print_team_blue"^1[^3%s^1]^4 Harita degistiriliyor^3..."SERVERISMIsonuc);

        
set_task(3.0"ChangeLevelFinal");
    }

    
InRound false;
}

public 
ChangeLevelFinal() {
    if(
is_map_valid(sonuc)) 
        
server_cmd("changelevel %s"sonuc);
    else {
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
        
set_task(5.0"mapsec");
    }
}

public 
restartRound() {
    
InRound true;
    new 
days get_member_game(m_iNumCTWins) + get_member_game(m_iNumTerroristWins) + 1;

    if(
days == g_Cvars[1]) {
        new 
saat[4]; 
        
get_time("%H"saatcharsmax(saat));

        if(
str_to_num(saat) >= g_Cvars[0] && get_playersnum() >= g_Cvars[2]) 
            
set_task(5.0"mapsec");

        else if(!
equal(mapdefaultMap)) 
            
server_cmd("changelevel %s"defaultMap);

    } else if(
days g_Cvars[1]) 
        
set_cvar_num("sv_restartround"5);

}

public 
mapseckontrol(id) {
    if(
get_user_flags(id) & manualOylama_Yetkisi
        
mapsec();

    return 
PLUGIN_HANDLED;
}

public 
mapsec() { 
    new 
maxlines file_size(file1);
    if(
maxlines 6) {

        new 
onceki1[32], onceki2[32], i=0;
        
nvault_getDosya "2OncekiHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );
    
        while(
i<4) {
            
maplar[i][MapNum] = random_num(0maxlines);
            
            switch(
i) {
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum]) continue;
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum]) continue;
                case 
: if(maplar[i-1][MapNum] == maplar[i][MapNum] || maplar[i-2][MapNum] == maplar[i][MapNum] ||  maplar[i-3][MapNum] == maplar[i][MapNum]) continue;
            }
            
            
read_file(filemaplar[i][MapNum], maplar[i][Mapisim], 31);

            if( 
contain(maplar[i][Mapisim], ";") == -&& strlen(maplar[i][Mapisim]) > && 
                !
equal(maplar[i][Mapisim], map) && 
                !
equal(maplar[i][Mapisim], onceki1) && 
                !
equal(maplar[i][Mapisim], onceki2)  ) {

                
i++;
            }
        }
        
oylama();
    }
}

public 
oylama() {
    new 
players[MAX_PLAYERS], numidsi
    
get_players_ex(playersnumGetPlayers_ExcludeBots);

    for(
i=0i<4i++) 
        
maplar[i][Oylamanum]=0;

    
oylamasure=15;
    
remove_task(1340); 
    
set_task_ex(1.0"eksilt"1340, .flags SetTask_Repeat);
    
set_task(15.5"oylamabitir"1340);

    for(
i=0i<numi++) {

        
ids=players[i];
        
oylamakontrol[ids]=false;
        
remove_task(ids+1340);
        
oylamamenu(ids+1340);

        
set_task_ex(1.0"oylamamenu"ids+1340, .flags SetTask_Repeat);
    }
    
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map oylamasi basladi.^3 15 saniye^4 sonra oylama bitecektir!"SERVERISMI);
    
    
client_cmd(0"stopsound"), set_task(0.1"caldir");

}

public 
caldir()
    
rg_send_audio(0ctmenu_koruma);

public 
oylamamenu(id) {
    
id=id-1340;

    if(
oylamasure>&& is_user_connected(id)) {

        new 
ndmenu[128], nums[4]; 
        
formatex(ndmenucharsmax(ndmenu),"\w%s \d|| \yMap Oylamasi^n\dOylamanin bitmesine son \r%d saniye\d kaldi!"SERVERISMIoylamasure);
        new 
Menu menu_create(ndmenu"korumaoylamamenu2");

        for(new 
i=0i<4i++) {

            
formatex(ndmenucharsmax(ndmenu), "%s%s \r[ \w%d Oy\r ]",oylamakontrol[id] ? "\d":"\y"maplar[i][Mapisim], maplar[i][Oylamanum]);

            if(
oylamakontrol[id]) 
                
menu_additem(Menundmenu"5");

            else { 
                
num_to_str(i+1numscharsmax(nums));
                
menu_additem(Menundmenunums); 
            }
        }
        
menu_addtext(Menu"\y^nOylamada Esitlik Olursa Rastgele secilir!");

        
menu_setprop(MenuMPROP_EXITNAME"\wCikis");
        
menu_display(idMenu);

    } else 
remove_task(id+1340), show_menu(id0"");
}

public 
korumaoylamamenu2(idmenuitem) {
    if(
item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }

    new 
data[6], key
    
menu_item_getinfo(menuitem_datacharsmax(data));
    
key str_to_num(data);

    if(
key != 5) {
        
maplar[key-1][Oylamanum]++;
        
oylamakontrol[id]=true;

    } else 
        
client_print_color(idid"^1[^3%s^1]^4 Siz oy verdiniz!"SERVERISMI);

    
oylamamenu(id+1340);
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
oylamabitir() {
    
remove_task(1340);

    new 
max=maplar[0][Oylamanum];
    
formatex(sonuccharsmax(sonuc), "%s"maplar[0][Mapisim]);

    for(new 
i=1i<4i++) {

        if((
maplar[i][Oylamanum] > max) || (maplar[i][Oylamanum] == max && random_num(12) == 1)) {

            
max maplar[i][Oylamanum];
            
formatex(sonuccharsmax(sonuc), "%s"maplar[i][Mapisim]);
        }
    }
    
set_task(4.0"mapdegis");

    
// for(new i=0; i<5; i++) 
    //     client_print_color(0, print_team_blue, "^1[^3%s^1]^4 Oylamada ^3[^1%s^3]^4 Kazandi! ^1Harita degistiriliyor^3...", SERVERISMI, sonuc);
}

public 
mapdegis() {
    if(
InRound) {
        
ChangeLevel true;
        
client_print_color(0print_team_grey"^1[^3%s^1]^4 Round bitmedigi icin map acilamadi, el sonu map degisecek^4!!!"SERVERISMI);
    }
    else {
        if(
is_map_valid(sonuc)) 
            
server_cmd("changelevel %s"sonuc);

        else {
            
client_print_color(0print_team_grey"^1[^3%s^1]^4 Map yuklu degil. ^1Oylama tekrar ^3yapiliyor^4..."SERVERISMI);
            
set_task(5.0"mapsec");
        }
    }
}

public 
eksilt() 
    
oylamasure--;

public 
plugin_precache() 
    
precache_sound(ctmenu_koruma);

public 
plugin_cfg() {
    
Dosya nvault_open("gecmismaplar");

    if(
Dosya == INVALID_HANDLE)    
        
set_fail_state"Vault Dosyasi Acilamadi !" );

    else {

        new 
onceki1[32], onceki2[32];
        
nvault_getDosya "SuanHarita" onceki1 charsmax(onceki1) );
        
nvault_getDosya "1OncekiHarita" onceki2 charsmax(onceki2) );

        
nvault_setDosya "1OncekiHarita" onceki1 );
        
nvault_setDosya "2OncekiHarita" onceki2 );
        
nvault_setDosya "SuanHarita" map );
    }
}

public 
plugin_end() 
    
nvault_closeDosya ); 
Merhaba, Teşekkür ederim hepsi olmuş, ancak oylama bittikten sonra seçilen mapı da saydan yazabilir mi ?
#6
(09-06-2023, 02:49)KadirAydın Adlı Kullanıcıdan Alıntı: Merhaba, Teşekkür ederim hepsi olmuş, ancak oylama bittikten sonra seçilen mapı da saydan yazabilir mi ?

Kod:
    // for(new i=0; i<5; i++)
    //     client_print_color(0, print_team_blue, "^1[^3%s^1]^4 Oylamada ^3[^1%s^3]^4 Kazandi! ^1Harita degistiriliyor^3...", SERVERISMI, sonuc);

Burayı devre dışı bırakmıştım.Başındaki // kaldırıp mesajı istediğiniz gibi düzenleyebilirsiniz.
Steam:Tıkla • Discord: lynchk
#7
İstek konusu, @"orucoglukayra" adlı kullanıcı tarafından 8 gün içinde çözülmüştür.
İsteği çözdüğü için orucoglukayra Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
orucoglukayra Adlı kullanıcı sizin dışınızda toplam 667 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