Agregar vida en plugin
#1
Hola muy buenos dias a todos! Gran sonrisa

Hoy tengo una duda que si alguien me pudiera ayudar se lo agradeceria mucho, lo que pasa es que uso un plugin que es el Carnage
que funciona bien y todo pero me gustaria agregarle que cuando comienze el carnage le de a todos los usuarios una cantidad de vida que yo decida en mi caso 5000 pero e intentado agregarlo pero no me funciona y al comenzar el carnage no da la vida a los usuarios :c y ese es mi problema uwu

El codigo que utilizo es este, si alguien le puede echar un vistaso o decirme como hacer para agregar vida se lo agrecedere mucho!

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun> 
#include <cstrike>
native tienda_plasma(id);
native tienda_balrog(id);
native tienda_gatling(id);

#define PLUGIN "Carnage hns"
#define VERSION "1.2"
#define AUTHOR "Mongito100"
//Version 1.1 Agregado hud 
//Version 1.2 fix bug carnage aleatorio

new g_maxplayers //Varible q nos dira el maximo numero de jugadores del sv
new g_Carnage //Varible que nos indicara si es carngae o no
new g_Round //Varible q se encargara de contar las rondas para saber si es carnage
new g_Modcarnage//Variable para saber el mod carnage
new CvarTiempovotacion//Aqui se almacenara la cvar para cambiar el tiempo de votacion 
new CvarRoundCarnage //Aqui se almacenara la cvar para cambiar cada cuantas rondas se realiza el carnage
new CvarModCarnage
/*
    Aqui se almacenara la cvar para cambiar el mod carnage
    Cuando esta en 0 el carnage es aleatorio
    Cuando esta en 1 el carnage es por votacion
*/
new g_Envotacion//Variable para saber si estan votando
new g_TiempoVote//Varible que decrementara para ir mostrando cuanto tiempo queda para finalizar la votacion
new g_OpcionVotada[4]//Variable para saber la opcion q se voto
new g_OpcionesAzar[4//Variable para obtener 4 mods al azar en caso de tenerse mas de 4
new Hudconteo//Variable para la sincronizacion del hud
new Hudcarnage//Variable para la sincronizacion del hud
new g_azar//Variable para elegir un carnage al azar

enum _:PACK_CARNAGE
{
    
NAME[10],
    
WEAPON[18],
    
CSW,
    
CARGADOR,
    
CUCHI,
    
HEADSHOOT,
    
}
new 
g_Packcarnage[][PACK_CARNAGE] =// Aca configuraremos como queremos que sea el carnage
{
//      Nombre    weapon del arma  csw del arma    cargador    si tienen cuchi    si es only headshoot
    
"PLASMAGUN",    "weapon_awp",        CSW_AWP,          40,              0,                        0                },
    { 
"DEAGLE""weapon_deagle",    CSW_DEAGLE,      100,              0,                          1          },
    { 
"GLATING",      "weapon_m3",        CSW_M3,            30,                1,                        0                }
}
new 
g_CantidadMods sizeof g_Packcarnage//Variable para saber la la cantidad de mods

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
        
    
register_event("HLTV" "round_start" "a""1=0""2=0")//Registramos el comienzo de la ronda
    
register_logevent("round_end"2"1=Round_End")//Registramos cuando finaliza la ronda
    
RegisterHamHam_Spawn"player""fw_player_spawn" ,1//Registramos cuando un jugador spawnea
    
register_clcmd("say /carnage" ,"cmd_mensajecaranage")//Registramos el /carnagee para informar cuantas rondas faltan
    
    
Hudconteo CreateHudSyncObj()
    
HudcarnageCreateHudSyncObj()
    
    
CvarRoundCarnage  register_cvar("carnage_round""10")
    
CvarModCarnage    register_cvar("carnage_mod""1")
    
CvarTiempovotacion register_cvar("carnage_tiempovotacion""10")
        
