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
Es gibt bereits viele AFK-Systeme. Die basieren darauf, dass bei OnPlayerUpdate kein Aufruf passiert.
Du brauchst eine globale Variable new idletime[MAX_PLAYERS];
Diese soll den letzten Moment speichern, der bei OnPlayerUpdate aufgerufen wurde. Nun musst da auch was gespeichert werden.
public OnPlayerUpdate(playerid) { return idletime[playerid] = GetTickCount(), 1; }
Nun wird der letzte Moment gespeichert. Jedoch muss doch überprüft werden, wann der Spieler AFK geht. Jedoch wird es bei OnPlayerUpdate nicht gehen, da es ja dann nicht mehr aktualisiert wird. Wir brauchen einen Timer. Der Timer sollte beim GameMode Start gestartet werden. Hin zu OnGameModeInit.
public OnGameModeInit() { SetTimer("AFK", 3000, 1); return 1; }
forward AFK(); public AFK() { new tick = GetTickCount(); for(new i, j = GetMaxPlayers(); i < j; i++) { if(tick - idletime[i] >= 5000) // Nach 5 Sekunden AFK { // Was passiert, wenn der Spieler AFK ist? } } return 1; }
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen.Weitere InformationenSchließen