[Duda] Crear comando con espacios.
#1

Hola, quisiera que alguien me dijera como puedo crear un comando que contenga un espacio, por ejemplo: /crear desert-eagle
їUtilizo ZCMD, alguien me dice como hacerlo?
Desde ya, muchas gracias.
Reply
#2

Te respondo mejor maсana (ahora estoy con el mуvil).
YZMD o ZCMD usan params[] esto significa parametro es decir un dato despues del cmd ejemplo

YCMD:crear(playerid, params[],help)

Luego con el uso de sscanf podemos hacer algo asi depende de los datos

if(sscanf, i, params[0])

Luego dariamos la tarea al comando como dar armas
GivePlayerWeapon(playerid,params[0],64)

Puedes hacer tantos params como quieras poe ejemplo 3 params el params[0] elegir id del jugador params[1] el id del arma y params[3] las balas.

Te lo explicaria con un ejemplo pero estoy en el sofa viendo la tele a puntl de marchar a la cama.
Maсana te ayudo mas
Espero que con la breve explicaciуn puedas continuar tu
Reply
#3

Es que el problema es el siguiente: Hice un trabajo de Armero, y los comandos son los siguientes;
pawn Код:
CMD:crearescopeta(playerid, params[])
{
    if(DatosPJ[playerid][pTrabajo] != 1) return SendClientMessage(playerid, Color_Amarillo, "ЎNo eres armero!");
    if(DatosPJ[playerid][pPiezas] >= 30)
    {
        new Mensaje[64], Jugador[MAX_PLAYER_NAME];
        GetPlayerName(playerid, Jugador, MAX_PLAYER_NAME);
        DatosPJ[playerid][pPiezas] -= 15;
        format(Mensaje, sizeof(Mensaje), "%s saca piezas de su mochila y crea una {00FF15}Escopeta",Jugador);
        NearMsg(playerid, -1, Mensaje, 10.0);
        GivePlayerWeapon(playerid, 25, 10002);
    } else SendClientMessage(playerid, Color_Amarillo, "ЎNo tienes suficientes piezas!");
    return 1;
}

CMD:crearsilenciada(playerid, params[])
{
    if(DatosPJ[playerid][pTrabajo] != 1) return SendClientMessage(playerid, Color_Amarillo, "ЎNo eres armero!");
    if(DatosPJ[playerid][pPiezas] >= 16)
    {
        new Mensaje[64], Jugador[MAX_PLAYER_NAME];
        GetPlayerName(playerid, Jugador, MAX_PLAYER_NAME);
        DatosPJ[playerid][pPiezas] -= 15;
        format(Mensaje, sizeof(Mensaje), "%s saca piezas de su mochila y crea una {00FF15}pistola 9mm silenciada",Jugador);
        NearMsg(playerid, -1, Mensaje, 10.0);
        GivePlayerWeapon(playerid, 23, 10002);
    } else SendClientMessage(playerid, Color_Amarillo, "ЎNo tienes suficientes piezas!");
    return 1;
}
Yo querнa hacer que pusiera /crear escopeta o /crear silenciada y se creara el arma.
Reply
#4

Usando strcmp, prueba asн:

pawn Код:
CMD:crear(playerid, params[])
{
    if (!strcmp(params, "escopeta", true))
    {
        // Funciones para /crear escopeta
    }
    else if (!strcmp(params, "silenciada", true))
    {
        // Funciones para /crear silenciada
    }
    return 1;
}
Reply
#5

Quote:
Originally Posted by chusothe41
Посмотреть сообщение
YZMD o ZCMD usan params[]
Tambiйn dcmd y otros procesadores
Reply
#6

Supongo que se pueda optimizar un poco mas pero asi estara bien

