Desktop Check Version 0.2

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
  • Moin Leute,


    ich hatte wieder langeweile und hab euch ne kleine Include gebastelt.
    Was könnt ihr damit machen:


    Ich könnt damit abfragen ob sich ein Spieler aufn Desktop befindet.
    Und ihr könnt abfragen wie lange der Spieler sich schon auf dem Desktop befindet.


    Diese Include ist ungetestet dürfte aber funktionieren.


    Funktionen



    IsPlayerOnDesktop(playerid); //returnt 1 für ja
    GetPlayerDesktopTime(playerid); // gibt die Desktop Zeit in Sekunden wieder


    Updated:


    Version 0.2


    MFG RFT


    //edit: Updatehinzugefügt damit sollte es keine Errors mehr geben.
    //edit:
    Da ich immer wieder PN´s zu diesen System bekomme werde ich mal einen neuen Download Link zur verfügung stellen.

    RFT

    3 Mal editiert, zuletzt von RFT ()

  • Ist zwar nichts neues, aber bist der erste der es in dieser Art genau so wie du da released. Aber wofür mit PVar's gearbeitet? oO

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Moin ZKX,


    Ist zwar nichts neues, aber bist der erste der es in dieser Art genau so wie du da released. Aber wofür mit PVar's gearbeitet? oO


    Weil PVars optimierter sind.



    Moin playerid,


    dies kannst du unter OnPlayerUpdate tuhen mit ner Abfrage ob der Spieler AFK ist.
    Geht mit dieser Include wunderbar.
    Aber ich würde nen anderes Callback bevorzugen OnPlayerUpdate ist nicht gerade schonend wenns so voll gepackt wird.


    MFG RFT

    RFT

  • Magst du mir es mal so schreiben, wie es richtig wäre?
    Das sollte halt über dem Spieler stehen:
    "Menü/Desktop %d Sek."


    Weil wo & Co weiß ich halt nicht.
    Habe mich mit deiner Include jetzt auch nicht groß beschäftigt. :'D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • // ganz oben
    new Text3D: PlayerText[MAX_PLAYERS];




    // in nem timer
    if(IsPlayerOnDesktop(playerid))
    {
    new Str[32];
    format(str, 32, "%s Sekunden AFK", GetPlayerDesktopTime(playerid));
    if(GetPVarInt(playerid, "TextSend") == 0)
    {
    SetPVarInt(playerid, "TextSend", 1);
    PlayerText[playerid] = Create3DTextLabel(str, DEINE FARBE, 0.0, 0.0, 0.0, 20.0, -1, -1);}
    Attach3DTextLabelToPlayer(PlayerText[playerid], playerid, 0.0, 0.0, 0.0);
    }
    Update3DTextLabelText(PlayerText[playerid], DEINE_FARBE, str);
    }
    else
    {
    if(GetPVarInt(playerid, "TextSend") == 1)
    {
    Delete3DTextLabel(PlayerText[playerid]);
    SetPVarInt(playerid, "TextSend", 0);
    }
    }

    RFT

  • Hallo,


    Hört sich gut an. Teste es gleich mal. Aber ne Frage wie kann man denn abfragen ob der Spieler aufm Desktop ist?Und kann man machen das wenn ein Spieler mehr als z.b 5Minuten aufm Desktop ist er gekickt wird?

    Projektleiter

    Cleared to Land ist in der Script Werkstatt ;)


  • Hier wie du deine stocks einsparen kannst..


    #define IsPlayerOnDesktop(%0) GetPVarInt(%0,"DeskCheck")
    #define GetPlayerDesktopTime(%0) GetPVarInt(%0,"AFKTime")


    Nebenbei empfehle ich nen 4Sekunden Timer, denn wie es damals vor langer langer Zeit Mr. Blackfox (oder wie sein Name nochmals war) auch schon erwähnt, dass es durch kleine Laggs zu falschen Werten kommt und man kann hier in dieser Samp Welt nicht davon ausgehen, dass jeder einen Akademie Abschluss hat in das Anwenden von Programmiersprachen, oder? ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • @ DMA


    Jahund? ^^ Wenn ich was in einem Script ned 100end mal ändern will, kommen mir Präprozessor ganz recht auch wenn es hier nicht der Fall ist ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Wenn ich mein Script damit compilen will, bekomme ich folgenden Error:


    Code
    C:\Users\Privat\Desktop\Reallife.pwn(9244) : error 021: symbol already defined: "JB_OnGameModeInit"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    "JB_OnGameModeInit" kommt nur in der Junkbuster.inc vor.
    Vorher gab es nie Probleme beim Compilen.
    Die Zeilen, die den Error verursachen könnten:
    Desktop.inc:


    forward Desk_SecondTimer();
    forward Desk_OnPlayerUpdate(playerid);
    forward Desk_OnGameModeInit();


    #define Desk_OnPlayerUpdate OnPlayerUpdate
    #define Desk_OnGameModeInit OnGameModeInit
    Junkbuster.inc:


    forward JB_OnGameModeInit();


    //OnGameModeInit
    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit JB_OnGameModeInit


    Vielleicht kann mir ja jemand helfen ;)


    MfG


    //EDIT: Code verbessert und Rechtschreibfehler gelöscht

  • Evtl. Junk Buster raushauen und Anti-Bot (evtl. anderes Anti System) nehmen?
    ich vermute stark, dass es an Junkbuster liegt


    Falls nicht bitte berichtigen.


    MFG Home

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