g_maxplayers get_maxplayers( )
    
    
set_task(1.0"ShowHUD"___"b")//Creamos un task continuo para avisar cuantas rondas quedan para el carnage
}
    
    
public 
round_start()
{
    
g_Carnage //Desimos q no es carnage seteandola esta variable en 0
    
g_Round++//Incrementamos el contador de rondas
    
if(get_pcvar_num(CvarModCarnage) &&  g_Round+== get_pcvar_num(CvarRoundCarnage))
        
VoteCarnage()//Si el carnage es por votacion y la ronda siguiente es carnage se envia la votacion
    
if(g_Round == get_pcvar_num(CvarRoundCarnage))//Si la ronda es carnage...
    
{
        
g_Carnage 1//Seteamos la variable indicadora de carnage en 1
        
g_Round  =  0//Reseteamos el contador de rondas
        
set_cvar_num("amx_ltm"0)//Desactivamos los lasers
        
set_cvar_num("hns_hiders_knife"2)//Le damos cuchicho a los tt
        
set_cvar_num("hns_hiders_flashbangs"0)//Les sacamos las flash a los tt
        
set_cvar_num("hns_hiders_smokegren"0)//Les sacamos las congeladoras a los tt 
        
set_cvar_num("hns_autobhop",0//DESABILITAR AUTOBUNNY
        
set_cvar_num("hns_max_saltos",0//saltos
        
set_cvar_num("amx_heal @all"5000); //INTETNO 1 DE DAR VIDA NO FUNCIONA
        
set_cvar_num("amx_heal @all"5000)  //INTENTO 2 DE DAR VIDA NO FUNCIONA 
    
}    
}

public 
round_end()
{
    if(
g_Round+== get_pcvar_num(CvarRoundCarnage))//Si la proxima ronda es carnage
        
set_cvar_num("hns_tiempo_conteo"0)//Desactivo el tiempo para esconderse
    //NOTA:Lo hago aca para evitar bugs
    
if(g_Carnage)//Si ya termino el carnage volvemos a los valores por default
    
{
        
set_cvar_num("amx_ltm"1)
        
set_cvar_num("hns_tiempo_conteo"5)
        
set_cvar_num("hns_hiders_knife"1)
        
set_cvar_num("hns_hiders_flashbangs"2)
        
set_cvar_num("hns_hiders_smokegren"1)
        
set_cvar_num("hns_autobhop",1)
        
set_cvar_num("hns_max_saltos",2)
        
set_user_hitzones(00255)
    }
    
g_azar 0
}
        
public 
fw_player_spawn(id)
if(
is_user_alive(id))
    
set_task(2.0,"chequear_carnage",id+100)
/*Hacemos que chequee en 2 seg si es carnage, algunos se preguntaran por q aca y no en el round start, la respuesta es 
simple por q si alguien entra al sv cuando ya comenzo la ronda y aparece vivo no se le setearian las armas del carnage*/

public cmd_mensajecaranage(id)
{
    if(
g_Carnage)//Si es carnage le informamos q carnage es y si es only headshoot
        
client_print(id,print_chat,"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")
    else
//Si no le informamos cuantas rondas faltan
        
client_print(id,print_chat,"Faltan %d ronda%s para carnage",get_pcvar_num(CvarRoundCarnage)-g_Round ,get_pcvar_num(CvarRoundCarnage)-g_Round == "" :"s")
}
public 
ShowHUD()
{
    if(!
g_Carnage)
    {
        
set_hudmessage(050100, -1.00.0611.01.01.01.0)
        
ShowSyncHudMsg(0Hudcarnage"Falta%s %d ronda%s para carnage"get_pcvar_num(CvarRoundCarnage) - g_Round "n" ""get_pcvar_num(CvarRoundCarnage) - g_Round get_pcvar_num(CvarRoundCarnage) - g_Round  "s" "")
    }
}

public 
VoteCarnage()
{
    new 
VoteTipoCarnage menu_create("\r Elegir el mod carnage""handle_votecarnage"),temp[2]
    if( 
g_CantidadMods 3)//Si hay mas de 4 mods carnage
    
{
        
        
g_OpcionesAzar generar_voteazar()//Elijo al azar entre 4 de ellas
        
for(new i0;i<3;i++)//agrego cada mod a la votacion
        
{
            
num_to_str(i,temp,2)
            
menu_additem(VoteTipoCarnage ,g_Packcarnage[g_OpcionesAzar[i]][NAME],temp)
        }
    }
    else 
//si no...
    
{
        for(new 
0sizeof g_Packcarnagei++)//agrego cada mod a la votacion
        
{
            
num_to_str(i,temp,2)
            
menu_additem(VoteTipoCarnage ,g_Packcarnage[i][NAME],temp)
        }
    }
    for( new 
1<= g_maxplayersi++ )    //Muestro el menu de votacion a todos los jugadores conectados
        
if( is_user_connected) )    
            
menu_displayiVoteTipoCarnage)
            
    
g_Envotacion //Comenzo la votacion
    
    //Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
    
set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
    
ShowSyncHudMsg(0,Hudconteo,"La votacion finalizara en %d segundos",get_pcvar_num(CvarTiempovotacion))
    
    
g_TiempoVote get_pcvar_num(CvarTiempovotacion)
    
set_task(1.0"Votefinalizado",_,_,_"a"get_pcvar_num(CvarTiempovotacion)+1)
    
//Hago que se llame a la funcion la cantidad de segundos q debe contar + 1 para  q finalice la votacion
}
public 
handle_votecarnageidiMenuitem )
{
    if( !
g_Envotacion)
        return
    new 
iData[6], iAccessiCallback,iName[64],szName[33]
    
menu_item_getinfoiMenuitemiAccessiData,5iName63iCallback )
    
get_user_name(id,szName,charsmax(szName))
    
