Votowanie czasu mapy
Serwis znalezionych frazguitar-world portal
Tak jak w opisie, po upływie 3 minut od zmiany mapy wyskakuje VOTE z zapytaniem do graczy ile czasu ową mapę chcą grać. Załaczam 2 wersje
pierwsza:
-5 opcji glosowania
*15
*20
*25
*30
*35
druga:
-3 opcje glosowania
*20
*25
*30
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "TimeLimit vote"
#define AUTHOR "many"
#define VERSION "1.0.0"
new choises[6]
new Float:g_timelimit
public plugin_init()
{
register_plugin("PLUGIN", "VERSION", "AUTHOR")
set_task(180.0, "start_vote");
}
public start_vote(id)
{
new menu = menu_create("\rIle ma byc grana mapa?", "menu_handler")
menu_additem(menu, "\w15 minut", "1", 0)
menu_additem(menu, "\w20 minut", "2", 0)
menu_additem(menu, "\w25 minut", "3", 0)
menu_additem(menu, "\w30 minut", "4", 0)
menu_additem(menu, "\w35 minut", "5", 0)
menu_addblank(menu, 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
new players[32], inum
get_players(players, inum, "ch")
for(new i = 0; i < inum; i++)
{
menu_display(players[i], menu, 0)
}
set_task(15.0, "finish_vote")
choises[1] = choises[2] = choises[3] = choises[4] = choises[5] = 0
return 1
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_cancel(id)
return PLUGIN_HANDLED
}
new data[6], name[32]
new access, callback
menu_item_getinfo(menu, item, access, data, 5, _, _, callback)
new key = str_to_num(data)
get_user_name(id, name, 31)
switch (key)
{
case 1:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 15 minut", name);
}
case 2:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 20 minut", name);
}
case 3:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 25 minut", name);
}
case 4:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 30 minut", name);
}
case 5:
{
client_print (0, print_chat, "[AMXX] %s zaglosowal na 35 minut", name);
}
}
++choises[key]
menu_cancel(id)
return PLUGIN_HANDLED
}
public finish_vote()
{
g_timelimit = get_cvar_float("mp_timelimit")
if(choises[1] > choises[2] && choises[1] > choises[3] && choises[1] > choises[4] && choises[1] > choises[5])
{
client_print(0, print_chat, "[AMXX] Opcja ^"15 minut^" wygrala przez %d votow", choises[1])
server_cmd("mp_timelimit 15");
}
else if(choises[2] > choises[1] && choises[2] > choises[3] && choises[2] > choises[4] && choises[2] > choises[5])
{
client_print(0, print_chat, "[AMXX] Opcja ^"20 minut^" wygrala przez %d votow", choises[2])
server_cmd("mp_timelimit 20");
}
else if(choises[3] > choises[1] && choises[3] > choises[2] && choises[3] > choises[4] && choises[3] > choises[5])
{
client_print(0, print_chat, "[AMXX] Opcja ^"25 minut^" wygrala przez %d votow", choises[3])
server_cmd("mp_timelimit 25");
}
else if(choises[4] > choises[1] && choises[4] > choises[2] && choises[4] > choises[3] && choises[4] > choises[5])
{
client_print(0, print_chat, "[AMXX] Opcja ^"30 minut^" wygrala przez %d votow", choises[4])
server_cmd("mp_timelimit 30");
}
else if(choises[5] > choises[1] && choises[5] > choises[2] && choises[5] > choises[3] && choises[5] > choises[4])
{
client_print(0, print_chat, "[AMXX] Opcja ^"35 minut^" wygrala przez %d votow", choises[5])
server_cmd("mp_timelimit 35");
}
}
public plugin_end()
{
set_cvar_float("mp_timelimit", g_timelimit)
}
Mozna edytowac do woli, ilosc mozliwosci, czasy oraz czas w którym ma się zacząć vote.
w załączniku sma + amxx.
THX przyda sie
zglaszam problem pluginu....
w momencie kiedy nikt nie odda glosu (np nie ma nikogo na serwie) czas mapy ustawia sie na nieskonczony... czyt: NO TIMELIMIT.
idzie to naprawic w jakis sposob? np:
number of players = x
if x=0 vote disabled? :D
sprawdzalem kilka kombinacji edycji 'na oko' tego pluginu zeby ustawial timelimit 20 przy braku glosow, i przy glosach 'rownych' 1=2 1=3 2=3, niestety error przy kompilowaniu = sęk w tym że nie wiem jak to poprawnie zapisać ;)
Poprawione.
W momencie gdy nikt nie zagłosuje timelimit zmieniany na 20
.sma i .amxx w załączniku
wstawie na testy :)))) oczywiście dostałeś +1 do POMÓGŁ :*
heh juz wiem gdzie zrobilem blad :D
zamiast:
}
else if(choises[1] == 0 && choises[2] == 0 && choises[3] == 0 && choises[4] == 0 && choises[5] == 0)
{
zrobiłem:
}
else if(choises[1] = choises[2] && choises[2] = choises[3] && choises[3] = choises[1])
{
po pierwsze... 1 znak '=' do tego zamiast 0 dałem równość z innym glosowaniem :)
Przeróbka na prośbę headache.
Poprawiono działanie menu: gdy gracz nie wybrał żadnej z opcji menu nie znikało.
.amxx oraz .sma w załączniku
+1 do POMÓGŁ :) W imieniu swoim i innych używających pluginu -> dzieeeekuuujeeeeemyyyyyy x