Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
18/06/2016, 09:40 PM
(Última modificación: 18/06/2016, 11:31 PM por MazeliNi .)
Hola alguno tendrá el Info messages pero que los hud solo salgan a los muertos y espectadores??
Gracias
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" , 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 ) }
Mensajes: 688
Temas: 31
Registro en: Nov 2015
Reputación:
7
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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); }
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
(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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 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).
Mensajes: 688
Temas: 31
Registro en: Nov 2015
Reputación:
7
proba:
Código PHP:
public infoMessage () { new maxplayers = get_maxplayers () for(new i = 1 ; i <= maxplayers ; i ++ ) { if( is_user_alive ( i ) && get_user_team ( i ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); }
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
(18/06/2016, 10:03 PM) mlibre escribió: proba:
Código PHP:
public infoMessage () { new maxplayers = get_maxplayers () for(new i = 1 ; i <= maxplayers ; i ++ ) { if( is_user_alive ( i ) && get_user_team ( i ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); }
me sale esto todavia
Error: Undefined symbol "charsof" on line 64
Mensajes: 410
Temas: 9
Registro en: Apr 2015
Reputación:
5
--------------------->
Código PHP:
#define charsof(%1) (sizeof(%1)-1)
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
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
Mensajes: 688
Temas: 31
Registro en: Nov 2015
Reputación:
7
(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
me di cuenta de eso, solo pasa si eras CT... edita esta linea:
Código PHP:
for(new i = 1 ; i <= maxplayers ; i ++ ) { if( is_user_alive ( i ) && get_user_team ( i ) == 1 || is_user_alive ( i ) && get_user_team ( i ) == 2 ) return; }
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
(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
me di cuenta de eso, solo pasa si eras CT... edita esta linea:
Código PHP:
for(new i = 1 ; i <= maxplayers ; i ++ ) { if( is_user_alive ( i ) && get_user_team ( i ) == 1 || 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" , lastinfo , charsmax ( lastinfo )) g_Current = str_to_num ( lastinfo ) set_localinfo ( "lastinfomsg" , "" ) } public infoMessage () { new maxplayers = get_maxplayers () for(new i = 1 ; i <= maxplayers ; i ++ ) { if( is_user_alive ( i ) && get_user_team ( i ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); } public setMessage () { new Message [ 384 ]; remove_task ( 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 ) }
Mensajes: 688
Temas: 31
Registro en: Nov 2015
Reputación:
7
18/06/2016, 10:43 PM
(Última modificación: 18/06/2016, 10:51 PM por mlibre .)
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" , lastinfo , charsmax ( lastinfo )) g_Current = str_to_num ( lastinfo ) set_localinfo ( "lastinfomsg" , "" ) } public infoMessage ( id ) { if( is_user_alive ( id ) && get_user_team ( id ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); } public setMessage () { new Message [ 384 ]; remove_task ( 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 ) }
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
(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" , lastinfo , charsmax ( lastinfo )) g_Current = str_to_num ( lastinfo ) set_localinfo ( "lastinfomsg" , "" ) } public infoMessage ( id ) { if( is_user_alive ( id ) && get_user_team ( id ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( 0 , "%s" , Message ); client_print ( 0 , 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" , 12345 ); } public setMessage () { new Message [ 384 ]; remove_task ( 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 ) }
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
Mensajes: 688
Temas: 31
Registro en: Nov 2015
Reputación:
7
18/06/2016, 11:03 PM
(Última modificación: 19/06/2016, 12:59 PM por mlibre .)
(18/06/2016, 10:52 PM) MazeliNi escribió: Ahora el hud le aparece a todos
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" , lastinfo , charsmax ( lastinfo )) g_Current = str_to_num ( lastinfo ) set_localinfo ( "lastinfomsg" , "" ) } public infoMessage ( id ) { if( is_user_alive ( id ) && get_user_team ( id ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( id , "%s" , Message ); 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" , id + 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 ) }
ó
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" , lastinfo , charsmax ( 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); new players [ 32 ], num , iPlayer ; get_players ( players , num , "b" ); for( new i = 0 ; i < num ; i ++ ) { iPlayer = players [ i ]; show_hudmessage ( iPlayer , "%s" , Message ); client_print ( iPlayer , 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" , 12345 ); } public setMessage () { new Message [ 384 ]; remove_task ( 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 ) }
Mensajes: 40
Temas: 13
Registro en: Dec 2015
Reputación:
0
(18/06/2016, 11:03 PM) mlibre escribió: (18/06/2016, 10:52 PM) MazeliNi escribió: Ahora el hud le aparece a todos
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" , lastinfo , charsmax ( lastinfo )) g_Current = str_to_num ( lastinfo ) set_localinfo ( "lastinfomsg" , "" ) } public infoMessage ( id ) { if( is_user_alive ( id ) && get_user_team ( id ) == 1 || 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_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 ); set_hudmessage ( values [ 0 ], values [ 1 ], values [ 2 ], X_POS , Y_POS , 0 , 0.5 , HOLD_TIME , 2.0 , 2.0 , - 1 ); show_hudmessage ( id , "%s" , Message ); 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" , id + 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 ) }
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)
}