Speed am Auto per 3DLabelText

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 Breadfish,


    Ich hatte vor, dass wenn man in ein Auto steigt eine Anzeige erscheint (per 3DTextLabel) und dort steht wie schnell man fährt.
    Dies soll halt jeder auf dem Server sehen. Frage, ist das möglich? Wenn ja könntet ihr den Code posten?


    Es handelt sich um ein GodFather.


    mf.G.
    Marcel

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • Hi


    Bist du sicher dass du ein 3D-Text haben willst? Oder ein normales Text-Label? (wäre "Normaler") xD
    Du kannst ja mal bei den Tutorials unter "Tacho Erstellen" Suchen, da ist ein ausführliches von mir dabei


    MFG, Robdeflop®

  • new PlayerText3D:playertextid[MAX_PLAYERS];
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new PlayerText3D:playertextid;
    playertextid[playerid] = CreatePlayer3DTextLabel(playerid,"",0xFF5A00FF,0,0,0,40.0);
    Attach3DTextLabelToVehicle(playertextid[playerid], vehicleid, 0.0, 0.0, 2.0);
    return 1;
    }




    //das machst du unter einen Timer der z.B. jede sekunde aufgerufen wird
    if(IsPlayerInAnyVehicle(playerid))
    {
    new stringg[32];
    new speed = GetPlayerSpeed(playerid);
    format(stringg, sizeof(stringg), "Geschwindigkeit: %0.1f",speed);
    UpdatePlayer3DTextLabelText(playerid, playertextid[playerid], 0xFF5A00FF, stringg);
    return 1;



    }

    Das ganz unten ins Script
    stock Float:GetPlayerSpeed(playerid)
    {
    new
    Float:vX,
    Float:vY,
    Float:vZ;
    if (!IsPlayerInAnyVehicle(playerid))
    {
    GetPlayerVelocity(playerid, vX, vY, vZ);
    }
    else
    {
    GetVehicleVelocity(GetPlayerVehicleID(playerid), vX, vY, vZ);
    }
    return floatsqroot(vX*vX + vY*vY + vZ*vZ);
    }


    hoffe ist richtig, wenn nicht bitte korregieren


    @edit: fehler korregiert

  • Habs so gemacht.. Aber


    C:\Dokumente und Einstellungen\Xp\Desktop\Alles\LoH\gamemodes\Script.pwn(42821) : warning 208: function with tag result used before definition, forcing reparse
    C:\Dokumente und Einstellungen\XP\Desktop\Alles\LoH\gamemodes\Script.pwn(3048) : error 028: invalid subscript (not an array or too many subscripts): "Speedamauto"
    C:\Dokumente und Einstellungen\XP\Desktop\Alles\LoH\gamemodes\Script.pwn(3048) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\XP\Desktop\Alles\LoH\gamemodes\Script.pwn(3048) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\XP\Desktop\Alles\LoH\gamemodes\Script.pwn(3048) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\XP\Desktop\Alles\LoH\gamemodes\Script.pwn(3048) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • {
    new PlayerText3D:Speedamauto;
    Speedamauto[playerid] = CreatePlayer3DTextLabel(playerid,"",0xFF5A00FF,0,0,0,40.0);//< Hier ist der Fehler Zeile 3048
    Attach3DTextLabelToVehicle(Speedamauto[playerid], vehicleid, 0.0, 0.0, 2.0);


    if(GetVehicleModel(vehicleid) == 548 && ispassenger == 1)
    {
    PutPlayerInVehicle(playerid, vehicleid, 1);

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42821) : warning 208: function with tag result used before definition, forcing reparse
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(3049) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42806) : warning 235: public function lacks forward declaration (symbol "SpeedPerTextDraw")
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42808) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42811) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42811) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42813) : error 017: undefined symbol "playerid"
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42818) : warning 209: function "SpeedPerTextDraw" should return a value
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.




    Habe alles gemacht wie du sagtest aber |^-| Geht nicht

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • public SpeedPerTextDraw()
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new stringg[32];
    new speed = GetPlayerSpeed(playerid);
    format(stringg, sizeof(stringg), "Geschwindigkeit: %0.1f",speed);
    UpdatePlayer3DTextLabelText(playerid, Speedamauto[playerid], 0xFF5A00FF, stringg);//<- Hier ist die Zeile
    return 1;



    }
    }

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • so müsste es gehen:



    public SpeedPerTextDraw()
    {
    for(new i=0; i < MAX_PLAYERS; i++)
    {


    if(IsPlayerInAnyVehicle(i))
    {
    new stringg[32];
    new speed = GetPlayerSpeed(i);
    format(stringg, sizeof(stringg), "Geschwindigkeit: %0.1f",speed);
    UpdatePlayer3DTextLabelText(i, Speedamauto[playerid], 0xFF5A00FF, stringg);//<- Hier ist die Zeile
    return 1;
    }
    }
    }


    @edit: Dieses Label sieht nur der jeweilige Spieler, also nicht jeder

    Einmal editiert, zuletzt von Cody09 ()

  • Errors sind weg


    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42822) : warning 208: function with tag result used before definition, forcing reparse
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(3049) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42807) : warning 235: public function lacks forward declaration (symbol "SpeedPerTextDraw")
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42814) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Marcelli\Desktop\Alles\LoH\gamemodes\loh.pwn(42820) : warning 209: function "SpeedPerTextDraw" should return a value
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Warnings.



    Ich habe 2 TextDraws. Ein Bot der Bedienung überm Kopf hat und ein Willkommensteil.
    Wenn ich jetzt in ein Auto gehe, steht als erstes Bedinung über mir.
    Danach steige ich aus und gehe wieder rein. Nun steht über mein namen: "Willkommen auf dem Server"


    Klappt nicht.. Bitte um hilfe!

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • Schau mal und übersetze dir, was dort steht, dann überlege dir, was passiert sein könnte.


    Es kommt, so viel sei gesagt, bei dem ersten Error auf die Positionierung deiner Funktion an ;)

  • den ersten fehler musste selber lösen



    forward SpeedPerTextDraw(playerid);
    public SpeedPerTextDraw(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new stringg[32];
    new speed = GetPlayerSpeed(playerid);
    format(stringg, sizeof(stringg), "Geschwindigkeit: %0.1f",speed);
    UpdatePlayer3DTextLabelText(playerid, Speedamauto[playerid], 0xFF5A00FF, stringg);//<- Hier ist die Zeile
    }
    }
    return 1;
    }


    ich weis nicht, wie ich des i bei GetPlayerSpeed ersetzten könnte mit was, das es funktioniert


    @edit: Fehler entfernt

    Einmal editiert, zuletzt von Cody09 ()