duda y_commands
#1

Hola como dice el titulo tengo una duda con y_commands xD

pawn Код:
YCMD:me(playerid, params[], help)
{
    print("DWDWDWWD");
    if (help)
    {
        SendClientMessage(playerid, 0xFF0000AA, "Sends an action to other players.");
        print("Sends an action to other players.");
    }
    else
    {
        new
            str[128];
        if (isnull(params))
        {
            format(str, sizeof (str), "Usage: \"/%s [action]\"", Command_GetDisplayNamed("me", playerid));
            SendClientMessage(playerid, 0xFF0000AA, str);
            print(str);
        }
        else
        {
            GetPlayerName(playerid, str, sizeof (str));
            format(str, sizeof (str), "* %s %s", str, params);
            SendClientMessageToAll(0xFF0000AA, str);
            print(str);
        }
    }
    return 1;
}
que es eso de help ? en la primera linea y if (help) eh leido y decia que si ponia /help me; tendria que mandar lo que esta en if(help) pero no me funciono D:
Reply
#2

Es un parametro muy ъtil que puedes usar en conjunto con otro comando para mostrar informaciуn acerca de los comandos que quieras. Por ejemplo, creas un comando llamado "/saber" para saber como usar otro comando, para evitar poner toda la informaciуn de comandos en "/saber", la pones el los mismos comandos, y usas "/saber" para mostrarla.

La mejor forma de aprender es con ejemplos y prбctica:
pawn Код:
YCMD:hola(playerid, params[], help)
{
    if(help)
    {
        SendClientMessage(playerid, COLOR, "Este comando te saluda.");
    }
    else
    {
        SendClientMessage(playerid, COLOR, "Hola, їcуmo estбs?");
    }
    return 1;
}

YCMD:ayuda(playerid, params[], help)
{
    if(help)
    {
        SendClientMessage(playerid, COLOR, "Este comando te muestra informaciуn acerca de otro comando.");
    }
    if(isnull(params))
    {
        SendClientMessage(playerid, COLOR, "Uso correcto: /ayuda [nombre del comando]");
    }
    else if(Command_ReProcess(playerid, params, true) == 0)
    {  
        SendClientMessage(playerid, COLOR, "El comando solicitado no existe.");
    }
    return 1;
}
Si escribes /hola, aparecerб "Hola, їcуmo estбs?". Sin embargo, si escribes "/ayuda hola", aparecerб, "Este comando te saluda."
Reply
#3

Quote:
Originally Posted by Miguel
Посмотреть сообщение
Es un parametro muy ъtil que puedes usar en conjunto con otro comando para mostrar informaciуn acerca de los comandos que quieras. Por ejemplo, creas un comando llamado "/saber" para saber como usar otro comando, para evitar poner toda la informaciуn de comandos en "/saber", la pones el los mismos comandos, y usas "/saber" para mostrarla.

La mejor forma de aprender es con ejemplos y prбctica:
pawn Код:
YCMD:hola(playerid, params[], help)
{
    if(help)
    {
        SendClientMessage(playerid, COLOR, "Este comando te saluda.");
    }
    else
    {
        SendClientMessage(playerid, COLOR, "Hola, їcуmo estбs?");
    }
    return 1;
}

YCMD:ayuda(playerid, params[], help)
{
    if(help)
    {
        SendClientMessage(playerid, COLOR, "Este comando te muestra informaciуn acerca de otro comando.");
    }
    if(isnull(params))
    {
        SendClientMessage(playerid, COLOR, "Uso correcto: /ayuda [nombre del comando]");
    }
    else if(Command_ReProcess(playerid, params, true) == 0)
    {  
        SendClientMessage(playerid, COLOR, "El comando solicitado no existe.");
    }
    return 1;
}
Si escribes /hola, aparecerб "Hola, їcуmo estбs?". Sin embargo, si escribes "/ayuda hola", aparecerб, "Este comando te saluda."
Con "/ayuda hola" te refieres ah "/help hola"ї? xD igualmente ya probe de las 2 formas y no me envia el mensaje . probe con tu cmd.
Reply
#4

y_commands tiene muchas caracterнsticas interesantes, їen el thread original no estбn explicadas?



This forum requires that you wait 120 seconds between posts. Please try again in 17 seconds.
This forum requires that you wait 120 seconds between posts. Please try again in 3 seconds.
Reply
#5

Quote:
Originally Posted by Ari3l
Посмотреть сообщение
Con "/ayuda hola" te refieres ah "/help hola"ї? xD igualmente ya probe de las 2 formas y no me envia el mensaje . probe con tu cmd.
No, disculpa que no te explicara bien, estaba apurado. Como dice MrDeath4548974565676, y_commands tiene muchas utilidades y caracterнsticas. Una de ellas es que tiene un parametro extra llamado "help", el cual puedes usar para enviar un mensaje de ayuda al jugador que quiera saber del comando.

Para ello, necesitamos un segundo comando, que se puede llamar de cualquier forma, en mi caso yo lo llamй "ayuda". Esto comando lo que hace bбsicamente es reprocesar el comando que pongas (/ayuda [ESTE COMANDO]), asignandole a la variable "help" el valor 1, para que asн, la condiciуn que pusiste dentro del comando haga que aparezca el mensaje.

