Znalazłem to na pc, więc wstawiam. Jest to vote, które możemy wykorzystać w wielu eventach, etc. Vote wywołujemy komendą /vote, a po podliczeniu głosów dana funkcja zostaje wykonana pod koniec rundy.
Spoiler
#include <amxmodx>
#define VOTE 5// Od ilu "tak" ma cos sie wykonac
new bool:Vote[33]
new bool:Vote_Complete
new Vote_Num
public plugin_init() {
register_logevent("KoniecVote", 2, "1=Round_End")
register_clcmd("say /vote", "Vote1")//Kazdy moze rozpoczac vote
Vote_Num = VOTE
}
public Vote1(id) {
new Name[32]
if(Vote[id]) {
ChatColor(id, "!g[Vote] !yJuz Zaglosowales!")
return
}
Vote[id] = true
Vote_Num--
get_user_name(id, Name, 31)
if(Vote_Num > 0) {
ChatColor(0, "!g[Vote] !team%s !yZaglosowal na tak ! !y(Pozostalo !g%d !y glosow)", Name, Vote_Num)
ChatColor(0, "!g[Vote] !yNapisz !g/vote zeby zaglosowac")
} else {
set_hudmessage(255, 0, 0, 0.12, 0.19, 0, 6.0, 12.0)
show_hudmessage(id, "[Vote]^nGlosowanie Zakonczone!^nZaraz bedzie cos!")//Wiadomosc w hudzie,np zmiana mapy
Vote_Complete = true
}
}
public KoniecVote()
{
if(Vote_Complete)
{
ChatColor(0, "!g[Vote] !yNapisz !g/vote zeby zaglosowac")
server_cmd("changelevel de_dust2") //Tutaj dajemy co ma sie stac kiedy wyszlo na tak
}
}
public client_disconnect(id)
if(Vote[id]){
Vote_Num++
Vote[id] = false
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
if (id) players[0] = id; else get_players(players, count, "ch"); {
for (new i = 0; i < count; i++) {
if (is_user_connected(players[i])) {
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}