SA-MP Forums Archive
[ajuda] Converter comandos = +Rep - 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: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [ajuda] Converter comandos = +Rep (/showthread.php?tid=335062)



[ajuda] Converter comandos = +Rep - Felipe_Freeze - 17.04.2012

Passar comando de zcmd para : Strcmp

pawn Code:
CMD:addv(playerid, params[])
{
    if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
    if(!IsPlayerSpawned(playerid)) return SendClientMessage(playerid, COLOR_RED, "You can't use this command now!");
    new model[32], modelid, dealerid, color1, color2, price;
    if(sscanf(params, "dsddd", dealerid, model, color1, color2, price))
        return SendClientMessage(playerid, COLOR_GREY, "USAGE: /addv [dealerid] [model] [color1] [color2] [price]");
    if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");
    if(IsNumeric(model)) modelid = strval(model);
    else modelid = GetVehicleModelIDFromName(model);
    if(modelid < 400 || modelid > 611) return SendClientMessage(playerid, COLOR_RED, "Invalid model ID!");
    if(color1 < 0 || color2 < 0) return SendClientMessage(playerid, COLOR_RED, "Invalid color!");
    if(price < 0) return SendClientMessage(playerid, COLOR_RED, "Invalid price!");
    new Float:X, Float:Y, Float:Z, Float:angle;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, angle);
    X += floatmul(floatsin(-angle, degrees), 4.0);
    Y += floatmul(floatcos(-angle, degrees), 4.0);
    for(new i=1; i < MAX_DVEHICLES; i++)
    {
        if(!VehicleCreated[i])
        {
            new msg[128];
            VehicleCreated[i] = VEHICLE_DEALERSHIP;
            VehicleModel[i] = modelid;
            VehiclePos[i][0] = X;
            VehiclePos[i][1] = Y;
            VehiclePos[i][2] = Z;
            VehiclePos[i][3] = angle+90.0;
            VehicleColor[i][0] = color1;
            VehicleColor[i][1] = color2;
            VehicleInterior[i] = GetPlayerInterior(playerid);
            VehicleWorld[i] = GetPlayerVirtualWorld(playerid);
            VehicleValue[i] = price;
            valstr(VehicleOwner[i], dealerid);
            //VehicleNumberPlate[i] = DEFAULT_NUMBER_PLATE;
            for(new d=0; d < sizeof(VehicleTrunk[]); d++)
            {
                VehicleTrunk[i][d][0] = 0;
                VehicleTrunk[i][d][1] = 0;
            }
            for(new d=0; d < sizeof(VehicleMods[]); d++)
            {
                VehicleMods[i][d] = 0;
            }
            VehiclePaintjob[i] = 255;
            UpdateVehicle(i, 0);
            SaveVehicle(i);
            format(msg, sizeof(msg), "Carro adicionado (id %d) na conceissonaria %d", i, dealerid);
            SendClientMessage(playerid, COLOR_WHITE, msg);
            return 1;
        }
    }
    SendClientMessage(playerid, COLOR_RED, "Vocк nгo pode mais adicionar veiculos!");
    return 1;
}



Re: [ajuda] Converter comandos = +Rep - WLSF - 17.04.2012

