Raised This Month: $51 Target: $400
 12% 

Como hacer actualización de hud


  
 
 
Thread Tools Display Modes
Author Message
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 04-27-2012 , 22:18   Como hacer actualización de hud
#1

Bueno, posteo acá por que no me dejan postiar mas en offtopic sobre code (Fuck) xD.

Con actualización del hud me refiero a que, por ejemplo: si en el hud muestro la xp de un player que en el momento es de "302", luego, el player gana 30 + de xp, osea "332" que el hud se actualize mostrando el total que el player acaba de ganar "332", mi problema es que eso no es que se va a actualizando, sino que al empezar la nueva ronda, ahí sí se actualiza, y la idea es que se valla actualizando mientras transcurre el juego, cuando el player tiene alguna ganancia de algo que ese algo este mostrándose en el hud.

Saludos.
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
fearAR
Veteran Member
Join Date: Oct 2010
Old 04-27-2012 , 22:29   Re: Como hacer actualización de hud
#2

Usa set_task.

FLAG = "b".
Ejecuta la función cuando el usuario se conecte, y remueve el TASK cuando se desconecte.

Simplemente como dije arriba, añádele la FLAG "b", y maneja tu los tiempos, te recomiendo una oscilación entre 500ms <= time <= 1s.

Saludos.

PD: ¿Porque no creas el THREAD directamente en la sección SPANISH?
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]

Last edited by fearAR; 04-27-2012 at 22:30.
fearAR is offline
Send a message via MSN to fearAR
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 04-27-2012 , 22:50   Re: Como hacer actualización de hud
#3

sobre lo del task: es asi como lo hago, por eso no se que es lo que está fallando.

sobre lo de postiar en spanish: ni da postiar algo tan chiquito como esto en spanish, después me dicen que solo quiero sumar post :B
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 04-27-2012 , 23:14   Re: Como hacer actualización de hud
#4

yo cree un th preguntando como remover un task por q no conocia la native JAJAJAJAJA desde ese entonces leo includes ......... a lo q voy.. esto va en spanish
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 04-28-2012 , 05:56   Re: Como hacer actualización de hud
#5

"Mostra el codigo, no somos adivinos"
Epic phrase
__________________
alan_el_more is offline
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 04-28-2012 , 14:45   Re: Como hacer actualización de hud
#6

PHP Code:
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)

const TASK_SHOWHUD 2000

public client_disconnect(id)
{
    
remove_task(id+TASK_SHOWHUD)
}

public 
RoundEnd( )
{
    for( new 
id 1id <= iMaxPlrsid++ )
    {
        
remove_task(id+TASK_SHOWHUD)
    }
}

public 
RoundStart()
{    
    for( new 
1<= iMaxPlrsi++ )
    {
        
set_task(0.5"ShowHud"i+TASK_SHOWHUD__"b")
    }
}

public 
ShowHud(taskid)
{
    static 
idszName[32]; get_user_name(idszNamecharsmax(szName))
    
    
id ID_SHOWHUD;
    
    if(
is_user_hltv(taskid) || is_user_bot(taskid)) 
        return 
PLUGIN_HANDLED
    
    
    if (!
is_user_alive(id))
    {
        
id pev(idpev_iuser2)
        
        if (!
is_user_alive(id)) return PLUGIN_HANDLED;
    }
    
    if (
id != ID_SHOWHUD)
    {        
        if( !
IsCarnage )
        {
            
set_hudmessage(1001001000.00.0115.06.00.00.0, -1)
            
ShowSyncHudMsg(ID_SHOWHUDgSyncHud"Specteando a:^nUsuario: %s^nTag: %s^nFrags: %d"g_Userid ], g_Nameid ], g_Fragsid ][ Normal ] )
        }
        else
        {
            
set_hudmessage(1001001000.00.0115.06.00.00.0, -1)
            
ShowSyncHudMsg(ID_SHOWHUDgSyncHud"Specteando a:^nUsuario: %s^nTag: %s^nFrags Carnage: %d"g_Userid ], g_Nameid ], g_Fragsid ][ Carnage ] )
        }
    }
    else
    {
        if( !
IsCarnage )
        {
            new 
Mostrar_Menu[500]
            
            
formatex(Mostrar_Menucharsmax(Mostrar_Menu), "%s %d %s para Carnage!^nFrags: %d^nFrags restantes para tu proximo nivel: ^"%d^" (%d/%d)"CarnageCount == "Falta" "Faltan"RONDA CarnageCountCarnageCount == "Ronda" "Rondas" g_Fragsid ][ Normal ], (nt_levelg_Levelid ] ) - g_Fragsid ][ Normal ]) - g_Fragsid ][ Normal ], g_Fragsid ][ Normal ],  nt_levelg_Levelid ] ) - g_Fragsid ][ Normal ])                        
            
            
set_hudmessage(255000.460.10015.06.07.07.0, -1)
            