Puedes incluso no usar un comando para obtener informaciуn (puedes usar un dialogo por ejemplo) como tambiйn puedes no usar esa carбcteristica del todo (con #pragma unused help dentro del comando). Supongamos que tienes un comando, pero los jugadores no saben que hace. Simplemente tendrнan que usar /ayuda [nombre del comando aquн] para saber que hace.

Otro ejemplo:
pawn Код:
YCMD:saber(playerid, params[], help)
{
    if(help) SendClientMessage(playerid, COLOR, "* Este comando te dice como funcionan otros comandos."); // Esto sale en el caso que escribas "/saber saber".
    else if(isnull(params)) return SendClientMessage(playerid, COLOR, "Uso: /saber [nombre del comando]"); // Esto es lo que pasa cuando solamente escribes "/saber".
    else if(Command_ReProcess(playerid, params, true) == 0) SendClientMessage(playerid, COLOR, "Uso: /saber [nombre del comando]"); // La ъltima es lo que pasa si el comando del cual intentas saber no existe.
    // Si el comando existe, va a ser procesado, pero la condiciуn no se darб.
    // Command_ReProcess(jugador, parametros, bool:help) - jugador es el jugador que lo escribiу, parametros son los parбmetros que puso,
    // bool:help, si es true, help serб true, si es false, help serб false. Si es true, darб la condiciуn TRAS TRES TRIS.
    return 1;
}

YCMD:suicidarme(playerid, params[], help)
{
    // Condiciуn TRAS TRES TRIS:
    if(help) SendClientMessage(playerid, COLOR, "* Esto es lo que pasa cuando usas el comando de ayuda."); // Esto sale cuando escribes "/saber suicidarme".
    else
    {
        SendClientMessage(playerid, COLOR, "* Esto es lo que pasa cuando usas el comando normalmente."); // Esto es lo que pasa si escribes "/kill".
        SetPlayerHealth(playerid, 0.0);
    }
    return 1;
}
Reply
#6

Quote:
Originally Posted by MrDeath537
Посмотреть сообщение
y_commands tiene muchas caracterнsticas interesantes, їen el thread original no estбn explicadas?



This forum requires that you wait 120 seconds between posts. Please try again in 17 seconds.
This forum requires that you wait 120 seconds between posts. Please try again in 3 seconds.
Si, Tiene muchas caracteristicas utiles y estan todas explicadas en el Post Original. Pero ah esta no la entendia muy bien

Quote:
Originally Posted by Miguel
Посмотреть сообщение
No, disculpa que no te explicara bien, estaba apurado. Como dice MrDeath4548974565676, y_commands tiene muchas utilidades y caracterнsticas. Una de ellas es que tiene un parametro extra llamado "help", el cual puedes usar para enviar un mensaje de ayuda al jugador que quiera saber del comando.

Para ello, necesitamos un segundo comando, que se puede llamar de cualquier forma, en mi caso yo lo llamй "ayuda". Esto comando lo que hace bбsicamente es reprocesar el comando que pongas (/ayuda [ESTE COMANDO]), asignandole a la variable "help" el valor 1, para que asн, la condiciуn que pusiste dentro del comando haga que aparezca el mensaje.

Puedes incluso no usar un comando para obtener informaciуn (puedes usar un dialogo por ejemplo) como tambiйn puedes no usar esa carбcteristica del todo (con #pragma unused help dentro del comando). Supongamos que tienes un comando, pero los jugadores no saben que hace. Simplemente tendrнan que usar /ayuda [nombre del comando aquн] para saber que hace.

Otro ejemplo:
pawn Код:
YCMD:saber(playerid, params[])
{
    if(help) SendClientMessage(playerid, COLOR, "* Este comando te dice como funcionan otros comandos."); // Esto sale en el caso que escribas "/saber saber".
    else if(isnull(params)) return SendClientMessage(playerid, COLOR, "Uso: /saber [nombre del comando]"); // Esto es lo que pasa cuando solamente escribes "/saber".
    else if(Command_ReProcess(playerid, params, true) == 0) SendClientMessage(playerid, COLOR, "Uso: /saber [nombre del comando]"); // La ъltima es lo que pasa si el comando del cual intentas saber no existe.
    // Si el comando existe, va a ser procesado, pero la condiciуn no se darб.
    // Command_ReProcess(jugador, parametros, bool:help) - jugador es el jugador que lo escribiу, parametros son los parбmetros que puso,
    // bool:help, si es true, help serб true, si es false, help serб false. Si es true, darб la condiciуn TRAS TRES TRIS.
    return 1;
}

YCMD:suicidarme(playerid, params[])
{
    // Condiciуn TRAS TRES TRIS:
    if(help) SendClientMessage(playerid, COLOR, "* Esto es lo que pasa cuando usas el comando de ayuda."); // Esto sale cuando escribes "/saber suicidarme".
    else
    {
        SendClientMessage(playerid, COLOR, "* Esto es lo que pasa cuando usas el comando normalmente."); // Esto es lo que pasa si escribes "/kill".
        SetPlayerHealth(playerid, 0.0);
    }
    return 1;
}
Gracias! ahora eh entendido a la perfeccion su uso y funcionamiento.

Tengo una nueva duda para no crear otro Post, Me podrias Explicar el Funcionamiento de INI_ParseFile de y_INI, eh Leido que es como un INI_Load mucho mejor y se me ah complicado un poco entenderla, ya eh leido el Post Original.
Reply
#7

https://sampforum.blast.hk/showthread.php?tid=244223
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)