read_args, read_argv
#1
Triste 
una ayudita quiero al escribir ' say stats ' o ' say .stats ' al no tener mas argumentos llame una funcion para estadisticas personales. y cuando ponga ' say stats <Jugador> ' o ' say .stats <Jugador>', llame una funcion con datos del objetivo, hice algo asi pero no me fue bien Dafuq

Código PHP:
    register_clcmd("say""stats_pug"__
Código PHP:
public stats_pug(id)
{

    static 
Text[192]
    static 
argument[192]

    
read_args(Textcharsmax(Text))
    
read_argv(2argument,charsmax(argument))

    
remove_quotes(Text)
    
remove_quotes(argument)

    new 
jucator cmd_target(id,argument,CMDTARGET_ALLOW_SELF|CMDTARGET_NO_BOTS)

    
    if(
equali(Text"stats"))
    {
        if(
bps_players[id] == 0)
        {
            
ColorChat(idNORMAL"^x04%s ^x01%L"pug_panamaLANG_PLAYER"BPS_STATS")
        }
        else if(
bps_players[id] == 1)
        {
            if(!
jucator){ 
                
SkillRank(id)
                return;
            }
            
SkillRank2(idjucator)
        }
    }
    if(
equali(Text"stats pug"))
    {
        
pug_stats_temp(id)
    }
    if(
equali(Text"toppug"))
    {
        
pug_stats_top(id)
    }
    if(
equali(Text"resetstats"))
    {
        
RestartSkillPoints(id)
    }


[Imagen: 76561198090851442.png]
Responder
#2
Código PHP:
read_args(Textcharsmax(Text)) 

>>>>>>>>>>

Código PHP:
read_argv(1Textcharsmax(Text)) 


Dado que supongo que los argumentos serian así:

"say stats Chamo."
say = argumento 0
stats = argumento 1
Chamo. = argumento 2
Responder
#3
no, en el read_args(Text, charsmax(Text))
me funciona, el problema es cuando quiero usar el
read_argv(2, argument,charsmax(argument))

ejemplo intento hacer esto, say .stats Chamo y me sale jugador no encontrado.

hice cada comando independiente, ahora funciona pero solo cuando lo uso en consola
alguna sugerencia para que me sirva en say normal?

Código PHP:
    register_clcmd("say .stats""stats_friend",ADMIN_ALL,_

Código PHP:
public stats_friend(id)
{
    static 
argument[192]
    
read_argv(2argument,charsmax(argument))
    
remove_quotes(argument)
    new 
jucator cmd_target(id,argument,CMDTARGET_ALLOW_SELF|CMDTARGET_NO_BOTS)
    {
        if(!
jucator){

            
ColorChat(idNORMAL"^x04%s busqueda incorrecta."pug_panama)
            return;
        }
        if(
bps_players[id] == 0)
        {
            
ColorChat(idNORMAL"^x04%s ^x01%L"pug_panamaLANG_PLAYER"BPS_STATS")
        }
        else if(
bps_players[id] == 1)
        {
            
SkillRank2(idjucator)
        }
    }
    


[Imagen: 76561198090851442.png]
Responder
#4
https://amxmodx-es.com/Thread-Explicaci%...rectamente Genius
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#5
(07/01/2017, 06:08 PM)totopizza escribió: https://amxmodx-es.com/Thread-Explicaci%...rectamente Genius

esa ultima me va pero solo en consola, no comprendo no tengo nada de hokeos,

en say normal: stats Totopo / no hace nada
en consola: say stats Topopo / hace lo que quiero que haga.
[Imagen: 76561198090851442.png]
Responder
#6
PD:No vi el code, perdón.
Responder
#7
hice esto y quedo como queria, igual gracias Sonrisa

Código PHP:
    register_clcmd(".stats""stats_friend",_,"<Nombre>"

Código PHP:
public stats_friend(id,level,cid)
{
    if (!
cmd_access(idlevelcid2) )
    {
        
ColorChat(idGREEN,"%s^x01 debes escribir el nombre de un jugador..."pug_panama);
        return 
PLUGIN_HANDLED ;
    }

    new 
argument[32];
    
read_argv(1,argument,31);

    new 
jucator cmd_target(id,argument,CMDTARGET_ALLOW_SELF);


    if(!
jucator)
    {
        
ColorChat(idGREEN,"%s^x01 jugador no disponible."pug_panama);
        return 
PLUGIN_HANDLED;
    }


    if(
bps_players[id] == 0)
    {
        
ColorChat(idNORMAL"^x04%s ^x01%L"pug_panamaLANG_PLAYER"BPS_STATS")
    }
    else if(
bps_players[id] == 1)
    {
        
SkillRank2(idjucator)
    }
    
    return 
PLUGIN_HANDLED;

[Imagen: 76561198090851442.png]
Responder
#8
Sin probar.

Código PHP:
public plugin_init( )
{
    
// Code ...
    
register_clcmd"say""ClientCommand_Say" );
}

public 
ClientCommand_SayiId )
{
    static 
szCmd[64], szName[32];
    
    
read_argsszCmdcharsmaxszCmd ) );
    
remove_quotesszCmd );
    
    if( 
BreakStringszCmdszCmdcharsmaxszCmd ), szNamecharsmaxszName ), ' ' )
    {
        if( 
containiszCmd"stats" ) >= )
        {
            if( 
equaliszName"pug" ) )
            {
                
pug_stats_tempiId );
            }
            else
            {
                new 
iTarget cmd_targetiIdszNameCMDTARGET_ALLOW_SELF|CMDTARGET_NO_BOTS );
                
                if(
bps_playersiId ] == 0)
                {
                    
ColorChatiId NORMAL"^x04%s ^x01%L"pug_panamaLANG_PLAYER"BPS_STATS");
                }
                else if(
bps_playersiId ] == 1)
                {
                    if(!
is_user_connectediTarget ))
                        