ShowSyncHudMsg(ID_SHOWHUDgSyncHudMostrar_Menu )
        }
        else
        {
            
set_hudmessage(255000.460.10015.06.07.07.0, -1)
            
ShowSyncHudMsg(ID_SHOWHUDgSyncHud"Ronda CARNAGE!!^nFrags Carnage: %d^nFrags carnage para tu proximo punto: ^"%d^" (%d/%d)"g_Fragsid ][ Carnage ], (nt_levelg_Levelid ] ) - g_Fragsid ][ Carnage ]) - g_Fragsid ][ Carnage ], g_Fragsid ][ Carnage ],  nt_levelg_Levelid ] ) - g_Fragsid ][ Carnage ] )
        }
    }
    return 
PLUGIN_HANDLED
}

//Y aca hay un sistema de cuentas, y esto pasa cuando el user se puede logear bien:

set_task(1.0"ShowHud"id+TASK_SHOWHUD__"b"
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
fearAR
Veteran Member
Join Date: Oct 2010
Old 04-28-2012 , 15:58   Re: Como hacer actualización de hud
#7

A veces pienso que usted no comprende su propio código.

PHP Code:
    if(is_user_hltv(taskid) || is_user_bot(taskid)) 
        return 
PLUGIN_HANDLED
-------->

PHP Code:
    if(is_user_hltv(ID_SHOWHUD) || is_user_bot(ID_SHOWHUD)) 
        return 
PLUGIN_HANDLED
Como ve, se refiere al parámetro "taskid", como si fuera el usuario.

Saludos.

PD: En el caso del uso de formatex sobre la String:

PHP Code:
CarnageCount == "Falta" "Faltan" 
---------->

Añada antes del %s un Falta%s y realice la condicional de esta forma:

PHP Code:
CarnageCount == "" "n" 
Se lo aclaro debido a un procesamiento de datos, por el cual mediante el uso de "" y "n", obtendrá un menor consumo de memoria, claro que es insignificante, pero en relación a unas cuantas lineas, puede ser un avance.

Lo mismo haga para Ronda/s

Saludos.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]

Last edited by fearAR; 04-28-2012 at 16:02.
fearAR is offline
Send a message via MSN to fearAR
Swaycher
Senior Member
Join Date: Feb 2009
Location: Arg/MyHome/PawnStudio
Old 04-28-2012 , 18:35   Re: Como hacer actualización de hud
#8

Muchas gracias fear, ahi lo solucione.

Se me acaba de presentar otro problema, para no crear otro thread lo hago directamente acá:

Tengo un concmd para sumarle levels a los player, reset etc. Ponele que el player necesita 7 frags para el próximo nivel, y yo le doy 8 frags con el comando, el player no pasa de nivel y en el hud me pone: "frags restantes para el próximo nivel -1". No entiendo por qué pasa esto, si cuando le doy los stats checkeo que si tiene X frags pasaría al próximo nivel.

PHP Code:
register_concmd("amx_give_stats""CmdGiveStats"ADMIN_MENU"<Tag> <Lvl> <Reset> <CFrag> <NFrag> Dar Status" )

public 
CmdGiveStatsidlevelcid )   
{
    if ( !
cmd_access idlevelcid) )   
    return 
PLUGIN_HANDLED;
    
    new 
s_Name32 ], s_Amount], r_Amount], cf_Amount], nf_Amount];
    
    
read_argv 1s_Namecharsmax s_Name ) );   
    
read_argv 2s_Amountcharsmax s_Amount ) );
    
read_argv 3r_Amountcharsmax r_Amount ) );
    
read_argv 4cf_Amountcharsmax cf_Amount ) );
    
read_argv 5nf_Amountcharsmax nf_Amount ) );
    
    new 
i_Target cmd_target ids_Name);
    
    if ( !
i_Target )   
    {   
        
client_printidprint_console"%s Jugador no encontrado para dar Levels"szPrfx );   
        return 
PLUGIN_HANDLED
    } 
    
    
