Ayuda con cmd en sscanf
#1

Buenas
Querнa pasar un cmd que es este:

pawn Код:
if(strcmp(cmd, "/v", true) == 0)
{
new tmp[256], tmp2[256], tmp3[256], IndexD; tmp = strtok(params,IndexD), tmp2 = strtok(params,IndexD); tmp3 = strtok(params,IndexD);
if(!strlen(tmp)) return SCM(playerid, -1, ""RO"* Uso: /v [nombre / id]");
new car;
if(!IsNumeric(tmp))
car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
if(car < 400 || car > 611) return SCM(playerid, 0xFF0000AA, ""RO"* ID o nombre del vehнculo invбlido!");
CarSpawner(playerid,car);
new string[120];
format(string, sizeof(string), "Has spawneado un %s (Modelo: %d)", VehicleNames[car-400], car);
SendClientMessage(playerid, -1, string);
return 1;
}
El comando consiste en que al poner /v y la id del vehiculo le cree el vehiculo determinado, pero si el jugador no sabe la id del vehiculo puede que sepa el nombre del vehiculo y use /v infernus, osea dos maneras de spawnear un vehiculo con el comando. Bueno lo paso a zcmd y sscanf pero solo se hacerlo para que el comando funcione de una sola manera, usando por la id, como asн: /v 411 que es la id del infernus, no me deja spawnear un vehiculo por el nombre, asн me quedo al pasar el comando:

pawn Код:
CMD:v(playerid, params[])
{
new id;
if(sscanf(params, "d", id)) return SCM(playerid, -1, ""RO"* Uso: /v [nombre / id]");

if(!IsNumeric(params))
id = GetVehicleModelIDFromName(params); else id = strval(params);

if(id < 400 || id > 611) return SCM(playerid, 0xFF0000AA, ""RO"* ID o nombre del vehнculo invбlido!");
CarSpawner(playerid, id);
new string[120];
format(string, sizeof(string), "Has spawneado un %s (Modelo: %d)", VehicleNames[id-400], id);
SCM(playerid, -1, string);
return 1;
}
Espero su ayuda, gracias de antemanos
Reply
#2

pawn Код:
CMD:v(playerid, params[])
{
    new id;
    if(sscanf(params, "d", id)) return SCM(playerid, -1, ""RO"* Uso: /v [nombre / id]");
    if(!IsNumeric(params))
    if(id < 400 || id > 611) return SCM(playerid, 0xFF0000AA, ""RO"* ID o nombre del vehнculo invбlido!");
    CarSpawner(playerid, id);
    new string[120];
    format(string, sizeof(string), "Has aparecido un coche/auto %s (Modelo: %d)", VehicleNames[id-400], id);
    SCM(playerid, -1, string);
    return 1;
}
GetVehicleModelIDFromName lo saquй, porque estabas haciendo mal al asignarle el valor GetVehicleModelIDFromName a "id"
Reply
#3

pawn Код:
CMD:v(playerid, params[])
        {
            new id;
            if(sscanf(params, "u", id)) return SCM(playerid, -1, ""RO"* Uso: /v [nombre/id]");

            if(!IsNumeric(id)){
            id = GetVehicleModelIDFromName(id);
            }
            else{
            id = strval(id);
            }
            if(id < 400 || id > 611) return SCM(playerid, 0xFF0000AA, ""RO"* ID o nombre del vehнculo invбlido!");
            CarSpawner(playerid, id);
            new string[120];
            format(string, sizeof(string), "Has spawneado un %s (Modelo: %d)", VehicleNames[id-400], id);
            SCM(playerid, -1, string);
            return 1;
        }
Asн? no probй ni nada pero no sй, creo que el parametro de "u" es para id o nombre de pj no sй si servirб para autos
Reply
#4

Gracias Zume-Zero me funcionу perfecto y el tuyo Malganys me pasaba lo mismo que al principio, gracias igual.
Reply
#5

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
pawn Код:
CMD:v(playerid, params[])
        {
            new id;
            if(sscanf(params, "u", id)) return SCM(playerid, -1, ""RO"* Uso: /v [nombre/id]");

            if(!IsNumeric(id)){
            id = GetVehicleModelIDFromName(id);
            }
            else{
            id = strval(id);
            }
            if(id < 400 || id > 611) return SCM(playerid, 0xFF0000AA, ""RO"* ID o nombre del vehнculo invбlido!");
            CarSpawner(playerid, id);
            new string[120];
            format(string, sizeof(string), "Has spawneado un %s (Modelo: %d)", VehicleNames[id-400], id);
            SCM(playerid, -1, string);
            return 1;
        }
Asн? no probй ni nada pero no sй, creo que el parametro de "u" es para id o nombre de pj no sй si servirб para autos
tiene que ser con el parametro "d" o "i" que es para integers.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)