Votekick Player
#1
No tengo ideas para presentarme así que voy al grano, Este plugin es muy usado entre servidores pug (pick up game), o mix (como se les diga en su país), Y bien lo hice a pedido de un man.

El plugin inicia una votación para expulsar al player, Donde se abre dicho menú para todos los jugadores para elegir entre si o no.

Modo de uso
.votekick "Nombre" "Razón"

Si no ponen una razón, no se preocupen el mismo plugin les pone una pacman

Y también le puse una cvar para decidir en que tiempo acaba la votación, yo le puse 10 segundos Roflmao
Cvar
tiempo_vote "10.0"

Version 1.1
Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

new gRazon[32], gVic[32], time_index_iMaxPlayers

new votos[2]

#define TASK 6548

new bool:active

public plugin_init()
{
    
register_plugin("Votekick Player""1.1""OsweRRR")
    
    
register_clcmd(".votekick""cmdVotekick")
    
    
time_ register_cvar("tiempo_vote""10.0")
    
iMaxPlayers get_maxplayers();
}

public 
cmdVotekick(id)
{
    if(
active)
    {
        
console_print(id"[AMXX] Ya hay una votacion activa espera a que finalize.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
arg[32]
    
read_argv(1arg31)
    
    new 
target cmd_target(idargCMDTARGET_ALLOW_SELF)
    
    if(!
target)
        return 
PLUGIN_HANDLED
    
    read_argv
(2gRazon31)
    
    if(!
gRazon[0])
        
formatex(gRazon31"Sin Especificar.")
    
    
arrayset(votos02)
    
    
index_ target
    active 
true
    
    start_vote
()
    
    static 
name[32];
    
get_user_name(idname31)
    
    
client_print(0print_chat"[AMXX] Jugador %s inicio una votacion para expulsar a %s"namegVic)
    return 
PLUGIN_HANDLED
}

public 
start_vote()
{
    new 
info[85]
    
get_user_name(index_gVic31)
    
    
formatex(infocharsmax(info), "\wExpulsar: \r%s \d| \wRazon: \r%s"gVicgRazon)
    
    new 
menu menu_create(info"handle_vote")
    
    
menu_additem(menu"Si""1")
    
menu_additem(menu"No""2")
    
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
    for(new 
1<= iMaxPlayers; ++i)
    {
        if(!
is_user_connected(i))
            continue
        
        
menu_display(imenu0)
    }
    
    
set_task(Float:get_pcvar_float(time_), "end_vote"TASK)
}

public 
handle_vote(idmenuitem)
{
    if(!
active || item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iAccessiData[6], name[32], iCallBack
    menu_item_getinfo
(menuitemiAccessiDatacharsmax(iData), namecharsmax(name), iCallBack)
    
    switch(
str_to_num(iData))
    {
        case 
1votos[0]++
        case 
2votos[1]++
    }
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
client_disconnect(id)
{
    if(
index_ == id && active == true)
    {
        if(
task_exists(TASK))
            
remove_task(TASK)
        
        for(new 
1<= iMaxPlayers; ++i)
        {
            if(!
is_user_connected(i))
                continue;
            
menu_cancel(i);
        }
        
active false
        arrayset
(votos02)
    }
}

public 
end_vote()
{
    for(new 
1<= iMaxPlayers; ++i)
    {
        if(!
is_user_connected(i))
            continue;
        
menu_cancel(i)
    }
    
    if(
votos[0] > votos[1])
    {
        
client_print(0print_chat"[AMXX] El jugador %s, Fue expulsado con %d votos a favor."gVicvotos[0])
        
        
server_cmd("kick #%d ^"%s^""get_user_userid(index_), gRazon)
    }
    else if(
votos[1] > votos[0])
        
client_print(0print_chat"[AMXX] El jugador %s, No fue expulsado con %d votos en contra."gVicvotos[1])
    else
        
client_print(0print_chat"[AMXX] Los votos estan empatados por lo tanto no se expulsara a %s."gVic)
    
    
active false


Version 1.0
Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

new gRazon[32], gVic[32], time_index_

new votos[2]

new 
bool:active

public plugin_init()
{
    
register_plugin("Votekick Player""1.0""OsweRRR")
    
    
register_clcmd(".votekick""cmdVotekick")
    
    
time_ register_cvar("tiempo_vote""10.0")
}

public 
cmdVotekick(id)
{
    if(
active)
    {
        
console_print(id"[AMXX] Ya hay una votacion activa espera a que finalize.")
        return 
PLUGIN_HANDLED
    
}
    
    new 
arg[32]
    
    
read_argv(1arg31)
    
    new 
target cmd_target(idargCMDTARGET_ALLOW_SELF)
    
    if(!
target) return PLUGIN_HANDLED
    
    read_argv
(2gRazon31)
    
    if(!
gRazon[0])
        
formatex(gRazon31"Sin Especificar.")
    
    
arrayset(votos02)
    
    
index_ target
    
    active 
true
    start_vote
()
    
    static 
name[32]; get_user_name(idname31)
    
    
client_print(0print_chat"[AMXX] Jugador %s inicio una votacion para expulsar a %s"namegVic)
    
    return 
PLUGIN_HANDLED
}

public 
start_vote()
{
    new 
info[85]
    
get_user_name(index_gVic31)
    
    
formatex(infocharsmax(info), "\wExpulsar: \r%s \d| \wRazon: \r%s"gVicgRazon)
    
    new 
menu menu_create(info"handle_vote")
    
    
menu_additem(menu"Si""1")
    
menu_additem(menu"No""2")
    
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER)
    
    for(new 
1<= get_maxplayers(); ++i)
    {
        if(!
is_user_connected(i)) continue
        
        
menu_display(imenu0)
    }
    
    
set_task(Float:get_pcvar_float(time_), "end_vote")
}

public 
handle_vote(idmenuitem)
{
    if(!
active || item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
iAccessiData[6], name[32], iCallBack
    menu_item_getinfo
(menuitemiAccessiDatacharsmax(iData), namecharsmax(name), iCallBack)
    
    switch(
str_to_num(iData))
    {
        case 
1votos[0]++
        case 
2votos[1]++
    }
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
end_vote()
{
    for(new 
1<= get_maxplayers(); ++i)
    {
        if(!
is_user_connected(i)) continue;
        
        
menu_cancel(i)
    }
    
    if(
votos[0] > votos[1])
    {
        
client_print(0print_chat"[AMXX] El jugador %s, Fue expulsado con %d votos a favor."gVicvotos[0])
        
        
server_cmd("kick #%d ^"%s^""get_user_userid(index_), gRazon)
    }
    else if(
votos[1] > votos[0])
        
client_print(0print_chat"[AMXX] El jugador %s, No fue expulsado con %d votos en contra."gVicvotos[1])
    else
        
client_print(0print_chat"[AMXX] Los votos estan empatados por lo tanto no se expulsara a %s."gVic)
    
    
active false


Ragestart


Archivos adjuntos
.sma   Descargar AMXX / expulsion_jugador.sma (Tamaño: 2.67 KB / Descargas: 167)
.sma   Descargar AMXX / expulsion_jugador_v1_1.sma (Tamaño: 2.85 KB / Descargas: 208)
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#2
¿Cuántos votos "SÍ" se necesita para expulsar al jugador y cuántos votos "NO" se necesita para no expulsarlo??
Responder
#3
(05/03/2016, 04:47 AM)PhantomLord escribió: ¿Cuántos votos "SÍ" se necesita para expulsar al jugador y cuántos votos "NO" se necesita para no expulsarlo??

Ninguno, Si votos[0] tiene mas votos que votos[1], gana votos[0] y lo mismo pasa contrariamente, y si ambas tienen el mismo valor sale en igualación.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#4
buen aporte, seria mejor por porcentajes ya sabes, si el 70% no vota si, return; , pero esta fino, clonar la función y sirve para un sencillo voteban :$
Responder
#5
(08/03/2016, 05:22 AM)PredatorFlys escribió: buen aporte, seria mejor por porcentajes ya sabes, si el 70% no vota si, return; , pero esta fino, clonar la función y sirve para un sencillo voteban :$

Déjame le hago un par de updates quedara mas bonito al estilo del cs:go quizás.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#6
up 1.1
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#7
c mamut y mi anti zero ware donde esta?
Responder
#8
gracias por el aporte, este sirve mucho para los cerrados que reemplaza el vote de consola Sonrisa
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)