Kod:
#include <amxmodx>
#include <reapi>
#pragma semicolon 1
#define g_oylamazamani 20 // Burayi sunucunuza gore ayarlayiniz
new const tag[] = "CSDuragi.com"; // Burayi sunucunuza gore ayarlayiniz
new const yuzdeisareti[] = "Yüzde"; //Yuzde isareti hudmessage de gorunmedigi icin boyle yazmasi daha uygun.
new cvar_bironcekiharita, cvar_ondanbironcekiharita, cvar_ondanbirbironcekiharita, cvar_amx_nextmap, elsonunubekle, oylamabaslat,
haritalistesi,bironcekiharita[32], ondanbironcekiharita[32], ondanbirbironcekiharita[32], amx_nextmap[32], mp_timelimit, suankimap[32],
g_oylamazamanid[33], haritaisimleri[250][250], LeFa[6], g_oylar[6], bool:g_oylama, g_yuzdelikoran, bool:g_oylandi[33], secilenharita[64],
g_tumoylar, Float:g_saniye[33], g_haritalar, bool:g_hasrtv[33], g_rtvsayisi, HookChain:PreThink, HookChain:RoundEnd, timelimit, thetime;
public plugin_init() {
register_plugin("MapChooser", "1.0", "PurposeLess");
register_clcmd("say /rtv", "cmd_oylamabaslat");
register_clcmd("say .rtv", "cmd_oylamabaslat");
register_clcmd("say /oylamabaslat", "cmd_oylamabaslat");
register_clcmd("say .oylamabaslat", "cmd_oylamabaslat");
register_clcmd("say /haritalar", "cmd_haritalistesi");
register_clcmd("say .haritalar", "cmd_haritalistesi");
register_clcmd("say nextmap", "cmd_nextmap");
register_clcmd("say thetime", "cmd_thetime");
register_clcmd("say currentmap", "cmd_currentmap");
register_menucmd(register_menuid("HaritaOylamasi"), 1023, "harita_oylamasi_handler");
elsonunubekle = register_cvar("csm_elsonunubekle", "1");
oylamabaslat = register_cvar("csm_oylamabaslat", "1");
haritalistesi = register_cvar("csm_haritalistesi", "1");
timelimit = register_cvar("csm_timelimit", "1");
thetime = register_cvar("csm_thetime", "1");
cvar_bironcekiharita = register_cvar("csm_bironcekiharita", "YOK");
cvar_ondanbironcekiharita = register_cvar("csm_ondanbironcekiharita", "YOK");
cvar_ondanbirbironcekiharita = register_cvar("csm_ondanbirbironcekiharitacevir", "YOK");
cvar_amx_nextmap = register_cvar("amx_nextmap", "YOK");
mp_timelimit = get_cvar_pointer("mp_timelimit");
get_mapname(suankimap, charsmax(suankimap));
format(secilenharita, charsmax(secilenharita), "");
get_pcvar_string(cvar_bironcekiharita, bironcekiharita, charsmax(bironcekiharita));
get_pcvar_string(cvar_ondanbironcekiharita, ondanbironcekiharita, charsmax(ondanbironcekiharita));
get_pcvar_string(cvar_ondanbirbironcekiharita, ondanbirbironcekiharita, charsmax(ondanbirbironcekiharita));
get_pcvar_string(cvar_amx_nextmap, amx_nextmap, charsmax(amx_nextmap));
set_pcvar_string(cvar_ondanbirbironcekiharita, ondanbironcekiharita);
set_pcvar_string(cvar_ondanbironcekiharita,bironcekiharita);
set_pcvar_string(cvar_bironcekiharita, suankimap);
DisableHookChain((PreThink = RegisterHookChain(RG_CBasePlayer_PreThink, "RGC_PreThink")));
DisableHookChain((RoundEnd = RegisterHookChain(RG_RoundEnd, "RGC_RoundEnd")));
set_task(45.0, "ClCmdVote", _, _, _, "d");
}
public plugin_natives()
{
register_native("HaritaOyla", "ClCmdVote", 1);
}
public harita_oylamasi(id)
{
if(!g_oylama)
{
return PLUGIN_HANDLED;
}
if(g_oylandi[id])
{
new yazi[256];
format(yazi, charsmax(yazi), "Harita Oylama Zamani [%d Saniye]^n", g_oylamazamanid[id]);
for(new i=0; i < 5; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(id, yazi);
}
else
{
new menu[512], len, key;
len = format(menu[len], charsmax(menu) - len, "\yHarita Oylama Zamani^n\dOylamanin bitmesine \r%d \dSaniye^n", g_oylamazamanid[id]);
for(new i=0; i < 5; i++)
{
len += format(menu[len], charsmax(menu) - len, "^n\r%d. \w%s \d[\y%s %d\d]", i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
len += format(menu[len], charsmax(menu) - len, "^n^n\r0. \wOylamaya Katilma");
len += format(menu[len], charsmax(menu) - len, "^n^n\yGeçerli oy sayisi: \r%d", g_tumoylar);
key |= MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5;
show_menu(id, key, menu, -1, "HaritaOylamasi");
}
return PLUGIN_HANDLED;
}
public harita_oylamasi_handler(id, key)
{
if(!(g_oylama && !g_oylandi[id]))
{
return PLUGIN_HANDLED;
}
new name[32];
get_user_name(id, name, charsmax(name));
if(key == 9)
{
client_print_color(id, id, "^1[^4%s^1] ^3%s ^4oylamaya ^3katilmadi^1.", tag, name);
g_oylandi[id] = true;
return PLUGIN_HANDLED;
}
g_tumoylar++;
g_oylar[key]++;
client_cmd(id, "spk Gman/gman_noreg");
g_oylandi[id] = true;
client_print_color(id, id, "^1[^4%s^1] ^3%s ^4oyuncusunun sectigi harita ^3%s^1.", tag, name, haritaisimleri[LeFa[key]]);
return PLUGIN_HANDLED;
}
public RGC_PreThink(const id)
{
g_yuzdelikoran = g_tumoylar ? 100 / g_tumoylar:0;
if((get_gametime() - g_saniye[id]) >= 1.0)
{
if(g_oylamazamanid[id] != 0)
{
g_oylamazamanid[id]--;
harita_oylamasi(id);
g_saniye[id] = get_gametime();
}
else
{
show_menu(id, 0, "^n");
g_oylamazamanid[id] = -1;
DisableHookChain(PreThink);
}
}
}
public ClCmdVote()
{
client_cmd(0, "spk Gman/gman_choose2");
server_cmd("mp_timelimit 0");
haritalari_ayarla();
new yazi[256];
format(yazi, charsmax(yazi), "Harita Oylama Zamani[%d Saniye]^n", g_oylamazamani -10);
set_hudmessage(255, 255, 255, 0.0, 0.35, 2, 6.0, 5.0);
show_hudmessage(0, yazi);
set_task(1.0, "oylamaya_kalan", _, _, _, "a", 10);
}
public haritalari_ayarla()
{
g_haritalar = 0;
HaritalariYukle();
if(g_haritalar >= 6)
{
LeFa[0] = random_num(1, g_haritalar);
LeFa[1] = random_num(1, g_haritalar);
LeFa[2] = random_num(1, g_haritalar);
LeFa[3] = random_num(1, g_haritalar);
LeFa[4] = random_num(1, g_haritalar);
for(new i=0; i<5; i++)
{
for(new j=0; j<5; j++)
{
if(i == j)
{
continue;
}
if(LeFa[i] == LeFa[j] || equal(haritaisimleri[LeFa[i]], suankimap) || equal(haritaisimleri[LeFa[i]], ondanbironcekiharita) || equal(haritaisimleri[LeFa[i]], ondanbirbironcekiharita))
{
LeFa[i] = random_num(1, g_haritalar);
i = 0;
}
}
}
}
}
public HaritalariYukle()
{
new komutdosyasi[250];
get_localinfo("amxx_configsdir", komutdosyasi, charsmax(komutdosyasi));
format(komutdosyasi, charsmax(komutdosyasi), "%s/maps.ini", komutdosyasi);
new file = fopen(komutdosyasi, "rt");
new data[182];
if(file)
{
while(!feof(file))
{
fgets(file, data, charsmax(data));
trim(data);
replace_all(data, charsmax(data), " ", "");
if(data[0] == ';')
{
continue;
}
g_haritalar++;
haritaisimleri[g_haritalar] = data;
}
fclose(file);
}
}
public oylamaya_kalan()
{
new yazi[256];
format(yazi, charsmax(yazi), "Harita Oylama Zamani[%d Saniye]^n", g_oylamazamani - 10);
static timer = 10;
timer --;
switch(timer)
{
case 0: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasi ^4AKTIF^1.", tag);
g_oylama = true;
EnableHookChain(PreThink);
g_oylar[0] = 0;
g_oylar[1] = 0;
g_oylar[2] = 0;
g_oylar[3] = 0;
g_oylar[4] = 0;
arrayset(g_oylar, 0, sizeof(g_oylar));
arrayset(g_oylamazamanid, g_oylamazamani - 10, 33);
arrayset(g_oylandi, false, 33);
set_task(float(g_oylamazamani)-5, "oylamayi_bitir");
timer = 10;
}
case 1: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
for(new i=0; i<5; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(0, yazi);
}
case 2: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
for(new i=0; i<4; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(0, yazi);
}
case 3: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
for(new i=0; i<3; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(0, yazi);
}
case 4: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
for(new i=0; i<2; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(0, yazi);
}
case 5: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
for(new i=0; i<1; i++)
{
format(yazi, charsmax(yazi), "%s^n%d. %s [%s %d]", yazi, i+1, haritaisimleri[LeFa[i]], yuzdeisareti, g_oylar[i] * g_yuzdelikoran);
}
format(yazi, charsmax(yazi), "%s^n^nGeçerli oy sayisi [%d]", yazi, g_tumoylar);
set_hudmessage(255, 255, 255, 0.0, 0.35, 0, 6.0, 1.0);
show_hudmessage(0, yazi);
}
default: {
client_print_color(0, 0, "^1[^4%s^1] ^3Harita oylamasinin baslamasina ^4%d saniye^1.", tag, timer);
}
}
}
public oylamayi_bitir()
{
new kazanan = LeFa[0], eniyiharita = g_oylar[0];
for(new i=0; i<5; i++)
{
if(g_oylar[i] > eniyiharita)
{
kazanan = LeFa[i];
eniyiharita = g_oylar[i];
}
}
g_oylama = false;
format(secilenharita, charsmax(secilenharita), "%s", haritaisimleri[kazanan]);
if(!is_map_valid(secilenharita))
{
g_oylar[0] = 0;
g_oylar[1] = 0;
g_oylar[2] = 0;
g_oylar[3] = 0;
g_oylar[4] = 0;
g_tumoylar = 0;
client_cmd(0, "spk Gman/gman_nowork");
set_task(5.0, "ClCmdVote");
client_print_color(0, 0, "^1[^4%s^1] ^3Secilen harita ^1^"^4cstrike/maps^1^" ^4dosyasinda bulunamadi^1.", tag);
client_print_color(0, 0, "^1[^4%s^1] ^4Harita oylamasi ^3yeniden yapilacaktir^1.", tag);
return;
}
client_print_color(0, 0, "^1[^4%s^1] ^3Sonraki Harita^1: ^4%s", tag, secilenharita);
set_pcvar_string(cvar_amx_nextmap, secilenharita);
if(get_pcvar_num(elsonunubekle))
{
EnableHookChain(RoundEnd);
set_dhudmessage( 149,68,0, -1.0, -0.70, 2, 4.0, 11.0, 0.01, 1.5 );
show_dhudmessage(0, "Sonraki Harita: %s^nHarita el sonunda degisecek", secilenharita);
}
else
{
set_task(1.0, "changelevel");
}
}
public changelevel()
{
server_cmd("mp_timelimit 0");
set_dhudmessage( 0,255,0, -1.0, -0.40, 0, 11.0, 6.0, 0.1, 1.5 );
show_dhudmessage(0, "^nHarita %s olarak degistiriliyor", secilenharita);
new flags;
for(new i=1; i<MAX_CLIENTS; i++)
{
if(!is_user_connected(i)) continue;
client_cmd(i, "drop;wait;wait;wait;wait;wait;drop;wait;wait;wait;wait;wait;drop");
flags = get_entvar(i, var_flags);
set_entvar(i, var_flags, flags | FL_FROZEN);
}
set_task(3.5, "changelevel1");
set_task(6.0, "changelevel2");
}
public changelevel1()
{
new modismi[10];
get_modname(modismi, charsmax(modismi));
if(!equal(modismi, "zp"))
{
message_begin(MSG_ALL, SVC_INTERMISSION);
message_end();
}
}
public changelevel2()
{
server_cmd("changelevel %s", secilenharita);
}
public RGC_RoundEnd()
{
set_task(1.0, "changelevel");
}
public cmd_oylamabaslat(id)
{
if(!get_pcvar_num(oylamabaslat))
{
return PLUGIN_HANDLED;
}
if(g_oylama)
{
client_print_color(id, id, "^1[^4%s^1] ^3Zaten ^4oylama ^3yapiliyor^1.", tag);
return PLUGIN_HANDLED;
}
if(g_hasrtv[id])
{
client_print_color(id, id, "^1[^4%s^1] ^3Zaten ^4oy vermissiniz^1.", tag);
return PLUGIN_HANDLED;
}
g_hasrtv[id] = true;
g_rtvsayisi++;
new players[32], inum;
get_players(players, inum, "ch");
if(g_rtvsayisi == inum)
{
client_print_color(0, 0, "^1[^4%s^1] ^3Katilimci^4(%d) ^3gerekli sayiya ulasti. ^4Harita oylamasi ^3geliyor^1.", tag, g_rtvsayisi);
set_task(5.0, "ClCmdVote");
}
else
{
client_print_color(0, 0, "^1[^4%s^1] ^3Oylama icin ^4(%d) ^3kadar istege ihtiyaciimz var^1. ^1^"^4say /RTV^1^"", tag, inum - g_rtvsayisi);
}
return PLUGIN_HANDLED;
}
public cmd_haritalistesi(id)
{
if(!get_pcvar_num(haritalistesi))
{
return PLUGIN_HANDLED;
}
client_print_color(id, id, "^1[^4%s^1] ^3Oynanilan haritalar^1: ^4%s ^3--> ^4%s ^3--> ^4%s ^3--> ^4%s", tag, ondanbirbironcekiharita, ondanbironcekiharita, bironcekiharita, suankimap);
return PLUGIN_HANDLED;
}
public cmd_nextmap(id)
{
if(!equal(secilenharita, ""))
{
client_print_color(id, id, "^1[^4%s^1] ^3Sonraki Harita^1: ^4%s", tag, secilenharita);
}
else
{
client_print_color(id, id, "^1[^4%s^1] ^3Harita daha ^4oylanmadi^1.", tag);
}
return PLUGIN_HANDLED;
}
public cmd_thetime(id)
{
if(get_pcvar_num(thetime))
{
new mhours[6], mmins[6], whours[32], wmins[32], wpm[6];
get_time("%H", mhours, charsmax(mhours));
get_time("%M",mmins,charsmax(mmins));
new mins = str_to_num(mmins);
new hrs = str_to_num(mhours);
if(mins) {
num_to_word(mins, wmins, charsmax(wmins));
}
else {
wmins[0] = 0;
}
if(hrs < 12) {
wpm = "am ";
}
else {
if(hrs > 12) hrs -= 12;
wpm = "pm ";
}
if(hrs) {
num_to_word(hrs, whours, charsmax(whours));
}
else {
whours = "twelve ";
}
client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm);
new ctime[64];
get_time("%m^3/^4%d^3/^4%Y ^1- ^4%H^3:^4%M^3:^4%S", ctime, charsmax(ctime));
client_print_color(id, print_team_red, "^1[^4%s^1] ^3Saat^1: ^4%s", tag, ctime);
}
return PLUGIN_HANDLED;
}
public cmd_currentmap(id)
{
client_print(id, print_chat, "^1[^4%s^1] ^3Suanki Harita^1: ^4%s", tag, suankimap);
return PLUGIN_HANDLED;
}
setTimeVoice(text[],len,flags,tmlf) {
new temp[7][32];
new secs = tmlf % 60;
new mins = tmlf / 60;
for(new a = 0;a < sizeof(temp);++a) temp[a][0] = 0;
if (secs > 0)
{
num_to_word(secs,temp[4],charsmax(temp[]));
if (!(flags & 8)) temp[5] = "seconds ";
}
if (mins > 59)
{
new hours = mins / 60;
num_to_word(hours,temp[0],charsmax(temp[]));
if (!(flags & 8)) temp[1] = "hours ";
mins = mins % 60;
}
if (mins > 0)
{
num_to_word(mins ,temp[2],charsmax(temp[]));
if (!(flags & 8)) temp[3] = "minutes ";
}
if(!(flags & 4)) temp[6] = "remaining ";
return format(text,len,"spk ^"vox/%s%s%s%s%s%s%s^"", temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6]);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/