need help with sscanf(params
#1

pawn Код:
CMD:aveh(playerid, params[])
{
    new Float:X, Float:Y, Float:Z, Float:Angle,veh[50],string[256],color1,color2;
    if(pInfo[playerid][Adminlevel] < 1) return SCM(playerid, COLOR_ERROR, ""ERROR_MESSAGE"");
    if(!pInfo[playerid][LoggedInAsAdmin]) return SCM(playerid,COLOR_ERROR,""ERROR_MESSAGE"");
    if(sscanf(params,"s[50]",veh)) return SCM(playerid, COLOR_ERROR, "USAGE: /aveh (Vehicle Name) (Color) (Color)");
    new vehicle = GetVehicleModelIDFromName(veh);
    if(vehicle < 400 || vehicle > 611) return SCM(playerid, COLOR_ERROR, ">> Invalid Vehicle Name.");
    if(IsPlayerInAnyVehicle(playerid)) return  SCM(playerid,COLOR_ERROR,">> You Are Already In A Vehicle.");
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
    format(string, sizeof(string), ">> You have spawned a %s. ID: %i. with color %d - %d ", VehicleNames[vehicle - 400], vehicle,color1,color2);
    SCM(playerid, COLOR_SKYBLUE, string);
    if(!sscanf(params,"s[50]dd",veh,color1,color2))
    {
        cVeh = CreateVehicle(vehicle, X+5, Y, Z, Angle, color1, color2, 1200);
    }
    if(!sscanf(params,"s",veh))
    {
        cVeh = CreateVehicle(vehicle, X+5, Y, Z, Angle, 0, 0, 1200);
    }
    PutPlayerInVehicle(playerid,cVeh,0);
    LinkVehicleToInterior(cVeh, GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(cVeh, GetPlayerVirtualWorld(playerid));
    return 1;
}
CMD:veh(playerid, params[])
{
    new Vehicle[50], color1, color2,string[128], angle,Float:X, Float:Y, Float:Z,PVeh;
    if(pInfo[playerid][Adminlevel] < 1) return SCM(playerid, COLOR_ERROR, ""ERROR_MESSAGE"");
    if(!pInfo[playerid][LoggedInAsAdmin]) return SCM(playerid,COLOR_ERROR,""ERROR_MESSAGE"");
    if(sscanf(params, "s[50]", Vehicle, color1, color2)) return SCM(playerid, COLOR_ERROR, "USAGE: /veh (Vehicle Name) (color) (color)");
    new veh = GetVehicleModelIDFromName(Vehicle);
    if(veh < 400 || veh > 611) return SCM(playerid, COLOR_ERROR, "Invalid Vehicle ID / Name.");
    GetPlayerPos(playerid, X, Y, Z);
    if(!sscanf(params,"s[50]dd",veh,color1,color2))
    {
        PVeh = CreateVehicle(veh, X+3, Y, Z, angle, color1, color2, -1);
    }
    if(!sscanf(params,"s",veh))
    {
        PVeh = CreateVehicle(veh, X+3, Y, Z, angle, -1, -1, -1);
    }
    LinkVehicleToInterior(PVeh, GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(PVeh, GetPlayerVirtualWorld(playerid));
    format(string, sizeof(string), ">> You have spawned a %s. ID: %i with color %d - %d", VehicleNames[veh - 400], veh,color1,color2);
    SCM(playerid, COLOR_SKYBLUE, string);
    ChangeVehicleColor(PVeh, color1, color2);
    return 1;
}
these command won't work fine
if i use /aveh bullet 0 1
it says invalid vehicle name
if i use /veh bullet
it returns ERROR_MESSAGE
if i use /veh bullet 0 1
it says invalid vehicle name or id
Reply
#2

Some quick code optimisations;

pawn Код:
SCM(playerid, COLOR_ERROR, ""ERROR_MESSAGE"");
// Do this instead
SCM(playerid, COLOR_ERROR, ERROR_MESSAGE);
Here's some code from an old script I had, this worked just fine, so edit it and remove what you don't need:

pawn Код:
command(veh, playerid, params[])
    {
        if(Player[playerid][AdminLevel] >= 1 || TempAdmin[playerid][tAdminLevel] >= 1)
        {
            new Vehicle[50];
            if(!sscanf(params, "s[50]", Vehicle))
            {
                new string[128], Float:Pos[4];
                GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
                GetPlayerFacingAngle(playerid, Pos[3]);
                new veh = GetVehicleModelID(Vehicle);
                if(veh < 400 || veh > 611) return SendClientMessage(playerid, GREY, "That wasn't a valid vehicle name.");
                if(!IsPlayerInAnyVehicle(playerid))
                {
                    new vehicleid = CreateVehicle(veh, Pos[0], Pos[1], Pos[2], Pos[3], -1, -1, -1);
                    BombTimer[vehicleid] = SetTimerEx("VehBombCar", 100, 1, "i", vehicleid);
                    GPSTimer[vehicleid] = SetTimerEx("VehGPSTimer", 100, 1, "i", vehicleid);
                    PutPlayerInVehicle(playerid, vehicleid, 0);
                    Engine[vehicleid] = 0;
                    Lights[vehicleid] = 0;
                    OwnedCar(vehicleid) = 0;
                    Bonnet[vehicleid] = 0;
                    Trunk[vehicleid] = 0;
                    format(string, sizeof(string), "AdmCmd: %s has just spawned a %s (VID: %d)", RemoveUnderScore(playerid), GetVehicleName(GetPlayerVehicleID(playerid)), GetPlayerVehicleID(playerid));
                    SendToAdmins(RED, string);

                    if(IsDiesel(vehicleid))
                    {
                        VehiclePetrol[vehicleid] = 0;
                        VehicleDiesel[vehicleid] = 100;
                    }
                    else
                    {
                        VehiclePetrol[vehicleid] = 100;
                        VehicleDiesel[vehicleid] = 0;
                    }
                    FuelBroke[vehicleid] = 0;
                    EngineBroke[vehicleid] = 0;
                }
                else return SendClientMessage(playerid, GREY, "You mustn't be in a vehicle to use this command.");
            }
            else return SendClientMessage(playerid, GREY, "Usage: /veh [vehiclename]");
        }
        else return SendClientMessage(playerid, GREY, AdminOnly);
        return 1;
    }
Reply
#3

Quote:
Originally Posted by sammp
Посмотреть сообщение
Some quick code optimisations;

pawn Код:
SCM(playerid, COLOR_ERROR, ""ERROR_MESSAGE"");
// Do this instead
SCM(playerid, COLOR_ERROR, ERROR_MESSAGE);
i know this was old edit i was gonna make it later using ctrl+h and btw can't u tell me problem in this script i need help here not full code
Reply
#4

error codes?
Reply
#5

Quote:
Originally Posted by TheKillZone
Посмотреть сообщение
error codes?
just read what i said no compiling errors
Reply
#6

pawn Код:
CMD:aveh(playerid, params[])
{
    new Float:X, Float:Y, Float:Z, Float:Angle,veh[50],string[256],color1,color2,vehicle;
    if(pInfo[playerid][Adminlevel] < 1) return SCM(playerid, COLOR_ERROR, ""ERROR_MESSAGE"");
    if(!pInfo[playerid][LoggedInAsAdmin]) return SCM(playerid,COLOR_ERROR,""ERROR_MESSAGE"");
    if(sscanf(params,"s[50]",veh)) return SCM(playerid, COLOR_ERROR, "USAGE: /aveh (Vehicle Name) (Color) (Color)");
    if(IsPlayerInAnyVehicle(playerid)) return  SCM(playerid,COLOR_ERROR,">> You Are Already In A Vehicle.");
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
    if(!sscanf(params,"s[50]dd",veh,color1,color2))
    {
        vehicle = GetVehicleModelIDFromName(veh);
        if(vehicle < 400 || vehicle > 611) return SCM(playerid, COLOR_ERROR, ">> Invalid Vehicle Name.");
        cVeh = CreateVehicle(vehicle, X+5, Y, Z, Angle, color1, color2, 1200);
    }
    if(!sscanf(params,"s[50]d",veh,color1))
    {
        color2 = color1;
        vehicle = GetVehicleModelIDFromName(veh);
        if(vehicle < 400 || vehicle > 611) return SCM(playerid, COLOR_ERROR, ">> Invalid Vehicle Name.");
        cVeh = CreateVehicle(vehicle, X+5, Y, Z, Angle, color1, color2, 1200);
    }
    if(!sscanf(params,"s",veh))
    {
        color1 = 0;
        color2 =0;
        vehicle = GetVehicleModelIDFromName(veh);
        if(vehicle < 400 || vehicle > 611) return SCM(playerid, COLOR_ERROR, ">> Invalid Vehicle Name.");
        cVeh = CreateVehicle(vehicle, X+5, Y, Z, Angle, 0, 0, 1200);
    }
    format(string, sizeof(string), ">> You have spawned a %s. ID: %i. with color %d - %d ", VehicleNames[vehicle - 400], vehicle,color1,color2);
    SCM(playerid, COLOR_SKYBLUE, string);
    PutPlayerInVehicle(playerid,cVeh,0);
    LinkVehicleToInterior(cVeh, GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(cVeh, GetPlayerVirtualWorld(playerid));
    return 1;
}
vehicle is spawned but sends me this Invalid Vehicle Name.
Reply
#7

A new one :
pawn Код:
CMD:veh(playerid,params[]) {
    if(pInfo[playerid][Adminlevel] < 1) {
        new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
        if(isnull(tmp)) return SendClientMessage(playerid, red, "Karbord: /car [Modelid/Name] [colour1] [colour2]");
        new car, colour1, colour2, string[128];
        if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
        if(car < 400 || car > 611) return  SendClientMessage(playerid, red, "KHATA: Invalid Vehicle Model");
        if(isnull(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
        if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
        if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
        new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1;   GetPlayerPos(playerid, X,Y,Z);  GetPlayerFacingAngle(playerid,Angle);   int1 = GetPlayerInterior(playerid);
        LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1); PutPlayerInVehicle(playerid, LVehicleID, 0);
        PlayerInfo[playerid][pCar] = LVehicleID;
        CMDMessageToAdmins(playerid,"CAR");
        format(string, sizeof(string), "%s spawned a \"%s\" (Model:%d) colour (%d, %d), at %0.2f, %0.2f, %0.2f", pName(playerid), VehicleNames[car-400], car, colour1, colour2, X, Y, Z);
        SaveToFile("CarSpawns",string);
        format(string, sizeof(string), "Shoma Yek \"%s\" (Model:%d) Ba Range (%d, %d) Be Vojood Avordid", VehicleNames[car-400], car, colour1, colour2);
        return SendClientMessage(playerid,lightblue, string);
    } else return SendClientMessage(playerid,red,ERROR_MESSAGE);
}
Reply
#8

Quote:
Originally Posted by MehranGta
Посмотреть сообщение
A new one :
pawn Код:
CMD:veh(playerid,params[]) {
    if(pInfo[playerid][Adminlevel] < 1) {
        new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
        if(isnull(tmp)) return SendClientMessage(playerid, red, "Karbord: /car [Modelid/Name] [colour1] [colour2]");
        new car, colour1, colour2, string[128];
        if(!IsNumeric(tmp)) car = GetVehicleModelIDFromName(tmp); else car = strval(tmp);
        if(car < 400 || car > 611) return  SendClientMessage(playerid, red, "KHATA: Invalid Vehicle Model");
        if(isnull(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
        if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
        if(PlayerInfo[playerid][pCar] != -1 && !IsPlayerAdmin(playerid) ) CarDeleter(PlayerInfo[playerid][pCar]);
        new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1;   GetPlayerPos(playerid, X,Y,Z);  GetPlayerFacingAngle(playerid,Angle);   int1 = GetPlayerInterior(playerid);
        LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1); LinkVehicleToInterior(LVehicleID,int1); PutPlayerInVehicle(playerid, LVehicleID, 0);
        PlayerInfo[playerid][pCar] = LVehicleID;
        CMDMessageToAdmins(playerid,"CAR");
        format(string, sizeof(string), "%s spawned a \"%s\" (Model:%d) colour (%d, %d), at %0.2f, %0.2f, %0.2f", pName(playerid), VehicleNames[car-400], car, colour1, colour2, X, Y, Z);
        SaveToFile("CarSpawns",string);
        format(string, sizeof(string), "Shoma Yek \"%s\" (Model:%d) Ba Range (%d, %d) Be Vojood Avordid", VehicleNames[car-400], car, colour1, colour2);
        return SendClientMessage(playerid,lightblue, string);
    } else return SendClientMessage(playerid,red,ERROR_MESSAGE);
}
thanks for the help i got it using sscanf + rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)