Nagut, da es niemand auf die Reihe bekommt und nur sagen können das es schon gibt hier eine kleine Erklärung:
OnPlayerUpdate - Ist ein "zwischen" Callback wo immer vor der Synchronisation aufgerufen wird, das heißt wenn der Spieler sich bewegt werden natürlich mehr Pakete an den Server gesendet und bevor es an die anderen Spieler geht durch OnPlayerUpdate gejagt...
So, das kannst du natürlich zu deinem nützen machen, undzwar wenn der Spieler auf den Desktop ist kommen auch keine "Idle" Packete mehr das heißt du kannst bei jedem OnPlayerUpdate Call eine Variable für den Spieler auf 0 Setzen nennen wir die mal Ixel .
Wenn du jetzt einen Timer nimmst, und darin die "Var" immer hoch zählst, während OnPlayerUpdate sie zurückzieht (0), und OnPlayerUpdate nicht mehr aufgerufen wird sobald du auf dem Desktop bist erreicht diese Zahl bald dann einen Wert über 1...
Ein pseudo beispiel:
var -> globale variable
var ixel[MAX_PLAYERS]; // <- globale variable, mit einen Platz für jeden Spieler
OnPlayerUpdate(playerid)
ixel[playerid] = 0; // setze variable bei jedem Update wieder auf 0
Timer (1000 seks)
//iterator-> spielerschleife
ixel[iterator]++; // Zähle Variable hoch ..
ixel[iterator] > 2 // Wenn sie diesen Wert erreicht wird OnPlayerUpdate in diesem Zeitraum nicht aufgerufen das heißt -> Desktop / Timeout / Afk whatsover.
// Spieler ist in dem Menü