TextDrawCreate & Pickup

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
  • Hey,


    ich möchte wenn man in ein bestimmtes Pickup läuft das sich eine Box (TextDrawCreate) öffnet. Soweit so gut, ich laufe also in mein Pickup und es öffnet sich diese Box.


    Was mir jetzt noch fehlt ist das sich die Box nur einmal öffnen soll, und wenn man das Pickup verlässt soll die Box wieder verschwinden (eventuell faden).


    Wäre nett wenn mir jemand bei meinem Problem helfen könnte...


    Liebe Grüße

  • TextDrawHideForPlayer(playerid, Textdraw[playerid]);


    wäre eine Möglichkeit, musst halt nur abfragen ob er ausm Pickup ist oder nich^^



    zB.



    if(IsPlayerInRangeOfPoint(playerid, 2.0,)); //Koordinaten von deinem Pickup einsetzen
    {
    TextDrawShow / TextDrawCreate // jenachdem was du halt hast
    return 1;
    }
    else
    {
    TextDrawHideForPlayer(playerid, Textdraw[playerid]);
    }


    Ungetestet aber vll. gehts so ^^


    Musst halt nur an dein Script anpassen


    /edit: PWN Code hinzugefügt

  • Textdraw und Pickup ist nicht zu empfehlen. Beispielsweise ist es möglich, dass es zwei mal erstellt wird, also noch eins erstellt wird, bevor das andere gelöscht werden kann. Dann hast du ein nie wieder verschwindendes Textdraw (Ausser halt mit Timeout oder /q). Aber naja, hiermal der Code für diese Variante (Johns Code ist eher nicht zu empfehlen):



    #include <a_samp>


    new Text:gTextDraw;
    new Pickup;



    public OnFilterScriptInit()
    {
    Pickup = CreatePickup(1274, 2, 0.0, 0.0, 9.0);
    gTextDraw = TextDrawCreate(200.0, 400.0, "Text bshxajykmdls");
    TextDrawUseBox(gTextDraw, 0);
    return 1;
    }


    public OnFilterScriptExit()
    {
    TextDrawHideForAll(gTextDraw);
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Pickup) TextDrawShowForPlayer(playerid, gTextDraw);
    return 1;
    }



    (Es gibt kein "public OnPlayerExitPickup", wie wärs also mit nem Checkpoint?




    #include <a_samp>


    new Text:gTextDraw;
    new Pickup;



    public OnFilterScriptInit()
    {
    Pickup = CreatePickup(1242, 2, XKoordinate, YKoordinate, ZKoordinate, -1);
    gTextDraw = TextDrawCreate(200.0, 400.0, "Text uwesdnjkds");
    TextDrawUseBox(gTextDraw, 0);
    return 1;
    }


    public OnFilterScriptExit()
    {
    TextDrawHideForAll(gTextDraw);
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == Pickup) SetPlayerCheckpoint(playerid, XKoordinate, YKoordinate, ZKoordinate, 3.0);
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    TextDrawShowForPlayer(playerid, Text:gTextDraw);
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    TextDrawHideForPlayer(playerid, gTextDraw);
    DisablePlayerCheckpoint(playerid);
    return 1;
    }

  • Hey,


    vielen Dank für die Antworten, aber ich denke das Checkpoint keine Variante für mich wäre.


    Ich will eine Infobox machen welche bei einem Pickup kommt, beispielsweise ist da ein Pickup "i" und wenn man sich dort reinstellt kommt eine Infobox wo drinnen steht "Tippen sie /xx um XX zu tun". Wenn man dann weg von diesem Pickup geht soll die Infobox auch wieder verschwinden.


    Liebe Grüße