30/07/2020, 10:40 AM
Hola muy buenos dias a todos!
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!
De ante mano muchas gracias
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(PLUGIN, VERSION, AUTHOR)
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
RegisterHam( Ham_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()
Hudcarnage= CreateHudSyncObj()
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 = 0 //Desimos q no es carnage seteandola esta variable en 0
g_Round++//Incrementamos el contador de rondas
if(get_pcvar_num(CvarModCarnage) && g_Round+1 == 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+1 == 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(0, 0, 255)
}
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 == 1 ? "" :"s")
}
public ShowHUD()
{
if(!g_Carnage)
{
set_hudmessage(0, 50, 100, -1.0, 0.06, 1, 1.0, 1.0, 1.0, 1.0)
ShowSyncHudMsg(0, Hudcarnage, "Falta%s %d ronda%s para carnage", get_pcvar_num(CvarRoundCarnage) - g_Round > 1 ? "n" : "", get_pcvar_num(CvarRoundCarnage) - g_Round , get_pcvar_num(CvarRoundCarnage) - g_Round > 1 ? "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 i= 0;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 i = 0; i < sizeof g_Packcarnage; i++)//agrego cada mod a la votacion
{
num_to_str(i,temp,2)
menu_additem(VoteTipoCarnage ,g_Packcarnage[i][NAME],temp)
}
}
for( new i = 1; i <= g_maxplayers; i++ ) //Muestro el menu de votacion a todos los jugadores conectados
if( is_user_connected( i ) )
menu_display( i, VoteTipoCarnage)
g_Envotacion = 1 //Comenzo la votacion
//Muestro un hud con la cantidad de segundos restantes para finalizar la votacion
set_hudmessage(0,255,0,0.0, 0.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_votecarnage( id, iMenu, item )
{
if( !g_Envotacion)
return
new iData[6], iAccess, iCallback,iName[64],szName[33]
menu_item_getinfo( iMenu, item, iAccess, iData,5, iName, 63, iCallback )
get_user_name(id,szName,charsmax(szName))
g_OpcionVotada[ str_to_num( iData ) ]++
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.0, 0.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 a = 0; a < 4; a++ )//Verifico cual es la opcion que fue seleccionada mas veces
if( g_OpcionVotada[ Opcionganadora ] < g_OpcionVotada[ a ] )
Opcionganadora = a
for(new i=0 ;i<4; i++)//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(id, g_Packcarnage[g_Modcarnage][WEAPON])
cs_set_user_bpammo(id, g_Packcarnage[g_Modcarnage][CSW],g_Packcarnage[g_Modcarnage][CARGADOR])
if(g_Modcarnage == 0) tienda_plasma(id)
if(g_Modcarnage == 2) tienda_gatling(id)
if(g_Modcarnage == 3) tienda_balrog(id)
//Mostramos un hud para informar que es carnage
set_hudmessage(0, 50, 100, -1.0, 0.06, 1, 1.0, 1.0, 1.0, 1.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