24.01.2014, 06:58
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;
}