g_OpcionVotadastr_to_numiData ) ]++
    
client_print(0,print_chat"El juagador %s a votado carnage %s",szName,iName)
}

public 
Votefinalizado()
{
    if(
g_TiempoVote)//Mientras que el tiempo de votacion sea mayor a 0
    
{
        
g_TiempoVote--//Se resta 1 seg
        
        //Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
        
set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
        
show_hudmessage(0"La votacion finalizara en %d segundos",g_TiempoVote)
        return
    }
    
g_Envotacion 0    //Finalizo la votacion
    
new Opcionganadora 0
    
    
for( new 04a++ )//Verifico cual es la opcion que fue seleccionada mas veces
        
if( g_OpcionVotadaOpcionganadora ] < g_OpcionVotada] )
            
Opcionganadora a
    
    
for(new i=;i<4i++)//Restablesco las opciones votadas  a 0 para el proximo vote
        
g_OpcionVotada[i]=0    
    
    
if( g_CantidadMods 3)//Si hay mas de 4 mods carnage
        
g_Modcarnage g_OpcionesAzar[Opcionganadora]
    else
//Si no
        
g_Modcarnage Opcionganadora
    
    client_print
(0,print_chat"Ha ganado el Carnage %s",g_Packcarnage[g_Modcarnage][NAME])
        
}
    
public 
generar_voteazar()
{
    new 
eleccion[4]
    for(new 
i=0;i<4;i++)
        
eleccion[i] = random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
        
    
while(eleccion[0] == eleccion[1])//Mientras que la primera eleccion sea igual a la segunda...
        
eleccion[1] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[2] || eleccion[1] == eleccion[2] )//Mientras que la tercera eleccion sea igual a la primera o a la segunda...
        
eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[3] || eleccion[1] == eleccion[3] || eleccion[2] == eleccion[3] )//Mientras que la cuarta eleccion sea igual a la primera o a la segunda o a la tercera...
        
eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
        
    
return eleccion//Devolvemos el vector con los numeros al azar diferentes entre si
}


        
public 
chequear_carnage(id)
{
    if(!
g_Carnage )//Si no es carnage volvemos
        
return
    if(!
get_pcvar_num(CvarModCarnage) && !g_azar)//Si es carnage aleatorio y todavia no se desidio el mod...
    
{
        
g_azar 1
        g_Modcarnage
random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
    
}
    
id-=100

    strip_user_weapons
(id)//Le sacamos todas las armas hasta el cuchi
    
    
if(g_Packcarnage[g_Modcarnage][CUCHI])//Si el mod es con cuchi...
        
give_item(id,"weapon_knife")
        
    if(
g_Packcarnage[g_Modcarnage][HEADSHOOT])//Si el mod es headshoot...
        
set_user_hitzones(id,0,2)
    
    
//Le damos el arma del mod carnage    
    
give_item(idg_Packcarnage[g_Modcarnage][WEAPON])
    
cs_set_user_bpammo(idg_Packcarnage[g_Modcarnage][CSW],g_Packcarnage[g_Modcarnage][CARGADOR])
    if(
g_Modcarnage == 0tienda_plasma(id)
    if(
g_Modcarnage == 2tienda_gatling(id)
    if(
g_Modcarnage == 3tienda_balrog(id)    
    
    
//Mostramos un hud para informar que es carnage
    
set_hudmessage(050100, -1.00.0611.01.01.01.0)
    
show_hudmessage(id"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")


De ante mano muchas gracias Lml Lml
Responder
#2
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun> 
#include <cstrike>
native tienda_plasma(id);
native tienda_balrog(id);
native tienda_gatling(id);

#define PLUGIN "Carnage hns"
#define VERSION "1.2"
#define AUTHOR "Mongito100"
//Version 1.1 Agregado hud 
//Version 1.2 fix bug carnage aleatorio

new g_maxplayers //Varible q nos dira el maximo numero de jugadores del sv
new g_Carnage //Varible que nos indicara si es carngae o no
new g_Round //Varible q se encargara de contar las rondas para saber si es carnage
new g_Modcarnage//Variable para saber el mod carnage
new CvarTiempovotacion//Aqui se almacenara la cvar para cambiar el tiempo de votacion 
new CvarRoundCarnage //Aqui se almacenara la cvar para cambiar cada cuantas rondas se realiza el carnage
new CvarModCarnage
/*
    Aqui se almacenara la cvar para cambiar el mod carnage
    Cuando esta en 0 el carnage es aleatorio
    Cuando esta en 1 el carnage es por votacion
*/
new g_Envotacion//Variable para saber si estan votando
new g_TiempoVote//Varible que decrementara para ir mostrando cuanto tiempo queda para finalizar la votacion
new g_OpcionVotada[4]//Variable para saber la opcion q se voto
new g_OpcionesAzar[4//Variable para obtener 4 mods al azar en caso de tenerse mas de 4
new Hudconteo//Variable para la sincronizacion del hud
new Hudcarnage//Variable para la sincronizacion del hud
new g_azar//Variable para elegir un carnage al azar

enum _:PACK_CARNAGE
{
    
NAME[10],
    
WEAPON[18],
    
CSW,
    
CARGADOR,
    
CUCHI,
    
HEADSHOOT,
    
}
new 
g_Packcarnage[][PACK_CARNAGE] =// Aca configuraremos como queremos que sea el carnage
{
//      Nombre    weapon del arma  csw del arma    cargador    si tienen cuchi    si es only headshoot
    
"PLASMAGUN",    "weapon_awp",        CSW_AWP,          40,              0,                        0                },
    { 
"DEAGLE""weapon_deagle",    CSW_DEAGLE,      100,              0,                          1          },
    { 
"GLATING",      "weapon_m3",        CSW_M3,            30,                1,                        0    }
}
new 
g_CantidadMods sizeof g_Packcarnage//Variable para saber la la cantidad de mods
const CANTIDAD_VIDA 5000

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
        
    
register_event("HLTV" "round_start" "a""1=0""2=0")//Registramos el comienzo de la ronda
    
register_logevent("round_end"2"1=Round_End")//Registramos cuando finaliza la ronda
    
RegisterHamHam_Spawn"player""fw_player_spawn" ,1//Registramos cuando un jugador spawnea
    
register_clcmd("say /carnage" ,"cmd_mensajecaranage")//Registramos el /carnagee para informar cuantas rondas faltan
    
    
Hudconteo CreateHudSyncObj()
    
HudcarnageCreateHudSyncObj()
    
    
CvarRoundCarnage  register_cvar("carnage_round""10")
    
CvarModCarnage    register_cvar("carnage_mod""1")
    
CvarTiempovotacion register_cvar("carnage_tiempovotacion""10")
        
g_maxplayers get_maxplayers( )
    
    
set_task(1.0"ShowHUD"___"b")//Creamos un task continuo para avisar cuantas rondas quedan para el carnage
}
    
    
public 
round_start()
{
    
g_Carnage //Desimos q no es carnage seteandola esta variable en 0
    
g_Round++//Incrementamos el contador de rondas
    
if(get_pcvar_num(CvarModCarnage) &&  g_Round+== get_pcvar_num(CvarRoundCarnage))
        
VoteCarnage()//Si el carnage es por votacion y la ronda siguiente es carnage se envia la votacion
    
if(g_Round == get_pcvar_num(CvarRoundCarnage))//Si la ronda es carnage...
    
{
        
g_Carnage 1//Seteamos la variable indicadora de carnage en 1
        
g_Round  =  0//Reseteamos el contador de rondas
        
set_cvar_num("amx_ltm"0)//Desactivamos los lasers
        
set_cvar_num("hns_hiders_knife"2)//Le damos cuchicho a los tt
        
set_cvar_num("hns_hiders_flashbangs"0)//Les sacamos las flash a los tt
        
set_cvar_num("hns_hiders_smokegren"0)//Les sacamos las congeladoras a los tt 
        
set_cvar_num("hns_autobhop",0//DESABILITAR AUTOBUNNY
        
set_cvar_num("hns_max_saltos",0//saltos
        
set_cvar_num("amx_heal @all"5000); //INTETNO 1 DE DAR VIDA NO FUNCIONA
        
set_cvar_num("amx_heal @all"5000)  //INTENTO 2 DE DAR VIDA NO FUNCIONA 
    
}    
}

public 
round_end()
{
    if(
g_Round+== get_pcvar_num(CvarRoundCarnage))//Si la proxima ronda es carnage
        
set_cvar_num("hns_tiempo_conteo"0)//Desactivo el tiempo para esconderse
    //NOTA:Lo hago aca para evitar bugs
    
if(g_Carnage)//Si ya termino el carnage volvemos a los valores por default
    
{
        
set_cvar_num("amx_ltm"1)
        
set_cvar_num("hns_tiempo_conteo"5)
        
set_cvar_num("hns_hiders_knife"1)
        
set_cvar_num("hns_hiders_flashbangs"2)
        
set_cvar_num("hns_hiders_smokegren"1)
        
set_cvar_num("hns_autobhop",1)
        
set_cvar_num("hns_max_saltos",2)
        
set_user_hitzones(00255)
    }
    
g_azar 0
}
        
public 
fw_player_spawn(id)
if(
is_user_alive(id))
    
set_task(2.0,"chequear_carnage",id+100)
/*Hacemos que chequee en 2 seg si es carnage, algunos se preguntaran por q aca y no en el round start, la respuesta es 
simple por q si alguien entra al sv cuando ya comenzo la ronda y aparece vivo no se le setearian las armas del carnage*/

public cmd_mensajecaranage(id)
{
    if(
g_Carnage)//Si es carnage le informamos q carnage es y si es only headshoot
        
client_print(id,print_chat,"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")
    else
//Si no le informamos cuantas rondas faltan
        
client_print(id,print_chat,"Faltan %d ronda%s para carnage",get_pcvar_num(CvarRoundCarnage)-g_Round ,get_pcvar_num(CvarRoundCarnage)-g_Round == "" :"s")
}
public 
ShowHUD()
{
    if(!
g_Carnage)
    {
        
set_hudmessage(050100, -1.00.0611.01.01.01.0)
        
ShowSyncHudMsg(0Hudcarnage"Falta%s %d ronda%s para carnage"get_pcvar_num(CvarRoundCarnage) - g_Round "n" ""get_pcvar_num(CvarRoundCarnage) - g_Round get_pcvar_num(CvarRoundCarnage) - g_Round  "s" "")
    }
}

public 
VoteCarnage()
{
    new 
VoteTipoCarnage menu_create("\r Elegir el mod carnage""handle_votecarnage"),temp[2]
    if( 
g_CantidadMods 3)//Si hay mas de 4 mods carnage
    
{
        
        
g_OpcionesAzar generar_voteazar()//Elijo al azar entre 4 de ellas
        
for(new i0;i<3;i++)//agrego cada mod a la votacion
        
{
            
num_to_str(i,temp,2)
            
menu_additem(VoteTipoCarnage ,g_Packcarnage[g_OpcionesAzar[i]][NAME],temp)
        }
    }
    else 
//si no...
    
{
        for(new 
0sizeof g_Packcarnagei++)//agrego cada mod a la votacion
        
{
            
num_to_str(i,temp,2)
            
menu_additem(VoteTipoCarnage ,g_Packcarnage[i][NAME],temp)
        }
    }
    for( new 
1<= g_maxplayersi++ )    //Muestro el menu de votacion a todos los jugadores conectados
        
if( is_user_connected) )    
            
menu_displayiVoteTipoCarnage)
            
    
g_Envotacion //Comenzo la votacion
    
    //Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
    
set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
    
ShowSyncHudMsg(0,Hudconteo,"La votacion finalizara en %d segundos",get_pcvar_num(CvarTiempovotacion))
    
    
g_TiempoVote get_pcvar_num(CvarTiempovotacion)
    
set_task(1.0"Votefinalizado",_,_,_"a"get_pcvar_num(CvarTiempovotacion)+1)
    
//Hago que se llame a la funcion la cantidad de segundos q debe contar + 1 para  q finalice la votacion
}
public 
handle_votecarnageidiMenuitem )
{
    if( !
g_Envotacion)
        return
    new 
iData[6], iAccessiCallback,iName[64],szName[33]
    
menu_item_getinfoiMenuitemiAccessiData,5iName63iCallback )
    
get_user_name(id,szName,charsmax(szName))
    
g_OpcionVotadastr_to_numiData ) ]++
    
