/* Wszystkie prawa zastrzeżone */
#include <amxmodx>
#include <amxmisc>
#include <ColorChat>
#define PLUGIN "Vote System"
#define VERSION "1.0"
#define AUTHOR "zielu001
"
new tak, nie, aktywne, idvote
new uzyto,timel, bantime
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd ("say /voty", "pokaz_menu")
timel = register_cvar("amx_czas_czekania", "60") // Czas czekania w s
bantime = register_cvar("amx_czas_bana", "2880") // Czas bana
timel = get_pcvar_num(timel)
bantime = get_pcvar_num(bantime)
// Add your code here...
}
public JestAdmin() {
new r,s
for(new i = 1; i< get_maxplayers();i++)
{
if(s == 0) {
if(is_user_admin(i)){
r = true
s = 1
} else {
r = false
s = 1
}
}
}
return r
}
public pokaz_menu(id)
{
//if(!JestAdmin())
//{
if(uzyto != 1)
{
new formats[32]
format(formats, 31, "Pamietaj! Przed nastepnym uzciem poczekaj %ds")
new menu = menu_create("Vote Menu by Zielu","menu_wybor")
menu_additem(menu,"\wVotuj ban","1",0)
menu_additem(menu,"\wVotuj kick","2",0)
menu_additem(menu,"\wVotuj przedluzenie mapy","3",0)
menu_addtext(menu, formats, 1)
//menu_additem(menu,"\wVotuj przedluzenie mapy","3",0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
} else {
ColorChat(id, RED, "[VS]^x01 Musisz odczekac %d od poprzedniego vota!", timel)
}
//} else {
// ColorChat(id, RED, "[VS]^x01 Nie mozesz uzyc systemu. Administrator jest w tej chwili na serwerze!")
//}
}
public menu_wybor(id, menu, item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1: Voteban(id)
case 2: Votekick(id)
case 3: VoteMap(id)
}
return PLUGIN_HANDLED
}
public Voteban(id)
{
Wybieranie(id, "voteb")
}
public Votekick(id)
{
Wybieranie(id, "votek")
}
public Wybieranie(id, const pub[])
{
new menu = menu_create("Gracz:", pub)
for(new i = 1; i< get_maxplayers();i++)
{
new name[32]
get_user_name(i, name, 31)
new formats[32]
format(formats, 31, "%d", i)
menu_additem(menu, name, formats, 0)
}
menu_additem(menu, "\rAnuluj", "34", 0)
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED
}
public voteb(id, menu, item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
for(new i = 1; i < get_maxplayers(); i++)
{
if(key == i) votujbana(id, i)
}
if(key == 34)
{
pokaz_menu(id)
set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 4.0)
show_hudmessage(id, "Anulowales!")
}
return PLUGIN_HANDLED
}
public votek(id, menu, item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
for(new i = 1; i < get_maxplayers(); i++)
{
if(key == i) votujkick(id, i)
}
if(key == 34)
{
pokaz_menu(id)
set_hudmessage(0, 255, 0, -1.0, 0.3, 0, 6.0, 4.0)
show_hudmessage(id, "Anulowales!")
}
return PLUGIN_HANDLED
}
public votujbana(id, user)
{
new lol[32], name[32]
get_user_name(user, name, 31)
format(lol, 31, "Ban dla")
new menu = menu_create(lol, "glos")
menu_additem(menu, "\rTak", "1", 0)
menu_additem(menu, "\rNie", "2", 0)
menu_display(0,menu,0)
aktywne = 1
idvote = user
set_task(60.0, "koniecvotaban", 0, "", 0, "a", 1)
set_task(1.0, "hud", 0, "", 0, "a", 60)
new name2[32]
get_user_name(id, name2, 31)
ColorChat(0, RED, "[VS]^x01 Gracz %s rozpoczal glosowanie za pomoca /voty", name2)
return PLUGIN_HANDLED
}
public votujkick(id, user)
{
new lol[32], name[32]
get_user_name(user, name, 31)
format(lol, 31, "Kick dla %s?", name)
new menu = menu_create(lol, "glos")
menu_additem(menu, "\rTak", "1", 0)
menu_additem(menu, "\rNie", "2", 0)
menu_display(0,menu,0)
aktywne = 1
idvote = user
set_task(60.0, "koniecvotakick", 0, "", 0, "a", 1)
set_task(1.0, "hud", 0, "", 0, "a", 60)
new name2[32]
get_user_name(id, name2, 31)
ColorChat(0, RED, "[VS]^x01 Gracz %s rozpoczal glosowanie za pomoca /voty", name2)
return PLUGIN_HANDLED
}
public VoteMap(id)
{
new lol[32]
format(lol, 31, "Przedluzamy mape?")
new menu = menu_create(lol, "glos")
menu_additem(menu, "\rTak", "1", 0)
menu_additem(menu, "\rNie", "2", 0)
menu_display(id,menu,0)
aktywne = 1
set_task(60.0, "koniecvotamap", 0, "", 0, "a", 1)
set_task(1.0, "hud", 0, "", 0, "a", 60)
new name2[32]
get_user_name(id, name2, 31)
ColorChat(0, RED, "[VS]^x01 Gracz %s rozpoczal glosowanie za pomoca /voty", name2)
return PLUGIN_HANDLED
}
public glos(id, menu, item)
{
if(item==MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(aktywne == 0)
{
ColorChat(id, RED, "[VS]^x01 Glosowanie zakonczylo sie juz!")
} else {
tak += 1
}
}
case 2:
{
if(aktywne == 0)
{
ColorChat(id, RED, "[VS]^x01 Glosowanie zakonczylo sie juz!")
} else {
nie += 1
}
}
}
return PLUGIN_HANDLED
}
public lud()
{
new lol
for(new i = 1; i< get_maxplayers();i++)
{
if(is_user_connected(i)) lol += 1
}
return lol
}
public koniecvotaban(id)
{
if(aktywne == 1)
{
aktywne = 0
new proc
if(tak >= nie) proc = tak - nie / lud() * 100
if(nie >= tak) proc = nie - tak / lud() * 100
if(proc >= 55)
{
ColorChat(id, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(id, GREEN, "[VS]^x01 Gracz %s zostal zbanowany z powodu glosowania.")
console_print(idvote, "********************************************************")
console_print(idvote, "* *")
console_print(idvote, "* Zostales zbanowany! *")
console_print(idvote, "*______________________________________________________*")
console_print(idvote, "* *")
console_print(idvote, "* Bana dostales poprzez glosowanie graczy, *")
console_print(idvote, "* aby go wyjasnic napisz na forum serwera.. *")
console_print(idvote, "********************************************************")
server_cmd("kick #%d ^"Dostales BANA! Sprawdz konsole!^"")
server_cmd("banid #%d %d", bantime, idvote)
uzyto = 1
set_task(timel, "koniect", 1,_, 0, "a", 1)
tak = 0
nie = 0
} else {
ColorChat(0, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(0, RED, "[VS]^x01 Glosowanie nieudane!")
}
}
return PLUGIN_HANDLED
}
public koniecvotakick(id)
{
if(aktywne == 1)
{
aktywne = 0
new proc
if(tak >= nie) proc = tak - nie / lud() * 100
if(nie >= tak) proc = nie - tak / lud() * 100
if(proc >= 55)
{
new name[32]
get_user_name(idvote, name, 31)
ColorChat(id, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(id, GREEN, "[VS]^x01 Gracz %s zostal zkickowany z powodu glosowania.", name)
console_print(idvote, "********************************************************")
console_print(idvote, "* *")
console_print(idvote, "* Zostales zkickowny! *")
console_print(idvote, "*______________________________________________________*")
console_print(idvote, "* *")
console_print(idvote, "* Kick dostales poprzez glosowanie graczy, *")
console_print(idvote, "* aby to wyjasnic napisz na forum serwera.. *")
console_print(idvote, "********************************************************")
server_cmd("kick #%d ^"Dostales KICKA! Sprawdz konsole!^"")
//server_cmd("banid #%d %d", bantime, idvote)
uzyto = 1
set_task(timel, "koniect", 1,_, 0, "a", 1)
tak = 0
nie = 0
} else {
ColorChat(0, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(0, RED, "[VS]^x01 Glosowanie nieudane!")
}
}
return PLUGIN_HANDLED
}
public koniecvotamap(id)
{
if(aktywne == 1)
{
aktywne = 0
new proc
if(tak >= nie) proc = tak - nie / lud() * 100
if(nie >= tak) proc = nie - tak / lud() * 100
if(proc >= 55)
{
new name[32]
get_user_name(idvote, name, 31)
ColorChat(id, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(id, GREEN, "[VS]^x01 Mapa zostala przedluzona o 20 minut.")
server_cmd("mp_timelimit 25")
uzyto = 1
set_task(timel, "koniect", 1,_, 0, "a", 1)
tak = 0
nie = 0
} else {
ColorChat(0, GREEN, "[VS]^x01 Glosowanie zakonczone. Rezultat: %d glosow na TAK, %d glosow na NIE.", tak, nie)
ColorChat(0, RED, "[VS]^x01 Glosowanie nieudane!")
}
}
return PLUGIN_HANDLED
}
public koniect(id)
{
if(uzyto == 1)
{
uzyto = 0
}
return PLUGIN_HANDLED
}
public hud(id)
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(0, "Tak: %d, Nie: %d", tak, nie)
}