Wo finde ich die AFK Funktion

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
  • Mal ein Tipp: Wieso wartest Du nicht ingame, bis Du in den AFK-Modus gebracht worden bist und guckst dann z.B. was du für eine Message erhalten hast. Beispielsweise "Du wurdest in den AFK Modus geschickt", und daraufhin suchst Du genau diesen Text im Script? ;)

    Let the party begin - turn all the lights on!

  • Es ist keine Funktion, sondern eine Überlegung, die besagt, dass wenn ein Spieler im Menü oder auf dem Desktop ist "OnPlayerUpdate" nicht mehr ausgeführt wird.


    das heißt du speicherst bei OnPlayerUpdate jeweils die time() ab und checks im Vergleich jede 10 Sekunden ob die aktuelle Time ungefähr der abgespeicherten entspricht.


    Zusätzlich kannst du dann noch ein Command einbauen.


    Aloha!

    nanosMalte


    Zitat

    Zitat von Goldkiller




    Obwohl MiniYoda das Wörtchen "Dynamisch" in der Deutschen SA-MP szene mit durchaus fatalen Folgen verbreitete, so hat er dennoch bewiesen, dass er das Handwerk PAWN hervorragend beherrscht. Er gehört definitiv zu den kompetentesten Scriptern die man bei SA-MP.DE finden kann.

  • #include <a_samp>


    new Desktop_Check[MAX_PLAYERS];
    new Desktop_Status[MAX_PLAYERS];
    new Desktop_Timer[MAX_PLAYERS];
    new Desktop_Timer_Started[MAX_PLAYERS];
    new Text3D:Desktop_SHOW[MAX_PLAYERS];


    #define COLOR_BLACK 0x000000FF
    #define COLOR_WHITE 0xFFFFFFAA


    public OnPlayerConnect(playerid)
    {
    Desktop_Check[playerid] = 0;
    Desktop_Timer_Started[playerid] = 0;
    Desktop_Status[playerid] = 0;
    Desktop_SHOW[playerid] = Create3DTextLabel("",0xFF6347AA,0,0,0,10.0,0,0);
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    if(Desktop_Timer_Started[playerid] == 1) { KillTimer(Desktop_Timer[playerid]); }
    Delete3DTextLabel(Desktop_SHOW[playerid]);
    return 1;
    }


    forward Desktop_Function(playerid);
    public Desktop_Function(playerid)
    {
    if(Desktop_Check[playerid] > 0)
    {
    Desktop_Status[playerid] = 0;
    SetPlayerColor(playerid,COLOR_WHITE);
    Update3DTextLabelText(Desktop_SHOW[playerid],0xFF6347AA,"");
    Attach3DTextLabelToPlayer(Desktop_SHOW[playerid],playerid,0,0,0);
    }
    if(Desktop_Check[playerid] <= 0)
    {
    SetPlayerColor(playerid,COLOR_BLACK);
    Desktop_Status[playerid] +=1;
    new string[128];
    format(string,sizeof(string),"Seit %d Sekunden auf dem Desktop bzw. AFK", Desktop_Status[playerid]);
    Update3DTextLabelText(Desktop_SHOW[playerid],0xFF6347AA,string);
    Attach3DTextLabelToPlayer(Desktop_SHOW[playerid],playerid,0,0,0);
    }
    Desktop_Check[playerid] = 0;
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    if(Desktop_Timer_Started[playerid] == 0)
    {
    Desktop_Timer[playerid] = SetTimerEx("Desktop_Function",1000,1,"d",playerid);
    Desktop_Timer_Started[playerid] = 1;
    }
    Desktop_Check[playerid] += 1;
    return 1;
    }


    Unnötig?