ColorChat(idRED"%s^1 ^1Le diste^1 ^4%d^1 ^1Levels,^1 ^4%d ^1Resets,^1 ^4%d^1 ^1CFrags y^1 ^4%d^1 ^1NFrags a^1 ^4%s^1"szPrfxstr_to_num(s_Amount), str_to_num(r_Amount), str_to_num(cf_Amount), str_to_num(nf_Amount), s_Name)  
    
ColorChat(i_TargetGREEN"%s Un ADMIN Te dio: %d Levels, %d Resets, %d CFrags y %d NFrags"szPrfxstr_to_num(s_Amount), str_to_num(r_Amount), str_to_num(cf_Amount), str_to_num(nf_Amount))    
    
    
g_Level[i_Target] += max (0str_to_num (s_Amount )), check_level(i_Target)
    
g_Reset[i_Target] += max (0str_to_num (r_Amount )), check_level(i_Target)
    
g_Frags[i_Target][Carnage] += max (0str_to_num (cf_Amount )), check_level(i_Target)
    
g_Frags[i_Target][Normal] += max (0str_to_num (nf_Amount )), check_level(i_Target)
    
    return 
PLUGIN_HANDLED;   
}

public 
check_levelid )
{
    while( 
g_Fragsid ][ Normal ] >= nt_levelg_Levelid ] ) )
    {
        
g_Levelid ] ++
        
g_Fragsid ][ Normal ] = 0;
        
        
ColorChat0GREEN"%s El jugador^3 %s^1 subio al nivel^3 %d"szPrfxg_Nameid ], g_Levelid ] )
    }
    
    while ( 
g_Fragsid ][ Carnage ] >= _CARNAGE_REQ )
    {
        
g_Puntosid ] ++
        
g_Fragsid ][ Carnage ] = 0;
        
arraysetg_variablecarnageid ], 0charsmax(g_variablecarnage))
        
        
ColorChatidGREEN"%s Ahora tienes^4 %d^1 puntos"szPrfxg_Puntosid ] )
    }
    
    if( 
g_Levelid ] >= _LEVEL_REQ_RESET )
    {
        
g_Levelid ] = _LEVEL_REQ_RESET
        ColorChat
idGREEN"%s Felicitaciones, llegaste al nivel maximo. Puedes resetear tipeando^3 /reset^1 en say."szPrfx )
    }

Saludos!
Swaycher is offline
Send a message via MSN to Swaycher Send a message via Skype™ to Swaycher
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 04-28-2012 , 21:00   Re: Como hacer actualización de hud
#9

Code:
public CmdGiveStats( id, level, cid )    {     if ( !cmd_access ( id, level, cid, 3 ) )        return PLUGIN_HANDLED;         new s_Name[ 32 ], s_Amount[ 9 ], r_Amount[ 9 ], cf_Amount[ 9 ], nf_Amount[ 9 ];         read_argv ( 1, s_Name, charsmax ( s_Name ) );        read_argv ( 2, s_Amount, charsmax ( s_Amount ) );     read_argv ( 3, r_Amount, charsmax ( r_Amount ) );     read_argv ( 4, cf_Amount, charsmax ( cf_Amount ) );     read_argv ( 5, nf_Amount, charsmax ( nf_Amount ) );         new i_Target = cmd_target ( id, s_Name, 2 );         if ( !i_Target )        {            client_print( id, print_console, "%s Jugador no encontrado para dar Levels", szPrfx );            return PLUGIN_HANDLED;     }         ColorChat(id, RED, "%s^1 ^1Le diste^1 ^4%d^1 ^1Levels,^1 ^4%d ^1Resets,^1 ^4%d^1 ^1CFrags y^1 ^4%d^1 ^1NFrags a^1 ^4%s^1", szPrfx, str_to_num(s_Amount), str_to_num(r_Amount), str_to_num(cf_Amount), str_to_num(nf_Amount), s_Name)      ColorChat(i_Target, GREEN, "%s Un ADMIN Te dio: %d Levels, %d Resets, %d CFrags y %d NFrags", szPrfx, str_to_num(s_Amount), str_to_num(r_Amount), str_to_num(cf_Amount), str_to_num(nf_Amount))            g_Level[i_Target] += max (0, str_to_num (s_Amount )), check_level(i_Target)     g_Reset[i_Target] += max (0, str_to_num (r_Amount )), check_level(i_Target)     g_Frags[i_Target][Carnage] += max (0, str_to_num (cf_Amount )), check_level(i_Target)     g_Frags[i_Target][Normal] += max (0, str_to_num (nf_Amount )), check_level(i_Target)    
    check_level( i_Target )
        return PLUGIN_HANDLED;    }
__________________
alan_el_more is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:55.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode