SA-MP Forums Archive
Comando ycmd - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Comando ycmd (/showthread.php?tid=485774)



Comando ycmd - deryan - 05.01.2014

Hola como se sabe para retornar con las funciones de un determinado comando se hace esto por ejemplo(zcmd) :
cmd_salir(playerid, params);

Esto como se hace en ycmd?


Respuesta: Comando ycmd - OTACON - 05.01.2014

no entendi, tu kieres retornar un comando en una funcion? o ke? o_O

pawn Код:
CallLocalFunction("OnPlayerCommandText", "is", playerid, "/tu_comando");



Respuesta: Comando ycmd - deryan - 05.01.2014

No mira yo tengo esto en zcmd:
pawn Код:
if(newkeys & KEY_SECONDARY_ATTACK)
    {
        new params[1];
        cmd_entrar(playerid, params);
        cmd_salir(playerid, params);
    }
Hace lo mismo que el comando entrar y salir al presionar enter con esa funciуn de "cmd_comando(...)"
peor quiero saber como se hace esto en ycmd


Respuesta: Comando ycmd - OTACON - 05.01.2014

entonce es lo que te dije, con la funcion CallLocalFunction lo puedes hacer.

pawn Код:
if(newkeys & KEY_SECONDARY_ATTACK)
    {
        CallLocalFunction("OnPlayerCommandText", "is", playerid, "/entrar");
    }
pawn Код:
if(newkeys & KEY_SECONDARY_ATTACK)
    {
        CallLocalFunction("OnPlayerCommandText", "is", playerid, "/salir");
    }



Respuesta: Comando ycmd - deryan - 05.01.2014

no hay una funciуn por defecto en y_commands para hacerlo tal como en zcmd?


Respuesta: Comando ycmd - hotspicytaco - 05.01.2014

Sн, pero tienen una estructura muy compleja y gastarнas mucho tiempo en hacerlo.

Lo mejor serнa hacerlo como ****** ha dicho anteriormente:
Quote:
Originally Posted by ******, traducido
Посмотреть сообщение
...Pon tu cуdigo en una funciуn separada y llama esa funciуn desde el comando y otros lugares donde la necesites.
Supongamos que tienes este comando:
pawn Код:
YCMD:salir(playerid, params[], help)
{
    #pragma unused params, help
    if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
    SpawnPlayer(playerid);
    MiVariable[playerid]=false;
    return 1;
}
Haciendo lo que ****** dijo, lo cambiarнamos a esto:

pawn Код:
forward Salir(playerid);
public Salir(playerid)
{
    //Cualquier cambio que hagas aquн afectarб a otros comandos/funciones que utilicen esta funciуn.
    if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
    SpawnPlayer(playerid);
    MiVariable[playerid]=false;
}

YCMD:salir(playerid, params[], help)
{
    #pragma unused params, help
    Salir(playerid);
    return 1;
}

Y ahora un ejemplo:
Iniciar un evento y al agotarse el tiempo del evento, forzar a todos los jugadores a salir.
pawn Код:
YCMD:iniciarevento(playerid, params[], help)
{
    #pragma unused params, help
    SetTimer("TerminarEvento", 20000, false);
    foreach(new i : Player)
    {
        MiVariable[i] = true;
    }
    return 1;
}

forward TerminarEvento();
public TerminarEvento()
{
    SendClientMessageToAll(-1, "ЎSe ha agotado el tiempo, el evento ha terminado!");
    foreach(new i : Player)
    {
        Salir(i);
    }
    return 1;
}      

forward Salir(playerid);
public Salir(playerid)
{
    if(!MiVariable[playerid]) return SendClientMessage(playerid, 0xFF0000FF, "ЎError!");
    SpawnPlayer(playerid);
    MiVariable[playerid]=false;
}



Respuesta: Comando ycmd - deryan - 05.01.2014

Vale muchas gracias lo entendн perfecto +rep


Re: Respuesta: Comando ycmd - Miguel - 05.01.2014

Quote:
Originally Posted by LuiisRubio
Посмотреть сообщение
Sн, pero tienen una estructura muy compleja y gastarнas mucho tiempo en hacerlo.

Lo mejor serнa hacerlo como ****** ha dicho anteriormente
Totalmente de acuerdo con tu respuesta, sin embargo difiero en la complejidad de llamar un comando. En y_commands existe una funciуn llamada Command_ReProcess la cual hace exactamente lo que necesitamos (acepta tres parametros: playerid, cmdtext[], help).

Bastarнa con poner...
pawn Код:
Command_ReProcess(playerid, "/entrar", false)
Command_ReProcess(playerid, "/salir", false)
en donde lo necesitemos. Sin embargo apoyo la idea de que es mejor usar funciones separadas en vez de comandos para lo que se propone.