Grosse Problem mit 3DTextlabel

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Tag zusammen,
    Ich habe ein grosse Problem mit den 3DTextlaben....
    Ich weiss einfach nicht weiter und ich sehe den Bug einfach nicht. Ich hoffe Ihr könnt mir helfen.
    Fangen wir mal an:


    Oben im Script:

    new Text3D:LinienbusLabel[MAX_VEHICLES];


    Dann unter OnGamemodeInit();

    for(new i=0;i<sizeof(buscar)i++)
    {
    LinenbusLabel[buscar[i]] = Create3DTextLabel("Leerfahrt",WEISS,0,0,0,25,0,1);
    Attach3DTextLabelToVehicle(LinenbusLabel[i],buscar[i],0,0,0);
    }


    Und dann wenn ich eine Linie wähle:

    ocmd:linie(playerid, params[])
    {
    new vehID;
    //BlaBlaBla
    //Wird überprüft ob Spieler im Bus ist und setzt die BusID auf VehID;
    Update3DTextLabelText(LinenbusLabel[VehID],WEISS,"Linie 1");
    }


    Der Fehler besteht darin das dass Label nicht geupdatet wird. Also es wird schon ein Label geupdatet aber nicht das richtige. Es wird immer das selbe Label von einem Taxi geupdatet. Aber ich weiss nicht warum....
    Diese 3DTextLabel spinnen doch irgendwie, oder ich bin einfach zu doof.

  • den wert von vehID musst du auch verändern der ist grundsätzlich 0 .
    Daher solltest du dir ausgeben lassen in welchem Fahrzeug der spieler sitzt von den Bussen.


    Daher benutz eine For-schleife geh durch alle Busse durch sollte der spieler in dem jeweiligen buss drinne sein ( if abfrage hier bei IsPlayerInvehicle( buscar[i]))
    so breche die schleife ab und setzte dan das jeweilige label auf den jeweiligen text.


    //edit


    zu dem mit == kannst du keinen wert übergeben sondern nur vergleichen in einer if abfrage daher entferne dort ein gleichzeichen


    LinenbusLabel[buscar[i]] == Create3DTextLabel("Leerfahrt",WEISS,0,0,0,25,0,1);


    LinenbusLabel[buscar[i]] = Create3DTextLabel("Leerfahrt",WEISS,0,0,0,25,0,1);

  • poste deinen /linen Befehl




    Bei dem Befehle wird ein Dialog angezeigt. Ich kann ja mal den zeigen:



    if(dialogid == DIALOG_BUS)
    {
    if(response)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,GELB,"Du hast die Buslinie 1 gestartet. N‰chste Haltestelle: Busbahnhof");
    BusInfo[playerid][BusAktiv] = true;
    BusInfo[playerid][Bus_Checkpoint]=0;
    BusInfo[playerid][Bus_ID] = GetPlayerVehicleID(playerid);
    BusInfo[playerid][Bus_Linie] = 1;
    SetPlayerCheckpoint(playerid,Bus_Stationen_L1[0][Bus_PosX],Bus_Stationen_L1[0][Bus_PosY],Bus_Stationen_L1[0][Bus_PosZ],5.0);
    Update3DTextLabelText(LinienBusLabel[BusInfo[playerid][Bus_ID]],HELLBLAU,"Buslinie Los Santos 1");
    }

    {
    }


  • new Text3D:LinienbusLabel[sizeof(buscar)];
    for(new i;i < sizeof(buscar);i++){
    LinenbusLabel[i] = Create3DTextLabel("Leerfahrt",WEISS,0,0,0,25,0,1);
    Attach3DTextLabelToVehicle(LinenbusLabel[i],buscar[i],0,0,0);
    }
    if(dialogid == DIALOG_BUS){
    if(response){
    if(listitem == 0){
    new car = GetPlayerVehicleID(playerid);
    for(new i; i< sizeof(buscar); ++i){
    if(car == buscar[i])
    SendClientMessage(playerid,GELB,"Du hast die Buslinie 1 gestartet. N‰chste Haltestelle: Busbahnhof");
    BusInfo[playerid][BusAktiv] = true;
    BusInfo[playerid][Bus_Checkpoint]=0;
    BusInfo[playerid][Bus_ID] = car;
    BusInfo[playerid][Bus_Linie] = 1;
    SetPlayerCheckpoint(playerid,Bus_Stationen_L1[0][Bus_PosX],Bus_Stationen_L1[0][Bus_PosY],Bus_Stationen_L1[0][Bus_PosZ],5.0);
    return Update3DTextLabelText(LinienBusLabel[i],HELLBLAU,"Buslinie Los Santos 1");
    }
    }
    }
    }
    }


    so sollte das passen zu orientier dich bei der größe des arrays an der anzahl deiner busse.



  • Das geht leider auch nicht es wird immer noch am Taxi geändert.


    //Push