if(strcmp(cmdtext, "/addv", true) == 0)
{
new params[128];
if(!IsAdmin(playerid, 1)) 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), "Added vehicle id %d to dealerid %d", i, dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
}
SendClientMessage(playerid, COLOR_RED, "Can't add any more vehicles!");
return 1;
}
You should convert that to ZCMD or YCMD, and then it will work better.
|
new params[128];
if(strcmp(cmdtext, "/addv", true, 5) == 0)
{
//code
new model[32], modelid, dealerid, color1, color2, price;
if(sscanf(cmdtext[6], "ds[32]ddd", dealerid, model, color1, color2, price))
Hi, that hasnt answered my question, i didnt ask whats the best format to use. I asked how can i get the params to work. I cannot use ZCMD or YCMD because i use strcmp and dcmd together - using ZCMD just bugs the script.
|
if(color1 < 0 || color2 < 0) return SendClientMessage(playerid, COLOR_RED, "Invalid color!");
if(color1 > 121 || color2 > 121) return SendClientMessage(playerid, COLOR_RED, "Invalid color!");
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(addv, 4, cmdtext);
return 0;
}
dcmd_addv(playerid, params[])
{
if(!IsAdmin(playerid, 1)) 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), "Added vehicle id %d to dealerid %d", i, dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
}
SendClientMessage(playerid, COLOR_RED, "Can't add any more vehicles!");
return 1;
}
zcmd and dcmd is almost the same,just zcmd save's alot of work.
and i suggest you not to use few cmd proccecors in the same script. and this: pawn Код:
so add: pawn Код:
|
Actually, that's not the limit but, the colors after 126 (some of them) appear black
https://sampwiki.blast.hk/wiki/Color_ID |
zcmd and dcmd is almost the same,just zcmd save's alot of work.
and i suggest you not to use few cmd proccecors in the same script. and this: pawn Код:
so add: pawn Код:
pawn Код:
|
dcmd_deletedealership(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
new dealerid, msg[128];
if(sscanf(params, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /deletedealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");
for(new i=1; i < MAX_DVEHICLES; i++)
{
if(VehicleCreated[i] == VEHICLE_DEALERSHIP && strval(VehicleOwner[i]) == dealerid)
{
DestroyVehicle(VehicleID[i]);
Delete3DTextLabel(VehicleLabel[i]);
VehicleCreated[i] = 0;
}
}
DealershipCreated[dealerid] = 0;
Delete3DTextLabel(DealershipLabel[dealerid]);
SaveDealership(dealerid);
format(msg, sizeof(msg), "Deleted dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
dcmd_deletefuelstation(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
new stationid, msg[128];
if(sscanf(params, "d", stationid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /deletefuelstation [stationid]");
if(!IsValidFuelStation(stationid)) return SendClientMessage(playerid, COLOR_RED, "Invalid stationid!");
FuelStationCreated[stationid] = 0;
Delete3DTextLabel(FuelStationLabel[stationid]);
SaveFuelStation(stationid);
format(msg, sizeof(msg), "Deleted fuel station id %d", stationid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}