FPS, Ping & Packetloss 3D Text

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
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Bin mir nicht 100% sicher, aber:


    Bei:


    Code
    GetPlayerPos(id,pX,pY,pZ);
        pInfos[id] = CreatePlayer3DTextLabel(id, "", -1, pX, pY, pZ-7, 15.0, id, INVALID_VEHICLE_ID, 0);

    Attached du das TextLabel an den Spieler, in dem Falle geben die X,Y und Z Koordinaten den Offset an, also wie weit das TextLabel vom Spieler verschoben ist.


    Jedoch verwendest du hierbei die Spielerkoordinaten, also wahrscheinlich wird das 3d text Label wo angezeigt nur ganz weit weg, weil die Spieler Position recht hohe zahlen sind.

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Sobald du eine attachid angibst sind die X, Y, Z Koordinaten deine Offsets, jetzt befindet sich dein Icon Bsp: 30.0 von dem Spieler weg , deine Drawdistance liegt bei nur 15.0 => Konsequenz daraus das Lable wird nie angezeigt für den Spieler.



    Code
    pInfos[id] = CreatePlayer3DTextLabel(id, "", -1, 1.0, 1.0, 1.0, 15.0, id, INVALID_VEHICLE_ID, 0);
  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • ich werde dir gleich ein Code schicken normal sollte das funktionieren den attachid Parameter gibt es für die Funktion nur kann der Spieler nur selbst die Daten sehen da das Lable Clientseitig erstellt wird.
    Ich werde dir gleich ein beispiel code schicken


    //edit


    Ich hab mal bissle rumgeschaut die Labels werden nur für die anderen Spieler angezeigt, nicht für einen selbst das gilt leider für jegliche Arten von Labels + den Chatbubbels. Als alternative kannst du auch ganz einfach ein unsichtbares Object nehmen etwas auf dieses schreiben und an den Spieler attachen.


    Jedoch beachte dabei CreatePlayerObject zu nutzen oder du gibst den Parameter playerid bei CreateDynamicObject an und zwar hier


    CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1 , Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD);

    Einmal editiert, zuletzt von IPrototypeI ()

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Nutze anstatt einem Player3DTextLabel ein normales 3DTextLabel. Sonst sieht es ja nur der Spieler für den es erstellt wurde, und da es an diesen attached wird, sieht es niemand mehr.


    pInfos[id] = CreatePlayer3DTextLabel(id, "", -1, pX, pY, pZ-7, 15.0, id, INVALID_VEHICLE_ID, 0);
    zu:
    pInfos[id] = Create3DTextLabel("", 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, 0, 0);
    Attach3DTextLabelToPlayer(pInfos[id], id, 0.0, 0.0, 0.7);


    Und
    UpdatePlayer3DTextLabelText(playerid, pInfos[playerid], 0xFFFFFFFF, pInfosStr);
    zu:
    Update3DTextLabelText(pInfos[playerid], 0xFFFFFFFF, pInfosStr);


    Gegebenenfalls musst du es bei OnPlayerSpawn nochmals attachen.
    Attach3DTextLabelToPlayer(pInfos[playerid], playerid, 0.0, 0.0, 0.7);


    Je nach dem musst du dann noch den Offset bei Attach3DTextLabelToPlayer anpassen, falls das nicht passt.

  • Beitrag von JustMe.77 ()

    Dieser Beitrag wurde vom Autor gelöscht ().