Код:
CMD:clearmods(playerid, params[])
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_RED, "You are not driving a vehicle!");
new vehicleid = GetPlayerVehicleID(playerid);
new id = GetVehicleID(vehicleid);
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "This is not your vehicle!");
for(new i=0; i < sizeof(VehicleMods[]); i++)
{
RemoveVehicleComponent(VehicleID[id], GetVehicleComponentInSlot(VehicleID[id], i));
VehicleMods[id][i] = 0;
}
VehiclePaintjob[id] = 255;
ChangeVehiclePaintjob(VehicleID[id], 255);
SaveVehicle(id);
SendClientMessage(playerid, COLOR_WHITE, "You have removed all modifications from your vehicle");
return 1;
}
CMD:trackcar(playerid, params[])
{
if(TrackCar[playerid])
{
TrackCar[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_WHITE, "You are not tracking your vehicle anymore");
return 1;
}
new playername[24];
GetPlayerName(playerid, playername, sizeof(playername));
new info[256], bool:found;
for(new i=1; i < MAX_DVEHICLES; i++)
{
if(VehicleCreated[i] == VEHICLE_PLAYER && strcmp(VehicleOwner[i], playername) == 0)
{
found = true;
format(info, sizeof(info), "%sID: %d Name: %s\n", info, i, VehicleNames[VehicleModel[i]-400]);
}
}
if(!found) return SendClientMessage(playerid, COLOR_RED, "You don't have any vehicles!");
ShowPlayerDialog(playerid, DIALOG_FINDVEHICLE, DIALOG_STYLE_LIST, "Find Your Vehicle", info, "Find", "Cancel");
return 1;
}
CMD:v(playerid, params[])
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_RED, "You are not driving a vehicle!");
new vehicleid = GetPlayerVehicleID(playerid);
if(IsBicycle(vehicleid)) return SendClientMessage(playerid, COLOR_RED, "You are not driving a vehicle!");
new id = GetVehicleID(vehicleid);
if(GetPlayerVehicleAccess(playerid, id) < 1)
return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
SetPVarInt(playerid, "DialogValue1", id);
ShowDialog(playerid, DIALOG_VEHICLE);
return 1;
}
CMD:sellv(playerid, params[])
{
new pid, id, price, msg[128];
if(sscanf(params, "udd", pid, id, price)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /sellv [player] [vehicleid] [price]");
if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "Invalid player!");
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "You are not the owner of this vehicle!");
if(price < 1) return SendClientMessage(playerid, COLOR_RED, "Invalid price!");
if(!PlayerToPlayer(playerid, pid, 10.0)) return SendClientMessage(playerid, COLOR_RED, "Player is too far!");
SetPVarInt(pid, "DialogValue1", playerid);
SetPVarInt(pid, "DialogValue2", id);
SetPVarInt(pid, "DialogValue3", price);
ShowDialog(pid, DIALOG_VEHICLE_SELL);
format(msg, sizeof(msg), "You have offered %s (%d) to buy your vehicle for $%d", PlayerName(pid), pid, price);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
CMD:givecarkeys(playerid, params[])
{
new pid, id, msg[128];
if(sscanf(params, "ud", pid, id)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /givecarkeys [player] [vehicleid]");
if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, COLOR_RED, "Invalid player!");
if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "Invalid vehicleid!");
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "You are not the owner of this vehicle!");
if(!PlayerToPlayer(playerid, pid, 10.0)) return SendClientMessage(playerid, COLOR_RED, "Player is too far!");
SetPVarInt(pid, "CarKeys", id);
format(msg, sizeof(msg), "You have given your car keys to %s (%d)", PlayerName(pid), pid);
SendClientMessage(playerid, COLOR_WHITE, msg);
format(msg, sizeof(msg), "%s (%d) has given you car keys", PlayerName(playerid), playerid);
SendClientMessage(pid, COLOR_WHITE, msg);
return 1;
}
CMD:vlock(playerid, params[])
{
new vehicleid;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
vehicleid = GetPlayerVehicleID(playerid);
}
else
{
vehicleid = GetClosestVehicle(playerid);
if(!PlayerToVehicle(playerid, vehicleid, 5.0)) vehicleid = 0;
}
if(!vehicleid) return SendClientMessage(playerid, COLOR_RED, "You are not close to a vehicle!");
new id = GetVehicleID(vehicleid);
if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(doors == 1)
{
doors = 0;
VehicleLock[id] = 0;
GameTextForPlayer(playerid, "~g~doors unlocked", 3000, 6);
}
else
{
doors = 1;
VehicleLock[id] = 1;
GameTextForPlayer(playerid, "~r~doors locked", 3000, 6);
}
SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SaveVehicle(id);
return 1;
}
CMD:valarm(playerid, params[])
{
new vehicleid;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
vehicleid = GetPlayerVehicleID(playerid);
}
else
{
vehicleid = GetClosestVehicle(playerid);
if(!PlayerToVehicle(playerid, vehicleid, 5.0)) vehicleid = 0;
}
if(!vehicleid) return SendClientMessage(playerid, COLOR_RED, "You are not close to a vehicle!");
new id = GetVehicleID(vehicleid);
if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
if(VehicleSecurity[vehicleid] == 0)
{
VehicleSecurity[vehicleid] = 1;
VehicleAlarm[id] = 1;
GameTextForPlayer(playerid, "~g~alarm on", 3000, 6);
}
else
{
ToggleAlarm(vehicleid, VEHICLE_PARAMS_OFF);
VehicleSecurity[vehicleid] = 0;
VehicleAlarm[id] = 0;
GameTextForPlayer(playerid, "~r~alarm off", 3000, 6);
}
SaveVehicle(id);
return 1;
}
CMD:trunk(playerid, params[])
{
new vehicleid = GetClosestVehicle(playerid);
if(!PlayerToVehicle(playerid, vehicleid, 5.0)) vehicleid = 0;
if(!vehicleid || IsBicycle(vehicleid) || IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, COLOR_RED, "You are not close to a vehicle!");
new id = GetVehicleID(vehicleid);
if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
if(GetPlayerVehicleAccess(playerid, id) < 2)
return SendClientMessage(playerid, COLOR_RED, "You don't have the keys for this vehicle!");
ToggleBoot(vehicleid, VEHICLE_PARAMS_ON);
SetPVarInt(playerid, "DialogValue1", id);
ShowDialog(playerid, DIALOG_TRUNK);
return 1;
}
CMD:fuel(playerid, params[])
{
for(new i=1; i < MAX_FUEL_STATIONS; i++)
{
if(FuelStationCreated[i])
{
if(IsPlayerInRangeOfPoint(playerid, 15.0, FuelStationPos[i][0], FuelStationPos[i][1], FuelStationPos[i][2]))
{
SetPVarInt(playerid, "FuelStation", i);
ShowDialog(playerid, DIALOG_FUEL);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_RED, "You are not in a fuel station!");
return 1;
}
CMD:rtc(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not in a vehicle!");
SetVehicleToRespawn(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_WHITE, "Vehicle respawned");
return 1;
}
CMD:rac(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
new bool:vehicleused[MAX_VEHICLES];
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vehicleused[GetPlayerVehicleID(i)] = true;
}
}
for(new i=1; i < MAX_VEHICLES; i++)
{
if(!vehicleused[i])
{
SetVehicleToRespawn(i);
}
}
new msg[128];
format(msg, sizeof(msg), "Admin %s (%d) has respawned all unused vehicles", PlayerName(playerid), playerid);
SendClientMessageToAll(COLOR_YELLOW, msg);
return 1;
}
CMD:setfuel(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You are not in a vehicle!");
new amount, msg[128];
if(sscanf(params, "d", amount)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /setfuel [amount]");
if(amount < 0 || amount > 100) return SendClientMessage(playerid, COLOR_RED, "Invalid amount! (0-100)");
Fuel[GetPlayerVehicleID(playerid)] = amount;
format(msg, sizeof(msg), "You have set your vehicle fuel to %d", amount);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
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;
VehicleLock[i] = 0;
VehicleAlarm[i] = 0;
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;
}
CMD:editv(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "You are not admin!");
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new id = GetVehicleID(GetPlayerVehicleID(playerid));
if(!IsValidVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "This is not a dynamic vehicle!");
SetPVarInt(playerid, "DialogValue1", id);
ShowDialog(playerid, DIALOG_EDITVEHICLE);
return 1;
}
new vehicleid;
if(sscanf(params, "d", vehicleid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /editv [vehicleid]");
if(!IsValidVehicle(vehicleid)) return SendClientMessage(playerid, COLOR_RED, "Invalid vehicleid!");
SetPVarInt(playerid, "DialogValue1", vehicleid);
ShowDialog(playerid, DIALOG_EDITVEHICLE);
return 1;
}
CMD:adddealership(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!");
for(new i=1; i < MAX_DEALERSHIPS; i++)
{
if(!DealershipCreated[i])
{
new msg[128];
DealershipCreated[i] = 1;
GetPlayerPos(playerid, DealershipPos[i][0], DealershipPos[i][1], DealershipPos[i][2]);
UpdateDealership(i, 0);
SaveDealership(i);
format(msg, sizeof(msg), "Added dealership id %d", i);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
}
SendClientMessage(playerid, COLOR_RED, "Can't add any more dealerships!");
return 1;
}
CMD: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;
}
CMD:movedealership(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: /movedealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");
GetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
UpdateDealership(dealerid, 1);
SaveDealership(dealerid);
format(msg, sizeof(msg), "Moved dealership id %d here", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
CMD:gotodealership(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: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
CMD:addfuelstation(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!");
for(new i=1; i < MAX_FUEL_STATIONS; i++)
{
if(!FuelStationCreated[i])
{
new msg[128];
FuelStationCreated[i] = 1;
GetPlayerPos(playerid, FuelStationPos[i][0], FuelStationPos[i][1], FuelStationPos[i][2]);
UpdateFuelStation(i, 0);
SaveFuelStation(i);
format(msg, sizeof(msg), "Added fuel station id %d", i);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
}
SendClientMessage(playerid, COLOR_RED, "Can't add any more fuel stations!");
return 1;
}
CMD: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;
}
CMD:movefuelstation(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: /movefuelstation [stationid]");
if(!IsValidFuelStation(stationid)) return SendClientMessage(playerid, COLOR_RED, "Invalid stationid!");
GetPlayerPos(playerid, FuelStationPos[stationid][0], FuelStationPos[stationid][1], FuelStationPos[stationid][2]);
UpdateFuelStation(stationid, 1);
SaveFuelStation(stationid);
format(msg, sizeof(msg), "Moved fuel station id %d here", stationid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
CMD:gotofuelstation(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: /gotofuelstation [stationid]");
if(!IsValidFuelStation(stationid)) return SendClientMessage(playerid, COLOR_RED, "Invalid stationid!");
SetPlayerPos(playerid, FuelStationPos[stationid][0], FuelStationPos[stationid][1], FuelStationPos[stationid][2]);
format(msg, sizeof(msg), "Teleported to fuel station id %d", stationid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
Don't know why you're referring to "Model" as a string..
It's an integer...
The following code would be your best bet...