Hast du denn überhaupt auch so viele Fahrzeuge? Würde behaupten cInfo hat eine Größe von 200 und die restlichen Einträge sind einfach nicht geladen. Du kannst dir sonst einfach per
if(!cInfo[id][model]) continue;
die restlichen Abfragen ersparen (bei deinem Code vor 7).
Aus dem Code geht die Vermutung zurück, dass die FahrzeugID in der Variable nicht mit der übereinstimmt, in welcher du sitzt. Ist es denn überhaupt richtig, dass du derzeit nur ein Fahrzeug auf dem Server hast?
Um die Vermutung zu bestätigen einfach mal:
ocmd:motore(playerid,params[])
{
new Vehicle = GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective;
printf("Ausgeführt");
for(new id = 0; id < sizeof(cInfo); id++)
{
printf("id: %d, Besitzer: %d, p_id: %d, fraktion: %d, member: %d", id, cInfo[id][besitzer], PlayerInfo[playerid][p_id], cInfo[id][fraktion], PlayerInfo[playerid][pMember]);
if((cInfo[id][besitzer] == PlayerInfo[playerid][p_id] || cInfo[id][fraktion] == PlayerInfo[playerid][pMember]))
{
printf("Vehicle = %d, cInfo[%d][id_x] = %d", Vehicle, id, cInfo[id][id_x]);
if(cInfo[id][id_x] != Vehicle) continue;
printf("Fahrzeug gefunden und Spieler hat die nötige Berechtigung, Fahrzeug zu starten.");
GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON)
{
printf("Motor wird gestartet..");
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
return 1;
}
else
{
printf("Motor wird gestoppt..");
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
return 1;
}
}
}
return 1;
}
Alles anzeigen
Kann es sein, dass du eventuell irgendwo das Fahrzeug löscht und neuerstellst und vergisst, die ID zu übernehmen?