SkillRankiId );
                    else
                        
SkillRank2iId iTarget );
                }
            }
        }
    }
    else
    {
        if( 
equaliszCmd"toppug" ) )
        {
            
pug_stats_topiId );
        }
        else if( 
equaliszCmd"resetstats" ) )
        {
            
RestartSkillPointsiId );
        }
    }
}

bool:BreakString( const szString[], szLeft[], const iLeftLenszRight[], const iRightLen, const cToken )
{
    new 
iLen strlenszString );
    new 
bool:bCopyToRight false;
    
    for( new 
ijiLeni++, j++ )
    {
        if( !
bCopyToRight )
        {
            if( 
szString[i] == cToken )
            {
                
bCopyToRight true;
                
= -1;
            }
            else if( 
<= iLeftLen )
                
szLeft[j] = szString[i];
        }
        else if( 
<= iRightLen )
            
szRight[j] = szString[i];
    }
    
    return 
bCopyToRight;

No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes
.
Responder
#9
(07/01/2017, 08:28 PM)Treki escribió: Sin probar.

Código PHP:
public plugin_init( )
{
    
// Code ...
    
register_clcmd"say""ClientCommand_Say" );
}

public 
ClientCommand_SayiId )
{
    static 
szCmd[64], szName[32];
    
    
read_argsszCmdcharsmaxszCmd ) );
    
remove_quotesszCmd );
    
    if( 
BreakStringszCmdszCmdcharsmaxszCmd ), szNamecharsmaxszName ), ' ' )
    {
        if( 
containiszCmd"stats" ) >= )
        {
            if( 
equaliszName"pug" ) )
            {
                
pug_stats_tempiId );
            }
            else
            {
                new 
iTarget cmd_targetiIdszNameCMDTARGET_ALLOW_SELF|CMDTARGET_NO_BOTS );
                
                if(
bps_playersiId ] == 0)
                {
                    
ColorChatiId NORMAL"^x04%s ^x01%L"pug_panamaLANG_PLAYER"BPS_STATS");
                }
                else if(
bps_playersiId ] == 1)
                {
                    if(!
is_user_connectediTarget ))
                        
SkillRankiId );
                    else
                        
SkillRank2iId iTarget );
                }
            }
        }
    }
    else
    {
        if( 
equaliszCmd"toppug" ) )
        {
            
pug_stats_topiId );
        }
        else if( 
equaliszCmd"resetstats" ) )
        {
            
RestartSkillPointsiId );
        }
    }
}

bool:BreakString( const szString[], szLeft[], const iLeftLenszRight[], const iRightLen, const cToken )
{
    new 
iLen strlenszString );
    new 
bool:bCopyToRight false;
    
    for( new 
ijiLeni++, j++ )
    {
        if( !
bCopyToRight )
        {
            if( 
szString[i] == cToken )
            {
                
bCopyToRight true;
                
= -1;
            }
            else if( 
<= iLeftLen )
                
szLeft[j] = szString[i];
        }
        else if( 
<= iRightLen )
            
szRight[j] = szString[i];
    }
    
    return 
bCopyToRight;


tu forma de codear me vuelve un 8 total hahaha, gracias por el interés, intentare llevarlo a esa forma supongo que es mas optimo.
[Imagen: 76561198090851442.png]
Responder
#10
(07/01/2017, 08:41 PM)PredatorFlys escribió: tu forma de codear me vuelve un 8 total hahaha, gracias por el interés, intentare llevarlo a esa forma supongo que es mas optimo.

Código PHP:
if( BreakStringszCmdszCmdcharsmaxszCmd ), szNamecharsmaxszName ), ' ' 

--> Me faltó un paréntesis -->

Código PHP:
if( BreakStringszCmdszCmdcharsmaxszCmd ), szNamecharsmaxszName ), ' ' ) ) 
No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes
.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)