SelectTextDraw Frage/Problem (Gelöst) (Textdraws nach drücken der ESC Taste verschwinden lassen)

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 die Herrschaften,


    wie ist es möglich Textdraws verschwinden zu lassen wenn der SelectTextDraw Mauszeiger weg ist?
    Es ist mir bei manchen Servern schon aufgefallen, das dann der komplette Textdraw verschwunden ist.


    Gibt es überhaupt eine Möglichkeit abzufragen ob man derzeit SelectTextdraw benutzt?


    Mfg


    Einmal editiert, zuletzt von EinfachMax ()

  • 1. Frage:
    Du meinst, die TextDraws sollen verschwinden, sobald die Person ESC drückt?
    Ich glaube man kann die Taste ESC per OnPlayerKeyStateChange abfragen, habe derzeit aber keine Funktion gefunden ;)


    2. Frage:
    Ja, es gibt eine Möglichkeit. Du könntest mit einer Variable arbeiten.



    Grüße,
    PAWN

  • /edit
    LÖSUNG: (Damit es in Zukunft auch jemand weiß)
    Ich habe im Englischen SA:MP Forum ca. 10 Threads mit den Informationen gelesen, und eine Möglichkeit zusammengebaut.


    //Variable
    new hiddenValid[MAX_PLAYERS];


    //OnPlayerClickTextDraw
    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    if(hiddedValid[playerid] == 1) {
    if(_:clickedid == INVALID_TEXT_DRAW) return CallLocalFunction("OnPlayerClickPlayerTextDraw", "ii", playerid, INVALID_TEXT_DRAW);
    }
    return 1;
    }


    //OnPlayerClickPlayerTextDraw
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if( _:playertextid == INVALID_TEXT_DRAW )
    {
    hiddedValid[playerid] = 0;
    PlayerTextDrawHide(playerid, TEXTDRAW[playerid]);
    CancelSelectTextDraw(playerid);
    }
    }


    Viele Grüße,
    m4a_X


    Einmal editiert, zuletzt von EinfachMax ()

  • hab das mal ausprobiert, suche nämlich auch danach...
    hat aber bei mir nicht funktioniert, bei euch ?


    Das ganze funktioniert schon jedoch muss man nicht extra OnPlayerClickPlayerTextDraw aufrufen.
    Der Punkt ist halt das bei der nutzung von ESC nur OnPlayerClickTextDraw.


    Eventuell machst du ja was falsch du kannst ja dein code mal posten.

  • Spoiler anzeigen

    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(_:playertextid == INVALID_TEXT_DRAW)
    {
    for(new i;i<10;i++)
    {
    TextDrawHideForPlayer(playerid,Textdraw[i]);
    //TextDrawShowForPlayer(playerid,ItemBox[i]);
    }
    for(new i;i<10;i++)
    {
    PlayerTextDrawHide(playerid,Itemname[playerid][i]);
    }
    for(new i;i<3;i++)
    {
    PlayerTextDrawHide(playerid,Weapon[playerid][i]);
    }

    Spoiler anzeigen
    TextDrawHideForPlayer(playerid,Weaponplatz1);
    TextDrawHideForPlayer(playerid,Weaponplatz2);
    TextDrawHideForPlayer(playerid,Weaponplatz3);
    PlayerTextDrawHide(playerid,UseButton[playerid]);
    PlayerTextDrawHide(playerid,DropButton[playerid]);
    TextDrawHideForPlayer(playerid,ItemsButton);
    PlayerTextDrawHide(playerid,RightButton[playerid]);
    PlayerTextDrawHide(playerid,LeftButton[playerid]);
    TextDrawHideForPlayer(playerid,WerkzeugeButton);
    PlayerTextDrawHide(playerid,InvSite[playerid]);
    PlayerTextDrawHide(playerid,ItemVorschau[playerid]);

    Spoiler anzeigen
    DeletePVar(playerid,"Inventar");
    CancelSelectTextDraw(playerid);
    return 1;
    }
    }


    Hatte das vor diesem Beitrag bereits so. Hat aber auch nicht gefunzt...

    Schau doch mal auf Inf-Reallife vorbei ! - Wir entwickeln einen großartigen GTA:Network Server

  • Hatte das vor diesem Beitrag bereits so. Hat aber auch nicht gefunzt...


    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(_:playertextid == INVALID_TEXT_DRAW)


    zu


    public OnPlayerClickTextDraw(playerid, PlayerText:playertextid)
    {
    if(_:clickedid == INVALID_TEXT_DRAW)


    oder falls dieses callback bei dir schon existiert fügst du den code dort ein

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen