Hier mach es folgendermaßen
Ich hab das gane noch etwas abgeändert ich schreibe gleich was
new Inhaber[MAX_PLAYERS];
ocmd:veh(playerid,params[])
{
if(!isPlayerAFK(playerid))
{
if(isPlayerAnAdmin(playerid,2))
{
if(GetPVarInt(playerid,"Admincar") == 0)
{
new carid,c1,c2;
if(sscanf(params,"iii",carid,c1,c2))return SCM(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug-ID] [Farbe 1] [Farbe 2]");
{
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
Inhaber[playerid] = CreateVehicle(carid,Pos[0]+3,Pos[1],Pos[2],0,c1,c2,-1);
SetPVarInt(playerid,"Admincar",1);
Echo COLOR_LIGHTGREEN,"Du hast dir ein Adminfahrzeug erstellt. Dieses kannst du mit /dveh löschen!");
return 1;
}
}
}
}
else
{
SCM(playerid,AFK,"Du bist Abwesend gemeldet. Mit dem Befehl /back kannst du dich wieder Anwesend melden!");
}
return 1;
}
ocmd:dveh(playerid,params[])
{
if(!isPlayerAFK(playerid))
{
if(isPlayerAnAdmin(playerid,2))
{
if(GetPVarInt(playerid,"Admincar") == 1)
{
DestroyVehicle(Inhaber[playerid]);
SetPVarInt(playerid,"Admincar",0);
Echo COLOR_LIGHTGREEN,"Du hast dein Adminfahrzeug gelöscht!");
return 1;
}
}
}
else
{
SCM(playerid,AFK,"Du bist Abwesend gemeldet. Mit dem Befehl /back kannst du dich wieder Anwesend melden!");
}
return 1;
}
1. Du kannst kein AddStaticVehicle benutzen, weil man während der Serverlaufzeit Fahrzeuge nur durch CreateVehicle erstellen kann
2. Ich hab dein Float:X, Float:Y, Float:Z zu Float: Pos[3] also ein eindimensionaler Array das ist etwas ressourcenschonender
3. das wichtigste Ich hab deine Inhaber Variable in eine "Max_Player" Variable geändert und für den der den Befehl sendet wird ein Auto erstellt und wenn man /dveh eingibt wird "mein" Fahrzeug wieder gelöscht dadurch fällt diese unnötige for-Schleife durch alle Vehicles weg das wären nämlich wenn man es nicht umdefiniert 2000!
4. Du musst das Fahrzeug beim Disconnecten aber auch noch löschen also DestroyVehicle(Inhaber[playerid]); und die Variable beim connecten auf -1 setzen also Inhaber[playerid] = -1;