Frage zum 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
  • Hallo Brotfische,


    ich habe heute mein AFK-System fertig gestellt, aber habe folgende Frage: Ich möchte gerne das bei "| AFK |\n00.00.00" (Zeile 8 [PWN Quelle]) die Zeit gezählt wird wie lang der Spieler AFK ist.


    Codes:


    ocmd:afk(playerid)
    {
    if(InAFK[playerid]==0)
    {
    InAFK[playerid]=1;
    SendClientMessage(playerid,C_Blau,"Du bist nun im AFK Modus.");
    TogglePlayerControllable(playerid,0);
    afklabel = Create3DTextLabel("| AFK |\n00.00.00", 0xFFAA00FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(afklabel, playerid, 0.0, 0.0, 0.7);
    }
    if(InAFK[playerid]==1)
    {
    InAFK[playerid]=0;
    SendClientMessage(playerid,C_Blau,"Du bist nun nicht mehr im AFK Modus.");
    TogglePlayerControllable(playerid,1);
    DeletePlayer3DTextLabel(playerid, PlayerText3D:afklabel);
    }
    return 1;
    }


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Vergiss aber nicht es so zu machen(meines Wissens nach)



    new string[64];
    format(string, sizeof(string), "| AFK |\n00.00.00",Variable);
    afklabel = Create3DTextLabel(string, 0xFFAA00FF, 30.0, 40.0, 50.0, 40.0, 0);


    Und beim Public(für den Timer) den 3D Text dann genau so Updaten.


    Mit freundlichen Grüßen


    //Edit;


    Spoiler anzeigen
    new afktimer[MAX_PLAYERS], afktime[MAX_PLAYERS];
    ocmd:afk(playerid)
    {
    if(InAFK[playerid]==0)
    {
    new string[64];
    InAFK[playerid]=1;
    SendClientMessage(playerid,C_Blau,"Du bist nun im AFK Modus.");
    TogglePlayerControllable(playerid,0);
    format(string, sizeof(string), "| AFK |\n%d",afktime[playerid]);
    afklabel = Create3DTextLabel(string, 0xFFAA00FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(afklabel, playerid, 0.0, 0.0, 0.7);
    afktimer[playerid] = SetTimerEx("isAFK",1000,true,"i",playerid);//Ruft den Public jede Sekunde auf
    }
    if(InAFK[playerid]==1)
    {
    InAFK[playerid]=0;
    SendClientMessage(playerid,C_Blau,"Du bist nun nicht mehr im AFK Modus.");
    TogglePlayerControllable(playerid,1);
    DeletePlayer3DTextLabel(playerid, PlayerText3D:afklabel);
    KillTimer(afktimer[playerid]);
    }
    return 1;
    }
    forward isAFK(playerid);
    public isAFK(playerid)
    {
    new string[64];
    afktime[playerid] ++;
    format(string, sizeof(string), "| AFK |\n%d",afktime[playerid]);
    Update3DTextLabelText(afklabel, 0xFFAA00FF, string);
    return 1;
    }


    So in der Art, soll nur zum denken anregen ^^
    Falls Fehler drin sind, schreib es hier rein.



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF () aus folgendem Grund: Fehler verbessert