Need help with remake cmds.. from cmdtext to ycmd and sscanf..
#2

pawn Код:
YCMD:setplate(playerid,params[],help)
{
    if(PlayerInfo[playerid][pVehicle1] == 0 && PlayerInfo[playerid][pVehicle2] == 0 && PlayerInfo[playerid][pVehicle3] == 0)
    {
        SendClientMessage(playerid, COLOR_WHITE, "You do not own any vehicles to change the plate to.");
        return 1;
    }
    if(GetPlayerMoney(playerid) < 1000)
    {
        SendClientMessage(playerid, COLOR_WHITE, "You need at least $5,000 to change your vehicle plate.");
        return 1;
    }
    /*
    new x_nr[256];
    x_nr = strtok(cmdtext, idx);
    */

    //  First, get rid of strtok, we don't need it anymore
    //  Let's create variables for nr and carplate
    new
        x_nr,
        carplate[32];
       
    //  'params' is text which is after command (for example: /setplate 1 blahblah. '1 blahblah' is stored into 'params'.
    if(sscanf(params, "ds[32]", x_nr, carplate))
    {
        SendClientMessage(playerid, COLOR_GREY, "Syntax: {FFFFFF}/setplate [1-2-3] [carplate]");
        return 1;
    }
    if(x_nr == 1)
    {
        if(PlayerInfo[playerid][pVehicle1] != 0)
        {
            new vehid;
            if(GetPlayerVehicleID(playerid) == personalcar1[playerid])
            {
                vehid = personalcar1[playerid];
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "You need to be sat inside your vehicle.");
                return 1;
            }
            if(IsPlayerInVehicle(playerid, vehid))
            {
            //  We don't need to check this anymore, because sscanf function did it before
            //if(!cmdtext[idx]) { SendClientMessage(playerid, COLOR_GREY, "Syntax: {FFFFFF}/setplate 1 [carplate]"); }
            new Float:XX,Float:YY,Float:ZZ,Float:AA;
            new Float:CarHP, Float:OldCarHP;
            new panels,tires;
            GetVehicleHealth(vehid, CarHP);
            GetVehicleDamageStatus(vehid,panels,doors,lights,tires);
            OldCarHP = CarHP;
            //  Change cmdtext[idx], into 'carplate'
            format(PlayerInfo[playerid][pVehicle1Plate], 32 ,"%s",/*cmdtext[idx]*/carplate);
            SetVehicleNumberPlate(vehid,PlayerInfo[playerid][pVehicle1Plate]);
            GetVehiclePos(vehid,XX,YY,ZZ);
            GetVehicleZAngle(vehid, AA);
            SetVehicleToRespawn(vehid);
            SetVehiclePos(vehid,XX,YY,ZZ);
            SetVehicleZAngle(vehid, AA);
            PutPlayerInVehicle(playerid,vehid,0);
            SetVehicleHealth(vehid, OldCarHP);
            UpdateVehicleDamageStatus(vehid,panels,doors,lights,tires);
            format(string, sizeof(string), "You have set your first vehicle's plate to %s, it costed $5,000", PlayerInfo[playerid][pVehicle1Plate]);
            SendClientMessage(playerid, COLOR_WHITE, string);
            GivePlayerMoney(playerid, -5000);
            ChangeVehicleColor(vehid, PlayerInfo[playerid][pVehicle1Color1], PlayerInfo[playerid][pVehicle1Color2]);
            OnPlayerUpdateEx(playerid);
            }
            else
            {
            format(string, sizeof(string), "You are not in your first vehicle."); SendClientMessage(playerid, COLOR_WHITE, string);
            return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_WHITE, "You don't have a vehicle on slot 1.");
            return 1;
        }
    }
    else if(strcmp(x_nr,"2",true) == 0)
    {
        if(PlayerInfo[playerid][pVehicle2] != 0)
        {
        new vehid;
            if(GetPlayerVehicleID(playerid) == personalcar2[playerid]) { vehid = personalcar2[playerid]; }
            else { SendClientMessage(playerid, COLOR_WHITE, "You need to be sat inside your vehicle."); return 1; }
            if(IsPlayerInVehicle(playerid, vehid))
            {
                if(!cmdtext[idx]) { SendClientMessage(playerid, COLOR_GREY, "Syntax: {FFFFFF}/setplate 2 [carplate]"); }
                new Float:XX,Float:YY,Float:ZZ,Float:AA;
                new Float:CarHP, Float:OldCarHP;
                new panels,tires;
                GetVehicleHealth(vehid, CarHP);
                GetVehicleDamageStatus(vehid,panels,doors,lights,tires);
                OldCarHP = CarHP;
                format(PlayerInfo[playerid][pVehicle2Plate], 32 ,"%s",cmdtext[idx]);
                SetVehicleNumberPlate(vehid,PlayerInfo[playerid][pVehicle2Plate]);
                GetVehiclePos(vehid,XX,YY,ZZ);
                GetVehicleZAngle(vehid, AA);
                SetVehicleToRespawn(vehid);
                SetVehiclePos(vehid,XX,YY,ZZ);
                SetVehicleZAngle(vehid, AA);
                PutPlayerInVehicle(playerid,vehid,0);
                SetVehicleHealth(vehid, OldCarHP);
                UpdateVehicleDamageStatus(vehid,panels,doors,lights,tires);
                format(string, sizeof(string), "You have set your second vehicle's plate to %s, it costed $5,000", PlayerInfo[playerid][pVehicle2Plate]);
                SendClientMessage(playerid, COLOR_WHITE, string);
                GivePlayerMoney(playerid, -5000);
                ChangeVehicleColor(vehid, PlayerInfo[playerid][pVehicle2Color1], PlayerInfo[playerid][pVehicle2Color2]);
                OnPlayerUpdateEx(playerid);
            }
            else
            {
                format(string, sizeof(string), "You are not in your second vehicle."); SendClientMessage(playerid, COLOR_WHITE, string);
                return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_WHITE, "You don't have a vehicle on slot 2.");
            return 1;
        }
    }
    else if(strcmp(x_nr,"3",true) == 0)
    {
        if(PlayerInfo[playerid][pVehicle3] != 0)
        {
            new vehid;
            if(GetPlayerVehicleID(playerid) == personalcar3[playerid]) { vehid = personalcar3[playerid]; }
            else { SendClientMessage(playerid, COLOR_WHITE, "You need to be sat inside your vehicle."); return 1; }
            if(IsPlayerInVehicle(playerid, vehid))
            {
                if(!cmdtext[idx]) { SendClientMessage(playerid, COLOR_GREY, "Syntax: {FFFFFF}/setplate 3 [carplate]"); }
                new Float:XX,Float:YY,Float:ZZ,Float:AA;
                new Float:CarHP, Float:OldCarHP;
                new panels,tires;
                GetVehicleHealth(vehid, CarHP);
                GetVehicleDamageStatus(vehid,panels,doors,lights,tires);
                OldCarHP = CarHP;
                format(PlayerInfo[playerid][pVehicle3Plate], 32 ,"%s",cmdtext[idx]);
                SetVehicleNumberPlate(vehid,PlayerInfo[playerid][pVehicle3Plate]);
                GetVehiclePos(vehid,XX,YY,ZZ);
                GetVehicleZAngle(vehid, AA);
                SetVehicleToRespawn(vehid);
                SetVehiclePos(vehid,XX,YY,ZZ);
                SetVehicleZAngle(vehid, AA);
                PutPlayerInVehicle(playerid,vehid,0);
                SetVehicleHealth(vehid, OldCarHP);
                UpdateVehicleDamageStatus(vehid,panels,doors,lights,tires);
                format(string, sizeof(string), "You have set your third vehicle's plate to %s, it costed $5,000", PlayerInfo[playerid][pVehicle3Plate]);
                SendClientMessage(playerid, COLOR_WHITE, string);
                GivePlayerMoney(playerid, -5000);
                ChangeVehicleColor(vehid, PlayerInfo[playerid][pVehicle3Color1], PlayerInfo[playerid][pVehicle3Color2]);
                OnPlayerUpdateEx(playerid);
            }
            else
            {
                format(string, sizeof(string), "You are not in your third vehicle.");
                SendClientMessage(playerid, COLOR_WHITE, string);
                return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_WHITE, "You don't have a vehicle on slot 3.");
            return 1;
        }
    }
    return 1;
}
I gave you example, try to do the rest
Reply


Messages In This Thread
Need help with remake cmds.. from cmdtext to ycmd and sscanf.. - by Scrillex - 24.01.2014, 02:10
Re: Need help with remake cmds.. from cmdtext to ycmd and sscanf.. - by Scottas - 24.01.2014, 06:58
Re: Need help with remake cmds.. from cmdtext to ycmd and sscanf.. - by Scrillex - 24.01.2014, 07:08

Forum Jump:


Users browsing this thread: 1 Guest(s)