Hallo,
ich habe mir ( mal wieder ) gestern Abend ein kleines Fahrzeug System geschrieben, welches in Privat & Polizei Fahrzeuge "geteilt" ist.
So und beim Polizei System hängt es, im System ist es so, dass man um einen Polizei Fahrzeug betreten zu dürfen muss man eine bestimmte Anzahl an sogenannten Polizei-EXP haben.
Alles schön und gut, die Fahrzeuge spawnen / laden so wie es soll.
Aber sobald man in ein Fahrzeug einsteigt beginnt irgendwie die ID Verschiebung, dazu habe ich euch zwei Bilder gemacht.
1. Bild - Hier sieht man mit welchen EXP Werten das Fahrzeug aus der DB geladen wird, wobei Objekt die DL ID ist.
2. Bild - Hier sieht man einen print wenn der Spieler in ein Fahrzeug einsteigt, es handelt sich um Fahrzeug Objekt 5 ( siehe Bild 1 ), aber im print steht dort Objekt 1.
Durch diese Verschiebung sind alle EXP Werten verschoben und Fahrzeuge welche 0 EXP haben, haben nun z.B EXP 75 oder 100.
Meiner Meinung nach müsste das Problem bei OnPlayerEnterVehicle liegen.
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for(new i=0; i < MAX_VEHICLES; i++) {
if(VehicleInfo[i][v_Objekt] == vehicleid)
{
if(VehicleInfo[i][v_Police] == true && PlayerInfo[playerid][p_Team] != 2 || PlayerInfo[playerid][p_PoliceEXP] < VehicleInfo[vehicleid][v_EXP]) {
printf("EXP: %d / Objekt: %d", VehicleInfo[vehicleid][v_EXP], i);
TogglePlayerControllable(playerid, false);
TogglePlayerControllable(playerid, true);
new str[145]; format(str, sizeof(str), "Du bist kein Polizist oder dir fehlen Polizei-EXP (%d/%d", PlayerInfo[playerid][p_PoliceEXP], VehicleInfo[vehicleid][v_EXP]);
ShowInfoBox(playerid, str, 3500);
}
break;
}
}
return 1;
}