dar 1 solo votekick por mapa
#1
buenas como puedo hacer para que el votekick solo se pueda usar 1 vez por jugador por mapa y que si el jugador ya habia dado el votekick sale del server y vuelve a entrar a este todavia le bloque el votekick hasta el siguiente mapa

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new iMaxPlayers
new Votes[2]
new 
Razonee[40]
new 
g_szText[33][128];
new 
playerid
new Time 30
new Hud[2]
new 
trueEvent false

new gz_Prefix[]= "^1[^4Dragon^1]";

new 
PLUGIN[]=  "VoteKick"
new VERSION[]= "1.0"
new AUTHOR[]=  "Alejandro-."

new name[32];

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say .votekick""Vote")
    
register_clcmd("Razon""IngRazon");
    
iMaxPlayers get_maxplayers()
    
Hud[0] = CreateHudSyncObj()
    
Hud[1] = CreateHudSyncObj()
}

public 
Vote(id)
{
    new 
IDS[12]
    new 
menu menu_create("Hacer VoteKick""HandVoteKick");

    for(new 
1<= iMaxPlayersi++)
    {
        if(
is_user_connected(i) && cs_get_user_team(i) == cs_get_user_team(id) && id != i)
        {
            new 
name2[32];
            
get_user_name(iname2charsmax(name2))
            
formatex(IDScharsmax(IDS), "%d %d"iget_user_userid(i))
            
menu_additem(menufmt"%s"name2), IDS )
        }
    }
    
menu_setprop(menuMPROP_NEXTNAME"Seguir")
    
menu_setprop(menuMPROP_BACKNAME"Volver")
    
menu_setprop(menuMPROP_EXITNAME"Salir")
    
menu_display(idmenu0)
}

return 
PLUGIN_HANDLED;
}

public 
HandVoteKick(idmenuitem)
{
    new 
lolbuffer[12], userid
    menu_item_getinfo
(menuitemlolbuffercharsmax(buffer), __lol)

    new 
szid[3], szuserid[9
    
parse(bufferszidcharsmax(szid), szuseridcharsmax(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(idprint_team_default"%s El usuario es admin"gz_Prefix)
        return 
PLUGIN_HANDLED;
    }

    if(
trueEvent)
    {
        
client_print_color(idprint_team_default"%s ya ay una votacion en proceso"gz_Prefix)
        return 
PLUGIN_HANDLED;
    }

    
get_user_name(playeridnamecharsmax(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]) < )
    {
        
client_print(idprint_center"Razon demasiado corta"); 
        
client_cmd(id"messagemode ^"Razon^"");    
        return 
PLUGIN_HANDLED
    }

    if( 
strlen(g_szText[id]) > 32 )
    {
        
client_print(idprint_center"Razon demasiado larga"); 
        
client_cmd(id"messagemode ^"Razon^"");    
        return 
PLUGIN_HANDLED
    }

    
formatex(Razoneecharsmax(Razonee), "%s"g_szText[id])

    for(new 
1<= iMaxPlayersi++)
    {
        if(
is_user_connected(i))
        {
            if(
!= playerid)
            {
                
Menu____Kick(i)

            }
        }
    }
    
trueEvent true
    VoteCount
()
    
client_print_color(0,print_team_default"%s Se inicio un votekick hacia: ^4%s"gz_Prefixname)
    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"nameRazonee), "Hand_Kick");

    
menu_additem(menu"\ySi")
    
menu_additem(menu"\yNo")

    
menu_setprop(menuMPROP_NEXTNAME"Seguir")
    
menu_setprop(menuMPROP_BACKNAME"Volver")
    
menu_setprop(menuMPROP_EXITNAME"Salir")
    
menu_display(idmenu)
}

public 
Hand_Kick(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }

    
Votes[item]++
    return 
PLUGIN_HANDLED;
}

public 
VoteCount()
{
    if(
Time)
    {
        
Time--
        
set_hudmessage(52500, -1.00.0506.03.0)
        
ShowSyncHudMsg(0Hud[0], "[Dragon] Quedan %d para votar"Time)

        
set_hudmessage(255255255, -1.00.0706.03.0)
        
ShowSyncHudMsg(0Hud[1], "^n[Dragon] Victima: %s - Razon: %s^nSi: %d - No: %d"nameRazoneeVotes[0], Votes[1])

        
set_task(1.0"VoteCount"0)
    }
    else 
    {
        if(
Votes[0] > Votes[1])
        {
            if(!
is_user_connected(playerid))
            {
                
client_print_color(0print_team_default"^1[^4Dragon^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'"playeridRazonee)                // D O S   V E C E S   P O R    S I   A   C A S O

            
client_print_color(0print_team_default"^1[^4Dragon^1] El jugador^4 %s ^1fue kickeado por: ^3%s"nameRazonee)

            
set_hudmessage(50250500.050.3006.05.0)
            
show_hudmessage(0"/ / ---------------------- \ \^nComando ejecutado: Kick^njugador: %s^nRazon: %s^n\ \ ---------------------- / /"nameRazonee)
        }
        else 
client_print_color(0print_team_default"^1[^4Dragon^1] El jugador^4 %s^1 no fue kickeado."name)

        
Votes[0] = 0
        Votes
[1] = 0
        Time 
30
        trueEvent 
false
        remove_task
(0)
    }

Responder
#2
Sería así creo. Y lo otro tendrías que guardar la ip del player u algún dato y crear algún tipo de guardado.. creo que sería así igual. No estoy en casa como para testearlo
Código PHP:
new bool:bConnected[33];
client_putinserver(id) { bConnected[id] = true; }
client_disconnect(id) { bConnected[id] = false; }

funcion() { if(bConnected[id]) { // } } 
Responder
#3
(04/06/2019, 04:34 PM)Niper.-. escribió: Sería así creo. Y lo otro tendrías que guardar la ip del player u algún dato y crear algún tipo de guardado.. creo que sería así igual. No estoy en casa como para testearlo
Código PHP:
new bool:bConnected[33];
client_putinserver(id) { bConnected[id] = true; }
client_disconnect(id) { bConnected[id] = false; }

funcion() { if(bConnected[id]) { // } } 

como añadiria eso al votekick y como le crearia un cvars para yo despues si le quiero poner mas de 1 vez
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)