client_print(0,print_chat"El juagador %s a votado carnage %s",szName,iName)
}

public 
Votefinalizado()
{
    if(
g_TiempoVote)//Mientras que el tiempo de votacion sea mayor a 0
    
{
        
g_TiempoVote--//Se resta 1 seg
        
        //Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
        
set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
        
show_hudmessage(0"La votacion finalizara en %d segundos",g_TiempoVote)
        return
    }
    
g_Envotacion 0    //Finalizo la votacion
    
new Opcionganadora 0
    
    
for( new 04a++ )//Verifico cual es la opcion que fue seleccionada mas veces
        
if( g_OpcionVotadaOpcionganadora ] < g_OpcionVotada] )
            
Opcionganadora a
    
    
for(new i=;i<4i++)//Restablesco las opciones votadas  a 0 para el proximo vote
        
g_OpcionVotada[i]=0    
    
    
if( g_CantidadMods 3)//Si hay mas de 4 mods carnage
        
g_Modcarnage g_OpcionesAzar[Opcionganadora]
    else
//Si no
        
g_Modcarnage Opcionganadora
    
    client_print
(0,print_chat"Ha ganado el Carnage %s",g_Packcarnage[g_Modcarnage][NAME])
        
}
    
public 
generar_voteazar()
{
    new 
eleccion[4]
    for(new 
i=0;i<4;i++)
        
eleccion[i] = random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
        
    
while(eleccion[0] == eleccion[1])//Mientras que la primera eleccion sea igual a la segunda...
        
eleccion[1] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[2] || eleccion[1] == eleccion[2] )//Mientras que la tercera eleccion sea igual a la primera o a la segunda...
        
eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[3] || eleccion[1] == eleccion[3] || eleccion[2] == eleccion[3] )//Mientras que la cuarta eleccion sea igual a la primera o a la segunda o a la tercera...
        
eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
        
    
return eleccion//Devolvemos el vector con los numeros al azar diferentes entre si
}


        
public 
chequear_carnage(id)
{
    if(!
g_Carnage )//Si no es carnage volvemos
        
return
    if(!
get_pcvar_num(CvarModCarnage) && !g_azar)//Si es carnage aleatorio y todavia no se desidio el mod...
    
{
        
g_azar 1
        g_Modcarnage
random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
    
}
    
id-=100

    strip_user_weapons
(id)//Le sacamos todas las armas hasta el cuchi
    
    
if(g_Packcarnage[g_Modcarnage][CUCHI])//Si el mod es con cuchi...
        
give_item(id,"weapon_knife")
        
    if(
g_Packcarnage[g_Modcarnage][HEADSHOOT])//Si el mod es headshoot...
        
set_user_hitzones(id,0,2)
    
    
//Le damos el arma del mod carnage    
    
give_item(idg_Packcarnage[g_Modcarnage][WEAPON])
    
cs_set_user_bpammo(idg_Packcarnage[g_Modcarnage][CSW],g_Packcarnage[g_Modcarnage][CARGADOR])
    if(
g_Modcarnage == 0tienda_plasma(id)
    if(
g_Modcarnage == 2tienda_gatling(id)
    if(
g_Modcarnage == 3tienda_balrog(id)
    
set_user_health(idCANTIDAD_VIDA)
    
    
//Mostramos un hud para informar que es carnage
    
set_hudmessage(050100, -1.00.0611.01.01.01.0)
    
show_hudmessage(id"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")



en
Código PHP:
const CANTIDAD_VIDA 5000 
modificas la vida
Responder
#3
(30/07/2020, 01:23 PM)gh0st escribió:
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun> 
#include <cstrike>
native tienda_plasma(id);
native tienda_balrog(id);
native tienda_gatling(id);

#define PLUGIN "Carnage hns"
#define VERSION "1.2"
#define AUTHOR "Mongito100"
//Version 1.1 Agregado hud 
//Version 1.2 fix bug carnage aleatorio

new g_maxplayers //Varible q nos dira el maximo numero de jugadores del sv
new g_Carnage //Varible que nos indicara si es carngae o no
new g_Round //Varible q se encargara de contar las rondas para saber si es carnage
new g_Modcarnage//Variable para saber el mod carnage
new CvarTiempovotacion//Aqui se almacenara la cvar para cambiar el tiempo de votacion 
new CvarRoundCarnage //Aqui se almacenara la cvar para cambiar cada cuantas rondas se realiza el carnage
new CvarModCarnage
/*
    Aqui se almacenara la cvar para cambiar el mod carnage
    Cuando esta en 0 el carnage es aleatorio
    Cuando esta en 1 el carnage es por votacion
*/
new g_Envotacion//Variable para saber si estan votando
new g_TiempoVote//Varible que decrementara para ir mostrando cuanto tiempo queda para finalizar la votacion
new g_OpcionVotada[4]//Variable para saber la opcion q se voto
new g_OpcionesAzar[4//Variable para obtener 4 mods al azar en caso de tenerse mas de 4
new Hudconteo//Variable para la sincronizacion del hud
new Hudcarnage//Variable para la sincronizacion del hud
new g_azar//Variable para elegir un carnage al azar

enum _:PACK_CARNAGE
{
    NAME[10],
    WEAPON[18],
    CSW,
    CARGADOR,
    CUCHI,
    HEADSHOOT,
    
}
new 
g_Packcarnage[][PACK_CARNAGE] =// Aca configuraremos como queremos que sea el carnage
{
//      Nombre    weapon del arma  csw del arma    cargador    si tienen cuchi    si es only headshoot
    "PLASMAGUN",    "weapon_awp",        CSW_AWP,          40,              0,                        0                },
    "DEAGLE""weapon_deagle",    CSW_DEAGLE,      100,              0,                          1          },
    "GLATING",      "weapon_m3",        CSW_M3,            30,                1,                        0    }
}
new 
g_CantidadMods sizeof g_Packcarnage//Variable para saber la la cantidad de mods
const CANTIDAD_VIDA 5000

public plugin_init() 
{
    register_plugin(PLUGINVERSIONAUTHOR)
        
    register_event
("HLTV" "round_start" "a""1=0""2=0")//Registramos el comienzo de la ronda
    register_logevent("round_end"2"1=Round_End")//Registramos cuando finaliza la ronda
    RegisterHamHam_Spawn"player""fw_player_spawn" ,1//Registramos cuando un jugador spawnea
    register_clcmd("say /carnage" ,"cmd_mensajecaranage")//Registramos el /carnagee para informar cuantas rondas faltan
    
    Hudconteo 
CreateHudSyncObj()
    HudcarnageCreateHudSyncObj()
    
    CvarRoundCarnage  
register_cvar("carnage_round""10")
    CvarModCarnage    register_cvar("carnage_mod""1")
    CvarTiempovotacion register_cvar("carnage_tiempovotacion""10")
        g_maxplayers get_maxplayers( )
    
    set_task
(1.0"ShowHUD"___"b")//Creamos un task continuo para avisar cuantas rondas quedan para el carnage
}
    
    
public round_start()
{
    g_Carnage //Desimos q no es carnage seteandola esta variable en 0
    g_Round++//Incrementamos el contador de rondas
    if(get_pcvar_num(CvarModCarnage) &&  g_Round+== get_pcvar_num(CvarRoundCarnage))
        VoteCarnage()//Si el carnage es por votacion y la ronda siguiente es carnage se envia la votacion
    if(g_Round == get_pcvar_num(CvarRoundCarnage))//Si la ronda es carnage...
    {
        g_Carnage 1//Seteamos la variable indicadora de carnage en 1
        g_Round  =  0//Reseteamos el contador de rondas
        set_cvar_num("amx_ltm"0)//Desactivamos los lasers
        set_cvar_num("hns_hiders_knife"2)//Le damos cuchicho a los tt
        set_cvar_num("hns_hiders_flashbangs"0)//Les sacamos las flash a los tt
        set_cvar_num("hns_hiders_smokegren"0)//Les sacamos las congeladoras a los tt 
        set_cvar_num("hns_autobhop",0//DESABILITAR AUTOBUNNY
        set_cvar_num("hns_max_saltos",0//saltos
        set_cvar_num("amx_heal @all"5000); //INTETNO 1 DE DAR VIDA NO FUNCIONA
        set_cvar_num("amx_heal @all"5000)  //INTENTO 2 DE DAR VIDA NO FUNCIONA 
    }    
}

public 
round_end()
{
    if(g_Round+== get_pcvar_num(CvarRoundCarnage))//Si la proxima ronda es carnage
        set_cvar_num("hns_tiempo_conteo"0)//Desactivo el tiempo para esconderse
    //NOTA:Lo hago aca para evitar bugs
    if(g_Carnage)//Si ya termino el carnage volvemos a los valores por default
    {
        set_cvar_num("amx_ltm"1)
        set_cvar_num("hns_tiempo_conteo"5)
        set_cvar_num("hns_hiders_knife"1)
        set_cvar_num("hns_hiders_flashbangs"2)
        set_cvar_num("hns_hiders_smokegren"1)
        set_cvar_num("hns_autobhop",1)
        set_cvar_num("hns_max_saltos",2)
        set_user_hitzones(00255)
    }
    g_azar 0
}
        
public fw_player_spawn(id)
if(
is_user_alive(id))
    set_task(2.0,"chequear_carnage",id+100)
/*Hacemos que chequee en 2 seg si es carnage, algunos se preguntaran por q aca y no en el round start, la respuesta es 
simple por q si alguien entra al sv cuando ya comenzo la ronda y aparece vivo no se le setearian las armas del carnage*/

public cmd_mensajecaranage(id)
{
    if(g_Carnage)//Si es carnage le informamos q carnage es y si es only headshoot
        client_print(id,print_chat,"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")
    else//Si no le informamos cuantas rondas faltan
        client_print(id,print_chat,"Faltan %d ronda%s para carnage",get_pcvar_num(CvarRoundCarnage)-g_Round ,get_pcvar_num(CvarRoundCarnage)-g_Round == "" :"s")
}
public 
ShowHUD()
{
    if(!g_Carnage)
    {
        set_hudmessage(050100, -1.00.0611.01.01.01.0)
        ShowSyncHudMsg(0Hudcarnage"Falta%s %d ronda%s para carnage"get_pcvar_num(CvarRoundCarnage) - g_Round "n" ""get_pcvar_num(CvarRoundCarnage) - g_Round get_pcvar_num(CvarRoundCarnage) - g_Round  "s" "")
    }
}

public 
VoteCarnage()
{
    new VoteTipoCarnage menu_create("\r Elegir el mod carnage""handle_votecarnage"),temp[2]
    if( g_CantidadMods 3)//Si hay mas de 4 mods carnage
    {
        
        g_OpcionesAzar 
generar_voteazar()//Elijo al azar entre 4 de ellas
        for(new i0;i<3;i++)//agrego cada mod a la votacion
        {
            num_to_str(i,temp,2)
            menu_additem(VoteTipoCarnage ,g_Packcarnage[g_OpcionesAzar[i]][NAME],temp)
        }
    }
    else //si no...
    {
        for(new 0sizeof g_Packcarnagei++)//agrego cada mod a la votacion
        {
            num_to_str(i,temp,2)
            menu_additem(VoteTipoCarnage ,g_Packcarnage[i][NAME],temp)
        }
    }
    for( new 1<= g_maxplayersi++ )    //Muestro el menu de votacion a todos los jugadores conectados
        if( is_user_connected) )    
            menu_display
iVoteTipoCarnage)
            
    g_Envotacion 
//Comenzo la votacion
    
    
//Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
    set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
    ShowSyncHudMsg(0,Hudconteo,"La votacion finalizara en %d segundos",get_pcvar_num(CvarTiempovotacion))
    
    g_TiempoVote 
get_pcvar_num(CvarTiempovotacion)
    set_task(1.0"Votefinalizado",_,_,_"a"get_pcvar_num(CvarTiempovotacion)+1)
    //Hago que se llame a la funcion la cantidad de segundos q debe contar + 1 para  q finalice la votacion
}
public 
handle_votecarnageidiMenuitem )
{
    if( !g_Envotacion)
        return
    new iData[6], iAccessiCallback,iName[64],szName[33]
    menu_item_getinfoiMenuitemiAccessiData,5iName63iCallback )
    get_user_name(id,szName,charsmax(szName))
    g_OpcionVotadastr_to_numiData ) ]++
    client_print(0,print_chat"El juagador %s a votado carnage %s",szName,iName)
}

