Wir mache ich dieses Afk system

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
  • Halli leute ich habe mal eine Frage!


    Da es ja die ESC Taste nicht gibt wollte ich mal Fragen wie man ein AFK system schreibt welches dan einspringt wenn man auf den Desktop geht oder wenn man esc drückt




    Mit freundlichen Grüßen

  • Nein Kaliber, so wird das nicht funktionieren X(
    Was willst du denn damit bezwecken, dass du das unter Umständen leere Callback "OnPlayerUpdate" aufrufst?
    Du musst via Timer eine Variable immer auf 0 setzen und in OnPlayerUpdate auf 1.
    Dann kannst du an der gewünschten Stelle abfragen, ob die Var den Wert 0 (Inaktiv, Menü/Desktop), oder 1 (Aktiv im Spiel) hat.

  • Achso, wenn also dieses Callback so aussieht:

    public OnPlayerUpdate(playerid)
    {
    return 1;
    }

    Erwartest du also, dass es ggf. mal wenn es grade will 0 ausgibt?
    Hier mal mein altes AFK Sys, vllt kann mans ja gebrauchen:

    #include a_samp
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 32
    new playertimer, playeractive[MAX_PLAYERS], playerafktime[MAX_PLAYERS], str[50];
    forward afkcheck();


    public OnFilterScriptInit(){
    playertimer = SetTimer("afkcheck",1000,1);
    }


    public OnFilterScriptExit(){
    KillTimer(playertimer);
    }


    public afkcheck(){
    for(new i=0;i<MAX_PLAYERS;i++){
    if(!IsPlayerConnected(i)) continue;
    if(!playeractive[i]){
    playerafktime[i]++;
    if(playerafktime[i] >= 4)
    {
    format(str,50,"Desktop/Menü [%d sek]", playerafktime[i]);
    SetPlayerChatBubble(i, str, 0xFFFFFFFF, 50.0, 1000);
    }
    }
    else playerafktime[i] = 0;
    playeractive[i] = 0;
    }
    }



    public OnPlayerUpdate(playerid){
    playeractive[playerid] = 1;
    return 1;
    }



  • Nicht ich, das Wiki:


    Code
    Returns	0 - Update from this player will not be replicated to other clients.
    Returns	1 - Indicates that this update can be processed normally and sent to other players.


    Habe es aber gerade getestet, egal was man tut, returnt immer 1 ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S