Taxi mit Label

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
  • Guten Tag zusammen, ich habe ein Problem mit den Attach3DTextLabelToVehicle,


    Und zwar habe ich folgendes vor:
    egal ob Taxi im Script oder /veh 420 2 2 gerufen wird es soll ein 3DTextLabel an diesem Kleben(Wenn es über /veh nicht geht dann muss es halt im GM nur definiert werden)


    Ich habe folgendes Probiert:


    bei new:
    new Text3D:Taxivehicletext[MAX_VEHICLES],Taxivehicle_id;


    if(IsATaxi(newcar))
    {
    Taxivehicletext[ Taxivehicle_id ] = Create3DTextLabel( "San Andreas Taxi \nSteig ein, um als Fahrer zu arbeiten", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( Taxivehicletext[ Taxivehicle_id ] , Taxivehicle_id, 0.0, 0.0, 2.0);
    ShowPlayerDialog(playerid,DIALOG_TAXIBUS,DIALOG_STYLE_INPUT,"Taxifahrer","{FFFFFF}Um als Taxifahrer zu arbeiten, gib hier den Fahrpreis ein. Du erhälst ihn alle 15 Sekunden.","Fortsetzen","Abbrechen");
    return 1;
    }


    und natürlich beim Dialog soll dieser Text gelöscht werden:
    Delete3DTextLabel( Taxivehicletext[ Taxivehicle_id ] );


    Also wenn ich Fahr preis eingeben habe bleibt er noch da, Danach kommt wieder ein Dialog mit:
    Gib nun einen Namen für dein Taxi ein


    So dann muss ich natürlich im dem Dialog Bereich wenn man Den name eingeben hat das er dies macht:
    Delete3DTextLabel( Taxivehicletext[ Taxivehicle_id ] );


    und wieder ein neues 3DTextLabel erstellt:


    bei New
    new Text3D:imdienstTaxivehicletext[MAX_VEHICLES],imdienstTaxivehicle_id;


    beim Dialog:
    if(response == 1)
    {
    TaxiDrivers += 1; TransportDuty[playerid] = 1;


    Delete3DTextLabel( Taxivehicletext[ Taxivehicle_id ] );
    new namevomtaxi = strlen(inputtext);
    imdienstTaxivehicletext[ imdienstTaxivehicle_id ] = Create3DTextLabel( "%s [ San Andreas Taxi ]\n Fahrer: %s\n Preis: %d$ / 15 Sekunden", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 ,namevomtaxi ,sendername, TransportValue[playerid]);
    Attach3DTextLabelToVehicle( imdienstTaxivehicletext[ imdienstTaxivehicle_id ] , imdienstTaxivehicle_id, 0.0, 0.0, 2.0);
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "Taxifahrer %s is im Dienst, Preis: $%d.", sendername, TransportValue[playerid]);
    OOCNews(TEAM_GROVE_COLOR,string);
    }


    und natürlich wenn er Aussteigt/zerstört wieder:
    Delete3DTextLabel( imdienstTaxivehicletext[ imdienstTaxivehicle_id ] );


    und dann halt wieder das er das am Anfang wieder erstellt


    Aber 1. werden keine Label angezeigt 2. habe ich bei namevomtaxi ein warning

    Das Originale SOR ( Street´s of Reallife ) seit 03.10.2009

  • Also erstmal entferne die Variable Taxivehicle_id, das ist überflüssig.


    Nun suche in deinem Script (da es ein Godfather ist, soweit ich weiß) nach: TaxiVehs[1] =, dort findest du - unter OnGameModeInit() - die Job- und Fraktionsfahrzeuge die erstellt werden. Unter dem letzten TaxiVehs, das erstellt wird, fügst du folgende For-Schleife ein.

    Code
    for(new i = 0; i < sizeof(TaxiVehs); i ++) {
    	Taxivehicletext[TaxiVehs[i]] = Create3DTextLabel( "San Andreas Taxi \nSteig ein, um als Fahrer zu arbeiten", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    	Attach3DTextLabelToVehicle(Taxivehicletext[TaxiVehs[i]], TaxiVehs[i], 0.0, 0.0, 2.0);
    }




    Aus deiner OnPlayerStateChange() Abfrage löschst du folgende Zeilen, denn diese werden nun beim Spawnen der Fahrzeuge ausgeführt.

    Code
    Taxivehicletext[ Taxivehicle_id ] = Create3DTextLabel( "San Andreas Taxi \nSteig ein, um als Fahrer zu arbeiten", 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( Taxivehicletext[ Taxivehicle_id ] , Taxivehicle_id, 0.0, 0.0, 2.0);


    In OnDialogResponse() fügst du folgendes ein, bzw passt deinen Code entsprechend an:




    In OnVehicleDeath() und OnPlayerExitVehicle():

    Code
    if(IsATaxi(vehicleid)) {
    		Update3DTextLabelText(Taxivehicletext[vehicleid], 0xFF0000AA, "San Andreas Taxi \nSteig ein, um als Fahrer zu arbeiten");
    	}

    Einmal editiert, zuletzt von Montero ()