15/02/2019, 05:53 PM
(Última modificación: 20/05/2019, 11:55 PM por Alejandro. Edited 1 time in total.)
Simple votekick, creado para Pug Competitive.
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
native pug_get_state()
new iMaxPlayers
new Votes[2]
new Razonee[40]
new g_szText[33][128];
new playerid
new Time = 30
new Hud[2]
new trueEvent = false
enum _:PUGSTATE
{
NO_ALIVE = 0,
ALIVE,
COMMENCING
}
new gz_Prefix[]= "^1[^4INSURGENTES^1]";
new PLUGIN[]= "VoteKick"
new VERSION[]= "1.0"
new AUTHOR[]= "Alejandro-."
new name[32];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say .votekick", "Vote")
register_clcmd("Razon", "IngRazon");
iMaxPlayers = get_maxplayers()
Hud[0] = CreateHudSyncObj()
Hud[1] = CreateHudSyncObj()
}
public Vote(id)
{
if(pug_get_state() == ALIVE)
{
new IDS[12]
new menu = menu_create("Hacer VoteKick", "HandVoteKick");
for(new i = 1; i <= iMaxPlayers; i++)
{
if(is_user_connected(i) && cs_get_user_team(i) == cs_get_user_team(id) && id != i)
{
new name2[32];
get_user_name(i, name2, charsmax(name2))
formatex(IDS, charsmax(IDS), "%d %d", i, get_user_userid(i))
menu_additem(menu, fmt( "%s", name2), IDS )
}
}
menu_setprop(menu, MPROP_NEXTNAME, "Seguir")
menu_setprop(menu, MPROP_BACKNAME, "Volver")
menu_setprop(menu, MPROP_EXITNAME, "Salir")
menu_display(id, menu, 0)
}
return PLUGIN_HANDLED;
}
public HandVoteKick(id, menu, item)
{
new lol, buffer[12], userid
menu_item_getinfo(menu, item, lol, buffer, charsmax(buffer), _, _, lol)
new szid[3], szuserid[9]
parse(buffer, szid, charsmax(szid), szuserid, charsmax(szuserid))
playerid = str_to_num(szid)
userid = str_to_num(szuserid)
if(!is_user_connected(playerid)){
return PLUGIN_HANDLED;
}
if(userid != get_user_userid(playerid)) {
return PLUGIN_HANDLED;
}
if(is_user_admin(playerid))
{
client_print_color(id, print_team_default, "%s El usuario es admin", gz_Prefix)
return PLUGIN_HANDLED;
}
if(trueEvent)
{
client_print_color(id, print_team_default, "%s ya ay una votacion en proceso", gz_Prefix)
return PLUGIN_HANDLED;
}
get_user_name(playerid, name, charsmax(name))
client_cmd(id, "messagemode ^"Razon^"");
return PLUGIN_HANDLED;
}
public IngRazon(id)
{
read_args(g_szText[id], charsmax(g_szText[]));
remove_quotes(g_szText[id]);
trim(g_szText[id]);
if( strlen(g_szText[id]) < 3 )
{
client_print(id, print_center, "Razon demasiado corta");
client_cmd(id, "messagemode ^"Razon^"");
return PLUGIN_HANDLED;
}
if( strlen(g_szText[id]) > 32 )
{
client_print(id, print_center, "Razon demasiado larga");
client_cmd(id, "messagemode ^"Razon^"");
return PLUGIN_HANDLED;
}
formatex(Razonee, charsmax(Razonee), "%s", g_szText[id])
for(new i = 1; i <= iMaxPlayers; i++)
{
if(is_user_connected(i))
{
if(i != playerid)
{
Menu____Kick(i)
}
}
}
trueEvent = true
VoteCount()
client_print_color(0,print_team_default, "%s Se inicio un votekick hacia: ^4%s", gz_Prefix, name)
return PLUGIN_HANDLED;
}
public Menu____Kick(id)
{
if(pug_get_state() != ALIVE) return;
new menu = menu_create(fmt("\r¿ \wDeseas Kickear ah: \y%s\r ?^n\wRazon:\y %s", name, Razonee), "Hand_Kick");
menu_additem(menu, "\ySi")
menu_additem(menu, "\yNo")
menu_setprop(menu, MPROP_NEXTNAME, "Seguir")
menu_setprop(menu, MPROP_BACKNAME, "Volver")
menu_setprop(menu, MPROP_EXITNAME, "Salir")
menu_display(id, menu)
}
public Hand_Kick(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED;
}
Votes[item]++
return PLUGIN_HANDLED;
}
public VoteCount()
{
if(Time)
{
Time--
set_hudmessage(5, 250, 0, -1.0, 0.05, 0, 6.0, 3.0)
ShowSyncHudMsg(0, Hud[0], "[ISG] Quedan %d para votar", Time)
set_hudmessage(255, 255, 255, -1.0, 0.07, 0, 6.0, 3.0)
ShowSyncHudMsg(0, Hud[1], "^n[ISG] Victima: %s - Razon: %s^nSi: %d - No: %d", name, Razonee, Votes[0], Votes[1])
set_task(1.0, "VoteCount", 0)
}
else
{
if(Votes[0] > Votes[1])
{
if(!is_user_connected(playerid))
{
client_print_color(0, print_team_default, "^1[^4INSURGENTES^1] El jugador^4 %s ^1Ya no se encuentra en el servidor", name)
return;
}
server_cmd("kick #%i 'Razon: %s'", get_user_userid(playerid), Razonee) // D O S V E C E S P O R S I A C A S O
server_cmd("kick ^"%n^" 'Razon: %s'", playerid, Razonee) // D O S V E C E S P O R S I A C A S O
client_print_color(0, print_team_default, "^1[^4INSURGENTES^1] El jugador^4 %s ^1fue kickeado por: ^3%s", name, Razonee)
set_hudmessage(50, 250, 50, 0.05, 0.30, 0, 6.0, 5.0)
show_hudmessage(0, "/ / ---------------------- \ \^nComando ejecutado: Kick^njugador: %s^nRazon: %s^n\ \ ---------------------- / /", name, Razonee)
}
else client_print_color(0, print_team_default, "^1[^4INSURGENTES^1] El jugador^4 %s^1 no fue kickeado.", name)
Votes[0] = 0
Votes[1] = 0
Time = 30
trueEvent = false
remove_task(0)
}
}