Moin Moin,
Ich habe eine Maximale Anzahl von Fahrzeugen definiert, die gespawnt werden können. Wenn diese erreicht ist und ich ein Fahrzeug spawnen möchte, sollte eigentlich die Meldung "Maximale Anzahl erreicht" erscheinen. Das Problem ist nun, dass sobald alle möglichen Fahrzeuge gespawnt sind und ich ein weiteres spawnen möchte, die Meldung "SERVER: Unknown Command" erscheint. Gebe ich danach erneut den Befehl zu spawnen eines Fahrzeuges ein, erscheint die von mir gewünschte meldung.
Mit einem anderen Befehl, kann ich die gespawnten Fahrzeuge wieder löschen. Dies geht allerdings nur solange, bis die Meldung Unknown Command erscheint. Danach ist der Befehl zum löschen der Fahrzeuge wirkunsglos und ich bekomme hier ebenfalls die Meldung Unknown Command.
Ich finde leider das Problem in meinem Script nicht. Ich hoffe ihr könnt mir helfen.
Definitionen:
#define MAX_SPAWNED_CARS 5
new SpawnedCars = -1;
new scar[MAX_SPAWNED_CARS];
Befehl Fahrzeug spawnen:
dcmd_veh(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 4) return 1;
new car,c1,c2;
if(sscanf(params,"iii",car,c1,c2)) return SendClientMessage(playerid,C_LIME,"Verwendung: "E_WHITE"/veh [ModelID] [FarbID 1] [FarbID 2]");
if(car < 400 || car > 611) return SendClientMessage(playerid,C_RED,"Fehler: "E_WHITE"Die ModelID darf nicht kleiner als 400 oder größer als 611 sein!");
if(c1 < 0 || c1 > 255 || c2 < 0 || c2 > 255) return SendClientMessage(playerid,C_RED,"Fehler: "E_WHITE"Die FarbID darf nicht kleiner als 0 oder größer als 255 sein!");
if(SpawnedCars == MAX_SPAWNED_CARS) return SendClientMessage(playerid,C_RED,"Fehler: "E_WHITE"Maximale Anzahl an gespawnten Fahrzeugen erreicht!");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,C_RED," Fehler: "E_WHITE"Du sitzt bereits in einem Fahrzeug!");
else {
new Float:posx, Float:posy, Float:posz, Float: posa;
GetPlayerPos(playerid,posx,posy,posz);
GetPlayerFacingAngle(playerid,posa);
SpawnedCars++;
scar[SpawnedCars] = CreateVehicle(car,posx,posy,posz,posa,c1,c2,-1);
PutPlayerInVehicle(playerid,scar[SpawnedCars],0);
}
return 1;
}
Befehl Fahrzeug löschen:
dcmd_delcars(playerid, params[])
{
#pragma unused params
if(pInfo[playerid][pAdmin] < 4) return 1;
if(SpawnedCars == 0) return SendClientMessage(playerid,C_RED,"Fehler: "E_WHITE"Keine Fahrzeuge gespawned!");
else {
new currentcars = SpawnedCars;
for(new c = currentcars; c <= currentcars && c >= 0; c--) {
DestroyVehicle(scar[code=c]);
SpawnedCars--;
}
new cmsg[65],pname[24];
GetPlayerName(playerid,pname,24);
format(cmsg,65,"[AdmCmd] "E_WHITE"%s hat alle gespawnten Fahrzeuge gelöscht.",pname);
AdminMessage(3,cmsg);
}
return 1;
}