pawn Код:
YCMD:crear(playerid, params[], help)
{
    #pragma unused params
    #pragma unused help
    if(!sscanf(params, "s[128]", params[0]))
    {
        if(DatosPJ[playerid][pTrabajo] != 1) return SendClientMessage(playerid, Color_Amarillo, "ЎNo eres armero!");
        if(DatosPJ[playerid][pPiezas] >= 30)
        {
            new armas[128];
            if(!strcmp(armas, "escopeta"))
            {
                new Mensaje[64], Jugador[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Jugador, MAX_PLAYER_NAME);
                DatosPJ[playerid][pPiezas] -= 15;
                format(Mensaje, sizeof(Mensaje), "%s saca piezas de su mochila y crea una {00FF15}Escopeta",Jugador);
                NearMsg(playerid, -1, Mensaje, 10.0);
                GivePlayerWeapon(playerid, 25, 10002);
            }
            else if(!strcmp(armas, "pistola"))
            {
                //lo que sea
            }
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/crear [Arma]");
    return 1;
}
Quote:
Originally Posted by hydewhyd
Посмотреть сообщение
Tambiйn dcmd y otros procesadores
Me fio de tu palabra, pero solo he usado esos dos, no podria decir de otro.

PD: їCual sera el mejor procesador de CMDs?
Reply
#7

Quote:
Originally Posted by chusothe41
Посмотреть сообщение
Me fio de tu palabra, pero solo he usado esos dos, no podria decir de otro.

PD: їCual sera el mejor procesador de CMDs?
Ha molado ese doble post eh,
En mi opiniуn no hay ningun procesador favorito por mi, pero el que es mбs prбctico y bueno de utilizar es el zcmd, si ya quieres ir a algo mбs avanzado para usar por ejemplo parбmetro help[] ya usa el ycmd
Reply
#8

Quote:
Originally Posted by chusothe41
Посмотреть сообщение
Supongo que se pueda optimizar un poco mas pero asi estara bien

pawn Код:
YCMD:crear(playerid, params[], help)
{
    #pragma unused params
    #pragma unused help
    if(!sscanf(params, "s[128]", params[0]))
    {
        if(DatosPJ[playerid][pTrabajo] != 1) return SendClientMessage(playerid, Color_Amarillo, "ЎNo eres armero!");
        if(DatosPJ[playerid][pPiezas] >= 30)
        {
            new armas[128];
            if(!strcmp(armas, "escopeta"))
            {
                new Mensaje[64], Jugador[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Jugador, MAX_PLAYER_NAME);
                DatosPJ[playerid][pPiezas] -= 15;
                format(Mensaje, sizeof(Mensaje), "%s saca piezas de su mochila y crea una {00FF15}Escopeta",Jugador);
                NearMsg(playerid, -1, Mensaje, 10.0);
                GivePlayerWeapon(playerid, 25, 10002);
            }
            else if(!strcmp(armas, "pistola"))
            {
                //lo que sea
            }
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/crear [Arma]");
    return 1;
}
No sй si vi mal, quizбs me equivoco, їpero ahн solo funciona el comando /crear si tienes 30 piezas o mбs?, si quiero hacer una pistola que pide 15 no me dejarнa.
Si me equivoco discъlpame.
Reply
#9

Quote:
Originally Posted by xTexTx
Посмотреть сообщение
No sй si vi mal, quizбs me equivoco, їpero ahн solo funciona el comando /crear si tienes 30 piezas o mбs?, si quiero hacer una pistola que pide 15 no me dejarнa.
Si me equivoco discъlpame.
No, no te equivocas. Supuse que si ponia algo mal supieras corregirlo

De cualquier manera...

pawn Код:
YCMD:crear(playerid, params[], help)
{
    #pragma unused params
    #pragma unused help
    if(!sscanf(params, "s[128]", params[0]))
    {
        if(DatosPJ[playerid][pTrabajo] != 1) return SendClientMessage(playerid, Color_Amarillo, "ЎNo eres armero!");
        {
            new armas[128];
            if(!strcmp(armas, "escopeta") && DatosPJ[playerid][pPiezas] >= 30)//ahora vas aсadiendo cuantas piezas por arma especifica
            {
                new Mensaje[64], Jugador[MAX_PLAYER_NAME];
                GetPlayerName(playerid, Jugador, MAX_PLAYER_NAME);
                DatosPJ[playerid][pPiezas] -= 15;
                format(Mensaje, sizeof(Mensaje), "%s saca piezas de su mochila y crea una {00FF15}Escopeta",Jugador);
                NearMsg(playerid, -1, Mensaje, 10.0);
                GivePlayerWeapon(playerid, 25, 10002);
            }
          else SendClientMessage(playerid, Color_Amarillo, "ЎNo tienes suficientes piezas, necesitas 30!"); //si no tiene suficientes piezas
            if(!strcmp(armas, "pistola") && DatosPJ[playerid][pPiezas] >= 15)//ahora vas aсadiendo cuantas piezas por arma especifica
            {
                //lo que sea
            }
          else SendClientMessage(playerid, Color_Amarillo, "ЎNo tienes suficientes piezas, necesitas 15!"); //si no tiene suficientes piezas
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/crear [Arma]");
    return 1;
}
Sigue tu
Reply
#10

Muchas gracias.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)