pawn Code:
if(!strcmp(cmdtext, "/v", true))
{
    new info[512];
    strcat(info, "/manual", sizeof(info));
    ShowPlayerDialog(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Advanced Vehicle System Help", info, "OK", "");
    return 1;
}
й isso que vocк quer? Se for isso, aconselho a deixar em zcmd mesmo e comeзar a usar o mesmo, pois vai perceber a melhoria e facilidade para manusear os comandos com sscanf...


Re: [ajuda] Converter comandos = +Rep - Felipe_Freeze - 17.04.2012

Quote:
Originally Posted by Willian_Luigi
View Post
pawn Code:
if(!strcmp(cmdtext, "/v", true))
{
    new info[512];
    strcat(info, "/manual", sizeof(info));
    ShowPlayerDialog(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Advanced Vehicle System Help", info, "OK", "");
    return 1;
}
й isso que vocк quer? Se for isso, aconselho a deixar em zcmd mesmo e comeзar a usar o mesmo, pois vai perceber a melhoria e facilidade para manusear os comandos com sscanf...
Esse modo que vc fez o /v eu acho mais facil ...
o osso й q sу consegui converte alguns , tem varios que da erro por causa do params .


Re: [ajuda] Converter comandos = +Rep - WLSF - 17.04.2012

Acha mais fбcil ? Jб estudou e comparou parte a parte sscanf com strtok, zcmd seria apenas um complemento para melhorar o processamento do comando...


Re: [ajuda] Converter comandos = +Rep - Felipe_Freeze - 17.04.2012

Й que o Gm que eu peguei й todo assim ... , Jб venho editando ele a uns 3 meses ... ai aprendi assim e jб acustumei ... sу nao consegui converter esses comandos '-'


Re: [ajuda] Converter comandos = +Rep - Felipe_Freeze - 17.04.2012

UP ! Ajuda ae pf


Re: [ajuda] Converter comandos = +Rep - WLSF - 17.04.2012

Cara, faz um esforзo pra aprender outra forma de fazer comandos, creio que vocк nem saiba usar strtok tambйm... Realmente й mais complicado do que sscanf, tente mudar...

Vou te mandar o comando convertido pra sscanf / strcmp...
pawn Code:
if(!strcmp(cmdtext, "/addv", true))
{
    if(!IsAdmin(playerid, 1))
        return SendClientMessage(playerid, COLOR_RED, "You are not admin!");

    if(!IsPlayerSpawned(playerid))
        return SendClientMessage(playerid, COLOR_RED, "You can't use this command now!");

    new mod, deal, c1, c2, pr;
    if(sscanf(cmdtext, "ddddd", deal, mod, c1, c2, pr))
        return false;

    if(!IsValidDealership(dealerid))
        return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");

    if(modelid < 400 || modelid > 611)
        return SendClientMessage(playerid, COLOR_RED, "Invalid model ID!");
       
    if(color1 < 0 || color2 < 0)
        return SendClientMessage(playerid, COLOR_RED, "Invalid color!");

    if(price < 0)
        return SendClientMessage(playerid, COLOR_RED, "Invalid price!");

    new Float:X, Float:Y, Float:Z, Float:angle;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, angle);
    X += floatmul(floatsin(-angle, degrees), 4.0);
    Y += floatmul(floatcos(-angle, degrees), 4.0);

    for(new i=1; i < MAX_DVEHICLES; i++)
    {
        if(!VehicleCreated[i])
        {
            new msg[128];
            VehicleCreated[i] = VEHICLE_DEALERSHIP;
            VehicleModel[i] = modelid;
            VehiclePos[i][0] = X;
            VehiclePos[i][1] = Y;
            VehiclePos[i][2] = Z;
            VehiclePos[i][3] = angle+90.0;
            VehicleColor[i][0] = color1;
            VehicleColor[i][1] = color2;
            VehicleInterior[i] = GetPlayerInterior(playerid);
            VehicleWorld[i] = GetPlayerVirtualWorld(playerid);
            VehicleValue[i] = price;
            valstr(VehicleOwner[i], dealerid);
            //VehicleNumberPlate[i] = DEFAULT_NUMBER_PLATE;
            for(new d=0; d < sizeof(VehicleTrunk[]); d++)
            {
                VehicleTrunk[i][d][0] = 0;
                VehicleTrunk[i][d][1] = 0;
            }
            for(new d=0; d < sizeof(VehicleMods[]); d++)
            {
                VehicleMods[i][d] = 0;
            }
            VehiclePaintjob[i] = 255;
            UpdateVehicle(i, 0);
            SaveVehicle(i);
            format(msg, sizeof(msg), "Carro adicionado (id %d) na conceissonaria %d", i, dealerid);
            SendClientMessage(playerid, COLOR_WHITE, msg);
            return 1;
        }
    }
    SendClientMessage(playerid, COLOR_RED, "Vocк nгo pode mais adicionar veiculos!");
    return 1;
}