Pausa táctica [v1.0]
#1
Pausa Táctica [v1.0]

Síntesis:

Buenas! Vengo a dejar mi primer aportesito la cual cuya función es la pausa táctica al estilo CS:GO solicitado por votos y "agrega" dicha pausa tecnica/táctica en el freezetime de la siguiente ronda!

Ejemplo de uso:

En say: ".pausa" solicitas pausa la cual se suma como voto (requerido cierta cantidad de votos en un mismo equipo); una vez confirmado los votos, se procede a cumplir dicha pausa en la siguiente ronda agregando el tiempo (a través de comando) asignado al valor del freezetime. En la siguiente ronda vuelve el freezetime original.

Comandos consola:

votes_required "valor" //Cantidad de votos necesarios para que se efectúe la pausa.
pause_time "valor" //Valor en segundos para agregar al freezetime de la siguiente ronda.

Código:
Ejemplo:
amx_cvar votes_required "3"
amx_cvar pause_time "60"

Includes:

Código PHP:
#include <amxmodx> 

Código:

Código PHP:
#include <amxmodx>

new g_iPauseVotesCT;  // Contador de votos de pausa para CT
new g_iPauseVotesT;   // Contador de votos de pausa para T
new g_iPauseInProgressCT[33]; // Indica si una pausa está en curso para CT
new g_iPauseInProgressT[33];  // Indica si una pausa está en curso para T
new g_fOriginalFreezeTime;    // Almacena el valor original del "freezetime"
new g_bPausaTacticaSolicitadaCT//Indica si hay una pausa solicitada por los CT
new g_bPausaTacticaSolicitadaT//Indica si hay una pausa solicitada por los T
new g_iVotesRequired// Número mínimo de votos requeridos por equipo
new g_iPauseTime// Tiempo de la pausa tactica
new g_bHasVoted[33]; // Array para rastrear si un jugador ha votado

public plugin_init()
{
    
register_plugin("Pausa Tactica""1.0""acetatomil");
    
    
register_clcmd("say .pausa""cmdPause");
    
    
register_event("HLTV""event_new_round""a""1=0""2=0")
    
    
g_iVotesRequired register_cvar("votes_required""1");
    
g_iPauseTime register_cvar("pause_time""60");
    
    
g_fOriginalFreezeTime get_cvar_num("mp_freezetime");
    
g_iVotesRequired get_cvar_pointer("votes_required");
    
g_iPauseTime get_cvar_pointer("pause_time");
    
    for (new 
0sizeof(g_bHasVoted); i++) //Reiniciar contador individual
        
g_bHasVoted[i] = false;
}

public 
cmdPause(id)
{
    new 
pName[32];
    
get_user_name(id,pName,31);
    
    if(
is_user_alive(id))
    {
        if(
g_bPausaTacticaSolicitadaCT || g_bPausaTacticaSolicitadaT)
            
client_print(idprint_chat"La votacion de pausa tactica esta cerrada, dado que, los %s ya la han solicitado para la siguiente ronda.", (g_bPausaTacticaSolicitadaCT "CT" "T"));

        else if(
get_user_team(id) == && !g_iPauseInProgressCT[id])
        {
            if(!
g_bHasVoted[id])
            {
                
g_iPauseVotesCT++;
                
g_bHasVoted[id] = true;
                
                if(
g_iPauseVotesCT >= get_pcvar_num(g_iVotesRequired))
                {
                    
g_iPauseInProgressCT[id] = true;
                    
g_bPausaTacticaSolicitadaCT true;
                    
client_print(0print_chat"Se confirmo una pausa tactica para los CT en la siguiente ronda.");
                    
PausarJuego(id);
                }
                
client_print(0print_chat"%s hizo voto de pausa tactica! %d/%d"pNameg_iPauseVotesCTget_pcvar_num(g_iVotesRequired));
            }
            else
                
client_print(idprint_chat"Ya haz solicitado tu voto.");
            return 
PLUGIN_HANDLED;
        }
        else if(
get_user_team(id) == && !g_iPauseInProgressT[id])
        {    
            if(!
g_bHasVoted[id])
            {
                
g_iPauseVotesT++;
                
g_bHasVoted[id] = true;
                
                if(
g_iPauseVotesT >= get_pcvar_num(g_iVotesRequired))
                {
                    
g_iPauseInProgressT[id] = true;
                    
g_bPausaTacticaSolicitadaT true;
                    
client_print(0print_chat"Se confirmo una pausa tactica para los T en la siguiente ronda.");
                    
PausarJuego(id);
                }
                
client_print(0print_chat"%s hizo voto de pausa tactica! %d/%d"pNameg_iPauseVotesTget_pcvar_num(g_iVotesRequired));
            }
            else
                
client_print(idprint_chat"Ya haz solicitado tu voto.");
            return 
PLUGIN_HANDLED;
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
PausarJuego(id)
{        
    
g_iPauseInProgressCT[id] = false;
    
g_iPauseInProgressT[id] = false;

    
set_cvar_num("mp_freezetime", (get_pcvar_num(g_iPauseTime) + g_fOriginalFreezeTime));
}

public 
event_new_round()
{
    
set_task(2.0"updateFreeze");
}

public 
updateFreeze(id)
{
    for (new 
0sizeof(g_bHasVoted); i++) //Reiniciar contador individual
        
g_bHasVoted[i] = false;
    
    
g_bPausaTacticaSolicitadaCT false;
    
g_bPausaTacticaSolicitadaT false;
    
    
g_iPauseVotesCT 0;  // Reiniciar contador de votos CT
    
g_iPauseVotesT 0;  // Reiniciar contador de votos T
    
    
set_cvar_num("mp_freezetime"g_fOriginalFreezeTime);

(12/03/2014, 08:11 PM)roccoxx escribió: jajajajajajajajajajajajajajajaajajajajajaajajajajajajajajajajajajajajajajajajajajajajajajajjajajjajajajajaja

todo eso elevado a la quinta potencia.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)