public 
Votefinalizado()
{
    if(g_TiempoVote)//Mientras que el tiempo de votacion sea mayor a 0
    {
        g_TiempoVote--//Se resta 1 seg
        
        
//Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
        set_hudmessage(0,255,0,0.00.70,_,1.0,1.0,1.0,1.0)
        show_hudmessage(0"La votacion finalizara en %d segundos",g_TiempoVote)
        return
    }
    g_Envotacion 0    //Finalizo la votacion
    new Opcionganadora 0
    
    
for( new 04a++ )//Verifico cual es la opcion que fue seleccionada mas veces
        if( g_OpcionVotadaOpcionganadora ] < g_OpcionVotada] )
            Opcionganadora a
    
    
for(new i=;i<4i++)//Restablesco las opciones votadas  a 0 para el proximo vote
        g_OpcionVotada[i]=0    
    
    
if( g_CantidadMods 3)//Si hay mas de 4 mods carnage
        g_Modcarnage g_OpcionesAzar[Opcionganadora]
    else//Si no
        g_Modcarnage Opcionganadora
    
    client_print
(0,print_chat"Ha ganado el Carnage %s",g_Packcarnage[g_Modcarnage][NAME])
        
}
    
public generar_voteazar()
{
    new eleccion[4]
    for(new i=0;i<4;i++)
        eleccion[i] = random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
        
    
while(eleccion[0] == eleccion[1])//Mientras que la primera eleccion sea igual a la segunda...
        eleccion[1] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[2] || eleccion[1] == eleccion[2] )//Mientras que la tercera eleccion sea igual a la primera o a la segunda...
        eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
    
    
