imessage solo para los muertos?
#1
Hola alguno tendrá el Info messages pero que los hud solo salgan a los muertos y espectadores??
Gracias Sonrisa

EDITO: SOLUCIONADO Gracias a mlibre y Sthony' por la ayuda.. lo pude crear al plugin les dejo el code
Este es el code del plugin andando

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage(id)
{    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    new 
szPlayers[32], iPnum
    get_players
(szPlayersiPnum)
    
    for(new 
0iPnumi++)
    
id szPlayers[i]
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    if(!
is_user_alive(id)) show_hudmessage(0"%s"Message); else
    
    
client_print(idprint_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"id+12345);


public 
setMessage(id)
{
    new 
Message[384];
    
    
remove_task(id+12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)

Responder
#2
asi?

Código PHP:
public infoMessage()
{
    if(
is_user_alive(id) || !get_user_team(id) == 3) return
    
    if (
g_Current >= g_MessagesNum)
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);

Responder
#3
(18/06/2016, 09:48 PM)mlibre escribió: asi?

Código PHP:
public infoMessage()
{
    if(
is_user_alive(id) || !get_user_team(id) == 3) return
    
    if (
g_Current >= g_MessagesNum)
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);


Me da este error

Error: Undefined symbol "id" on line 46
Error: Undefined symbol "charsof" on line 60

2 Errors.
Could not locate output file C:\Users\Usuario\Desktop\imessage.amx (compile failed).
Responder
#4
proba:

Código PHP:
public infoMessage()
{
    new 
maxplayers get_maxplayers()

    for(new 
1<= maxplayersi++ ) {   
        if(
is_user_alive(i) && get_user_team(i) == || get_user_team(i) == 2) return;
    }
    
    if (
g_Current >= g_MessagesNum)
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);

Responder
#5
(18/06/2016, 10:03 PM)mlibre escribió: proba:

Código PHP:
public infoMessage()
{
    new 
maxplayers get_maxplayers()

    for(new 
1<= maxplayersi++ ) {   
        if(
is_user_alive(i) && get_user_team(i) == || get_user_team(i) == 2) return;
    }
    
    if (
g_Current >= g_MessagesNum)
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);


me sale esto todavia
Error: Undefined symbol "charsof" on line 64
Responder
#6
--------------------->
Código PHP:
#define charsof(%1) (sizeof(%1)-1) 
Mis Aportes:

[ TTT ] Item: Target Gun

[ TTT ] Item: Skeleton Gun (New)
[ TTT ] Item: Pipe Bomb
[ TTT ] Item: Inverse Golden
[Imagen: 76561198074954930.png] [Imagen: venezuela.gif]
Pregúntate si lo que estás haciendo hoy te acerca a el lugar en el que quieres estar mañana. Corazón
Responder
#7
bien lo pude compilar, el hud se ve, si entras de espectador, y si luego entras en algun equipo sin revivir, pero cuando revivis este desaparece y cuando moris no vuelve a aparecer

Sonrisa
Responder
#8
(18/06/2016, 10:16 PM)MazeliNi escribió: bien lo pude compilar, el hud se ve, si entras de espectador, y si luego entras en algun equipo sin revivir, pero cuando revivis este desaparece y cuando moris no vuelve a aparecer

Sonrisa

me di cuenta de eso, solo pasa si eras CT... edita esta linea:

Código PHP:
    for(new 1<= maxplayersi++ ) {   
        if(
is_user_alive(i) && get_user_team(i) == || is_user_alive(i) && get_user_team(i) == 2) return;
    } 
Responder
#9
(18/06/2016, 10:28 PM)mlibre escribió:
(18/06/2016, 10:16 PM)MazeliNi escribió: bien lo pude compilar, el hud se ve, si entras de espectador, y si luego entras en algun equipo sin revivir, pero cuando revivis este desaparece y cuando moris no vuelve a aparecer

Sonrisa

me di cuenta de eso, solo pasa si eras CT... edita esta linea:

Código PHP:
    for(new 1<= maxplayersi++ ) {   
        if(
is_user_alive(i) && get_user_team(i) == || is_user_alive(i) && get_user_team(i) == 2) return;
    } 

el problema persiste.. te paso el code completo

Código PHP:
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
//     https://alliedmods.net/amxmodx-license

//
// Info. Messages Plugin
//

#include <amxmodx>
#include <amxmisc>

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage()
{
    new 
maxplayers get_maxplayers()

    for(new 
1<= maxplayersi++ ) {   
        if(
is_user_alive(i) && get_user_team(i) == || is_user_alive(i) && get_user_team(i) == 2) return;
    } 
    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);


public 
setMessage()
{

    new 
Message[384];
    
    
remove_task(12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)

Responder
#10
ahora deberia funcionar...

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage(id)
{
    if(
is_user_alive(id) && get_user_team(id) == || is_user_alive(id) && get_user_team(id) == 2) return;
    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);


public 
setMessage()
{

    new 
Message[384];
    
    
remove_task(12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)

Responder
#11
(18/06/2016, 10:43 PM)mlibre escribió: ahora?

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage(id)
{
    if(
is_user_alive(id) && get_user_team(id) == || is_user_alive(id) && get_user_team(id) == 2) return;
    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(0"%s"Message);
    
    
client_print(0print_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);


public 
setMessage()
{

    new 
Message[384];
    
    
remove_task(12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)


Ahora el hud le aparece a todos..

Me parece que el problema viene aca
show_hudmessage(0, "%s", Message);
Por que eso al estar en 0 se lo envia a todos (creo) si pongo "id" no aparece el hud para nada..
en el anterior code que te pase "creo" que aparece el hud hasta que uno estuviera vivo si ese uno estaba vivo el hud directamente no aparecia para nadie, el hecho de que uno estuviera vivo anulaba el resto del plugin
Creo que eso es lo que pasa
Responder
#12
(18/06/2016, 10:52 PM)MazeliNi escribió: Ahora el hud le aparece a todos

Dafuq pruueba este;

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage(id)
{
    if(
is_user_alive(id) && get_user_team(id) == || is_user_alive(id) && get_user_team(id) == 2) return;
    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(id"%s"Message);
    
    
client_print(idprint_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"id+12345);


public 
setMessage(id)
{
    new 
Message[384];
    
    
remove_task(id+12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"id+12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)


ó

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage()
{
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    new 
players[32], numiPlayerget_playersplayersnum"b");
    
    for( new 
num i++ )
    {
        
iPlayer players];
    
        
show_hudmessage(iPlayer"%s"Message);
        
client_print(iPlayerprint_console"%s"Message);
    }
    
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345);
}  

public 
setMessage()
{
    new 
Message[384];
    
    
remove_task(12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)

Responder
#13
(18/06/2016, 11:03 PM)mlibre escribió:
(18/06/2016, 10:52 PM)MazeliNi escribió: Ahora el hud le aparece a todos

Dafuq pruueba este;

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

#define X_POS         -1.0
#define Y_POS         0.20
#define HOLD_TIME     12.0
#define charsof(%1) (sizeof(%1)-1) 

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public 
plugin_init()
{
    
g_Messages=ArrayCreate(384);
    
g_Values=ArrayCreate(3);
    
register_plugin("Info. Messages"AMXX_VERSION_STR"AMXX Dev Team")
    
register_dictionary("imessage.txt")
    
register_dictionary("common.txt")
    
register_srvcmd("amx_imessage""setMessage")
    
amx_freq_imessage=register_cvar("amx_freq_imessage""10")
    
    new 
lastinfo[8]
    
get_localinfo("lastinfomsg"lastinfocharsmax(lastinfo))
    
g_Current str_to_num(lastinfo)
    
set_localinfo("lastinfomsg""")
}

public 
infoMessage(id)
{
    if(
is_user_alive(id) && get_user_team(id) == || is_user_alive(id) && get_user_team(id) == 2) return;
    
    if (
g_Current >= g_MessagesNum)    
        
g_Current 0
        
    
// No messages, just get out of here
    
if (g_MessagesNum==0)
    {
        return;
    }
    
    new 
values[3];
    new 
Message[384];
    
    
ArrayGetString(g_Messagesg_CurrentMessagecharsof(Message));
    
ArrayGetArray(g_Valuesg_Currentvalues);
    
    new 
hostname[64];
    
    
get_cvar_string("hostname"hostname63);
    
replace(Message380"%hostname%"hostname);
    
    
set_hudmessage(values[0], values[1], values[2], X_POSY_POS00.5HOLD_TIME2.02.0, -1);
    
    
show_hudmessage(id"%s"Message);
    
    
client_print(idprint_console"%s"Message);
    ++
g_Current;
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"id+12345);


public 
setMessage(id)
{
    new 
Message[384];
    
    
remove_task(id+12345)
    
read_argv(1Messagecharsmax(Message))
    
    while (
replace(Messagecharsmax(Message), "\n""^n")) {}
    
    new 
mycol[12]
    new 
vals[3];
    
    
read_argv(2mycolcharsmax(mycol))        // RRRGGGBBB
    
vals[2] = str_to_num(mycol[6])
    
    
mycol[6] = 0
    vals
[1] = str_to_num(mycol[3])
    
    
mycol[3] = 0
    vals
[0] = str_to_num(mycol[0])
    
    
g_MessagesNum++
    
    new 
Float:freq_im get_pcvar_float(amx_freq_imessage)
    
    
ArrayPushString(g_MessagesMessage);
    
ArrayPushArray(g_Valuesvals);
    
    if (
freq_im 0.0)
        
set_task(freq_im"infoMessage"id+12345)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_end()
{
    new 
lastinfo[8]

    
num_to_str(g_Currentlastinfocharsmax(lastinfo))
    
set_localinfo("lastinfomsg"lastinfo)

    
ArrayDestroy(g_Messages)
    
ArrayDestroy(g_Values)


Muchas gracias por toda tu ayuda, lo pude hacer al final, leí unos post
#include <amxmodx>
#include <amxmisc>

#define X_POS -1.0
#define Y_POS 0.20
#define HOLD_TIME 12.0
#define charsof(%1) (sizeof(%1)-1)

new Array:g_Values
new Array:g_Messages
new g_MessagesNum
new g_Current

new amx_freq_imessage;

public plugin_init()
{
g_Messages=ArrayCreate(384);
g_Values=ArrayCreate(3);
register_plugin("Info. Messages", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("imessage.txt")
register_dictionary("common.txt")
register_srvcmd("amx_imessage", "setMessage")
amx_freq_imessage=register_cvar("amx_freq_imessage", "10")

new lastinfo[8]
get_localinfo("lastinfomsg", lastinfo, charsmax(lastinfo))
g_Current = str_to_num(lastinfo)
set_localinfo("lastinfomsg", "")
}

public infoMessage(id)
{
if (g_Current >= g_MessagesNum)
g_Current = 0

// No messages, just get out of here
if (g_MessagesNum==0)
{
return;
}

new values[3];
new Message[384];

ArrayGetString(g_Messages, g_Current, Message, charsof(Message));
ArrayGetArray(g_Values, g_Current, values);

new hostname[64];

get_cvar_string("hostname", hostname, 63);
replace(Message, 380, "%hostname%", hostname);

new szPlayers[32], iPnum
get_players(szPlayers, iPnum)

for(new i = 0; i < iPnum; i++)
id = szPlayers[i]
set_hudmessage(values[0], values[1], values[2], X_POS, Y_POS, 0, 0.5, HOLD_TIME, 2.0, 2.0, -1);
if(!is_user_alive(id)) show_hudmessage(0, "%s", Message); else

client_print(id, print_console, "%s", Message);
++g_Current;

new Float:freq_im = get_pcvar_float(amx_freq_imessage);

if (freq_im > 0.0)
set_task(freq_im, "infoMessage", id+12345);
}

public setMessage(id)
{
new Message[384];

remove_task(id+12345)
read_argv(1, Message, charsmax(Message))

while (replace(Message, charsmax(Message), "\n", "^n")) {}

new mycol[12]
new vals[3];

read_argv(2, mycol, charsmax(mycol)) // RRRGGGBBB
vals[2] = str_to_num(mycol[6])

mycol[6] = 0
vals[1] = str_to_num(mycol[3])

mycol[3] = 0
vals[0] = str_to_num(mycol[0])

g_MessagesNum++

new Float:freq_im = get_pcvar_float(amx_freq_imessage)

ArrayPushString(g_Messages, Message);
ArrayPushArray(g_Values, vals);

if (freq_im > 0.0)
set_task(freq_im, "infoMessage", 12345)

return PLUGIN_HANDLED
}

public plugin_end()
{
new lastinfo[8]

num_to_str(g_Current, lastinfo, charsmax(lastinfo))
set_localinfo("lastinfomsg", lastinfo)

ArrayDestroy(g_Messages)
ArrayDestroy(g_Values)
}
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)