Problem mit Taxifahrer

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


  • Hallo,


    Ich wollte fragen wie ich am besten das zusammen setze wen ich Einsteige, den Preis angeben muss.
    Nach den Preis angeben sollte sich der 3DText updaten in:



    for(new i,Text3D:Taxi; i<sizeof(pTaxi); i++)
    {
    Taxi = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
    Attach3DTextLabelToVehicle(Taxi, pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    }


    Taxi Company\n\nFahrer: %s\nKosten: %s$

  • Beitrag von BlackPanther ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Problem falsch verstanden. ().
  • Da musste die Variable global nutzen:


    new Text3D:taxi[sizeof(pTaxi)];



    //Dann in der Schleife
    taxi[i] = Create3DTextLabel(...);
    Attach3DTextLabel(taxi[i], ..);


    und dann ändern mit:


    C
    new string[128];
    format(string,sizeof(string),"Taxi Company\n\nFahrer: %s\nKosten: %d$",GetName(playerid),kosten);
    for(new i; i<sizeof(pTaxi); i++)
    {
        if(IsPlayerInVehicle(playerid, pTaxi[i][taxiVehicleID]))
        {
            Update3DTextLabel(taxi[i], -1, string);
            break;
        }
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe es mal Versucht;




    Den Error gibt er mir nun bei Taxi:




    Code
    for(new i,Text3D:Taxi; i<sizeof(pTaxi); i++)
    	{
        	Taxi = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
       	 	Attach3DTextLabelToVehicle(Taxi, pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    	}
  • Du arbeitest irgendwie nicht mit dem Array von der globalen Variable Taxi, so wie ich es gezeigt hatte... :huh:


    Negativ,


    Die Texte werden so drauf gemacht an die Fahrzeuge:


    Code
    for(new i,Text3D:Taxi; i<sizeof(pTaxi); i++)
    	{
        	Taxi = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
       	 	Attach3DTextLabelToVehicle(Taxi, pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    	}


    Finde ich Persöhnlich besser da man nicht 100k Zeilen braucht.


    Wen er einsteigt bekommt er den Dialog:



  • new Text3D:taxi[sizeof(pTaxi)];

    zu:

    new Text3D:taxi[MAX_PLAYERS];


    for(new i,Text3D:Taxi; i<sizeof(pTaxi); i++)
    {
    Taxi = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
    Attach3DTextLabelToVehicle(Taxi, pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    }

    zu:

    for(new i; i<sizeof(pTaxi); i++)
    {
    taxi[playerid] = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
    Attach3DTextLabelToVehicle(taxi[playerid], pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    }


    und zum löschen:

    Delete3DTextLabel(taxi[playerid]);


    wenn du möchtest, dass der Spieler mehrere Taxis gleichzeig benutzen soll, dann lass es über die Fahrzeugid definieren anstatt über die Spielerid.

  • Danke,



    Momentan Sieht es so aus:


    Code
    for(new i; i<sizeof(pTaxi); i++)
    	{
    		taxi[i] = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
    		Attach3DTextLabelToVehicle(taxi[i], pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    	}


    Kurze Frage wen ich den Preis abgebe wird ein neuer erstellt warum?
    Es sollte geupdatet werden und kein Neuer erstellt werden :/?

  • zu:

    Und wieso?


    Ich meine, man erstellt ja nicht für jeden Spieler ein Taxi, sondern es gibt nur 7...


    Negativ,

    Ja negativ..du hast irgendwie nicht gelesen was ich geschrieben habe und hast keine deklarationen oder sonst was geändert...
    Der Code beim Attachen ist halt falsch...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Und wieso?
    Ich meine, man erstellt ja nicht für jeden Spieler ein Taxi, sondern es gibt nur 7...


    Ja negativ..du hast irgendwie nicht gelesen was ich geschrieben habe und hast keine deklarationen oder sonst was geändert...Der Code beim Attachen ist halt falsch...

    Was soll bei Attachen falsch sein?

  • Also hier nutzt du eine Dynamic Funktion und erstellst es mit Create3DTextLabel. Da stimmt was nicht...
    Den Rest haste ja so gelassen, wie ich es gezeigt hatte..


    Habe ich geändert.


    Create3DTextLabel und Update3DTextLabelText


    So und nun updatet er den 3DText nicht mehr :/



    //E:


    So sieht das komplette script momentan aus:



    *Drück mich*




    //E:


    Habe den Fehler gefunden updatet nun.


    Kurze Frage wen ich ein Preis eingebe steht da: Fahrer: Mein Name und als Preis immer 0$ warum?




    //E:


    Soeben den Fehler gefunden.


    Fehlte: pTaxi[i][taxiFare] = strval(inputtext);



    Kurze frage wie änder ich wen ich nicht mehr in dienst bin den Label in:



    for(new i; i<sizeof(pTaxi); i++)
    {
    taxi[i] = Create3DTextLabel("{D7DF01}Taxi Company\n\nSteigen Sie ein, um als\nTaxifahrer zu arbeiten.", COLOR_WHITE, 0.0, 0.0, 0.0, 20.0, 0);
    Attach3DTextLabelToVehicle(taxi[i], pTaxi[i][taxiVehicleID], 0.0, 0.0, 0.3);
    }


    wieder?