Guten Nachmittag Breadfisher,
folgender Code soll jedes Auto mit einem 3D Text versehen.
Alle Autos werden im Stock getVehForSale erstellt, welcher die ID zurückgibt.
Allen Autos wird das Nummernschild gesetzt. Jedoch nur das letzte Autos erhält auch den 3D Text. Eigentlich sollen aber alle Autos einen 3D Text erhalten. Deshalb wird auch für jedes Autos in einem Array die 3D Text ID gespeichert (autoverkauf3d).
Warum erhält aber nur das letzte Auto den 3DText ?
maxplatz ist übrigens auch der maximale Index für die beiden Arrays autoverkauf und autoverkauf3d.
for(new i = 0;i<maxplatz;i++)
{
autoverkauf[i] = getVehForSale(autoverkaufplatz[i][iverkauf],autoverkaufplatz[i][ix],autoverkaufplatz[i][iy],autoverkaufplatz[i][iz],autoverkaufplatz[i][iangle]);
SetVehicleNumberPlate(autoverkauf[i], "VERKAUF");
SetVehicleToRespawn(autoverkauf[i]);
new string[96];
format(string,96,"Name: %s\nTankvolumen: %dLiter\nVerbrauch: %dLiter/100Km\nBatterie: %d Volt",pAuto[autoverkauf[i]][iname],pAuto[autoverkauf[i]][imaxfuel],pAuto[autoverkauf[i]][iverbrauch],pAuto[autoverkauf[i]][imaxbatterie]);
autoverkauf3d[i] = Create3DTextLabel(string, weis, autoverkaufplatz[i][ix],autoverkaufplatz[i][iy], autoverkaufplatz[i][iz],10.0 , 0, 0);
Attach3DTextLabelToVehicle(autoverkauf3d[i],autoverkauf[i],0,0,1.5);
}
edit: 18.05.2012 kein push
Habe eine Lösung gefunden. Anstatt die 3D Texte immer zu zerstören und neu zu createn, erstelle ich bei OnGameModeInit alle einmal und ändere im Callback dann immer nur noch den String und attache diese neu.
Das Problem resultierte demnach aus dem Destroyen und neu erstellen.
*close*