Hud permanente
#1
Hola buenas necesito un hud permanente que muestre tus datos y los datos del jugador a quien especteas ejemplo

Nombre : %s
Vida : %d
Armadura : %d

cuando espectees a alguien muestre

Viendo a : %s // Muestre el nombre de la persona a quien vea
Vida : %d // vida de la persona que este viendo
Armadura : %d // Armadura de la persona que este viendo

porfa ojala me ayuden ya que vi algunos por internet pero me tiran logs
Responder
#2
Tomá, testealo si anda porque no lo probé.

Está para la versión 1.9, si tenes una más vieja, cambia el %n por %s y obtene el nombre del jugador, o lo guardas cuando se conecta al servidor.

Código PHP:
// Variables globales
const Float:DELAY 1.0;
new const 
THINK_CLASSNAME[] = "entThinkHud";
new 
g_HudSync_General;

// En tu plugin precache()
public plugin_precache() {
    
g_HudSync_General CreateHudSyncObj();

    new 
iEnt;
    
iEnt create_entity("info_target");

    if(
is_valid_ent(iEnt)) {
        
entity_set_string(iEntEV_SZ_classnameTHINK_CLASSNAME);
        
entity_set_float(iEntEV_FL_nextthinkget_gametime() + HUD_DELAY);
        
register_think(THINK_CLASSNAME"thinkGeneral");
    }
}

// Agregar la funcion
public thinkGeneral(const iEnt) {
    if(!
is_valid_ent(iEnt))
        return;

    static 
iSpectId;

    for(
1<= g_MaxClients; ++i) {
        if(!
is_user_connected(i))
            continue;

        
set_hudmessage(02550, -1.00.001.01.50.10.11);

        if(
is_user_alive(i))
            
ShowSyncHudMsg(ig_HudSync_General"Nombre: %n^nVida: %d^nArmadura: %d"iget_user_health(i), get_user_armor(i));
        else {
            
iSpectId entity_get_int(iEV_INT_iuser2);

            if(
is_user_alive(iSpectId))
                
ShowSyncHudMsg(ig_HudSync_General"Viendo a: %n^nVida: %d^nArmadura: %d"iSpectIdget_user_health(iSpectId), get_user_armor(iSpectId));
        }
    }

    
entity_set_float(iEntEV_FL_nextthinkget_gametime() + HUD_DELAY);

Responder
#3
No te va a saltar el nombre ni tuyo ni del que estas viendo ya que pones el index en vez de captar el nombre
Responder
#4
Gracias @Intifada pero no me funcionaba:/, pero encontre uno de kikizon2 y me anduvo pero me gustaria saber como hago para que aparesca el hud al espectear:/ ?

Código PHP:
#include amxmisc
#include fakemeta

#define TASK_HUD 2000

new g_hud;
new 
g_variable[33];

public 
plugin_init() 
{
    
register_plugin("HUDSITO""SIN""NADA QUE HACER");
    
    
register_clcmd("say /comando""comando");
    
g_hud CreateHudSyncObj();
}

public 
client_putinserver(id)
{
    
g_variable[id] = true;
    
set_task(1.0"ShowHUD"id+TASK_HUD__"b");
}

public 
client_disconnect(idremove_task(id+TASK_HUD);


public 
comando(id)
{
    if(
g_variable[id])
    {
        
g_variable[id] = false
        client_print
(idprint_center"hud desactivado");
    }
    else
    {
        
g_variable[id] = true
        client_print
(idprint_center"hud activado");
    }
}

public 
ShowHUD(taskid)
{
    new 
id taskid-TASK_HUD
    
    
if (!is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    
    if(
g_variable[id])
    {
        
set_hudmessage(025500.390.806.01.0)
        
ShowSyncHudMsg(idg_hud"Oie zi, k riko");
    }

Responder
#5
¿Qué es lo que no te anda? En mi opinión, veo más eficiente hacer un hud permanente mediante una entidad que hacerlo con un task.

De todas maneras me gustaría que muestres los logs asi te puedo ayudar a que uses el que te pasé, para no usar tasks.

(14/07/2019, 08:13 PM)matrix123 escribió: No te va a saltar el nombre ni tuyo ni del que estas viendo ya que pones el index en vez de captar el nombre

La versión 1.9 del AMXx te brinda la posiblidad de usar "%n", y con solo pasar el index del jugador te printea el nombre del jugador sin necesidad de obtenerlo mediante métodos.

Click me
Responder
#6
(14/07/2019, 11:39 PM)INTIFADA escribió: ¿Qué es lo que no te anda? En mi opinión, veo más eficiente hacer un hud permanente mediante una entidad que hacerlo con un task.

De todas maneras me gustaría que muestres los logs asi te puedo ayudar a que uses el que te pasé, para no usar tasks.

No me aparecia el hud, aparte no arrojaba logs ni en modo debug.


pd : ayudame con el codigo que deje arriba porfa
Responder
#7
agrega :

Código PHP:
#define ID_HUD (taskid - TASK_HUD) 

en tu ShowHUD(taskid) borra el que tienes y agrega esto

Código PHP:
public ShowHUD(taskid)
{
    new 
id ID_HUD
    
    
if (!is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        if (!
is_user_alive(id)) return;
    }
    if(
id != ID_HUD)
    {
        
set_hudmessage(025500.390.806.01.0)
        
ShowSyncHudMsg(ID_HUDg_hud"Hud que muestra las estadisticas de la persona que vez");
    }
    else
    {
        
set_hudmessage(025500.390.806.01.0)
        
ShowSyncHudMsg(ID_HUDg_hud"Hud que muestras las estadisticas tuya");
    }

Responder
#8
Gracias crack funciona
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)