Was, wenn es eine Zahl doppelt gibt und jemand mit einem Befahl das Fahrzeug Orten möchte?
Einfach checken ob es die Zahl bereits gibt und dann eine neue Random Zahl auswählen?
Zum Befehl:
ocmd:locatecar(playerid,params[])
{
new kennzeichen[8];
if(!IsPlayerCop(playerid)) return SendClientMessage(playerid, -1, "Du musst ein Cop sein um diesen Befehl zu verwenden.");
if(!IsPlayerInCopCar(playerid)) return SendClientMessage(playerid, -1, "Du musst dich in einem Polizeifahrzeug befinden.");
if(sscanf(params, "s[8]",kennzeichen)) return SendClientMessage(playerid, -1, "/locatecar [Kennzeichen]");
new car = FindCarByPlate(kennzeichen);
if(car == -1) return SendClientMessage(playerid, -1, "Es wurde kein Fahrzeug mit diesem Kennzeichen gefunden.");
new Float:x,Float:y,Float:z;
GetVehiclePos(car, x, y, z);
SetPlayerCheckpoint(playerid, x, y, z, 10.0);
SetTimerEx("DestroyLocateCarCP", 30000, false, "ii", playerid, car);
return 1;
}
forward DestroyLocateCarCP(playerid, car);
public DestroyLocateCarCP(playerid, car)
{
DisablePlayerCheckpoint(plaýerid);
new Float:x,Float:y,Float:z;
GetVehiclePos(car, x, y, z);
SetPlayerCheckpoint(playerid, x, y, z, 10.0);
return 1;
}
FindCarByPlate(kennzeichen[])
{
new vehicleid;
for(new i; i<GetPlayerPoolSize();i++)
{
if(!strcmp(PCar[i][d][P_KZ],kennzeichen, true)) //<--- Fahrzeugabfrage vom Kennzeichen des Autos vom Spieler i
{
return PCar[i][d][P_VID];
}
}
return -1;
}
Musst einige Sachen an deins noch weiter anpassen, da ich nix über dein Script weiß.