while(eleccion[0] == eleccion[3] || eleccion[1] == eleccion[3] || eleccion[2] == eleccion[3] )//Mientras que la cuarta eleccion sea igual a la primera o a la segunda o a la tercera...
        eleccion[2] = random_num(0,g_CantidadMods)//Volvemos a generar un numero al azar
        
    
return eleccion//Devolvemos el vector con los numeros al azar diferentes entre si
}


        
public chequear_carnage(id)
{
    if(!g_Carnage )//Si no es carnage volvemos
        return
    if(!get_pcvar_num(CvarModCarnage) && !g_azar)//Si es carnage aleatorio y todavia no se desidio el mod...
    {
        g_azar 1
        g_Modcarnage
random_num(0,g_CantidadMods)//Generamos un numero al azar entre 0 y el maximo de mods carnage
    }
    id-=100

    strip_user_weapons
(id)//Le sacamos todas las armas hasta el cuchi
    
    
if(g_Packcarnage[g_Modcarnage][CUCHI])//Si el mod es con cuchi...
        give_item(id,"weapon_knife")
        
    
if(g_Packcarnage[g_Modcarnage][HEADSHOOT])//Si el mod es headshoot...
        set_user_hitzones(id,0,2)
    
    
//Le damos el arma del mod carnage    
    give_item(idg_Packcarnage[g_Modcarnage][WEAPON])
    cs_set_user_bpammo(idg_Packcarnage[g_Modcarnage][CSW],g_Packcarnage[g_Modcarnage][CARGADOR])
    if(g_Modcarnage == 0tienda_plasma(id)
    if(g_Modcarnage == 2tienda_gatling(id)
    if(g_Modcarnage == 3tienda_balrog(id)
    set_user_health(idCANTIDAD_VIDA)
    
    
//Mostramos un hud para informar que es carnage
    set_hudmessage(050100, -1.00.0611.01.01.01.0)
    show_hudmessage(id"Es carnage %s %s",g_Packcarnage[g_Modcarnage][NAME],g_Packcarnage[g_Modcarnage][HEADSHOOT] ? "Only Headshoot":"")



en
Código PHP:
const CANTIDAD_VIDA 5000 
modificas la vida

Muchisisisimas graciaaaaas me funciono perfecto! Excitedeyes
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)