Hey, ich suche ein Anti-AFK System, also das alle paar Minuten (~10) eine Abfrage kommt, ob der Spieler AFK ist, und der Spieler dann eingeben muss: /notafk [zahl] -- so wie auf GRP (German-Roleplay) in der Art..
[ SUCHE ] Anti-AFK System!
- Tiduz187
- Geschlossen
- Erledigt
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
-
-
Keine eigenen Ideen? -.-
Naja also du machst einen Timer bei OnGameModeInit der auf 10 Minuten gestellt ist. Da ich keine Zeit habe um es zu schreiben hier als Hilfe ist eig. ganz Simple ich bin anfänger und schaffe dies sogar:^^
unter dem Timer Public der nach 10Minuten aufgerufen ist machst du erneut SetTimer auf 10Minuten damit er immer wieder von vorne läuft. Nun erstellst du ein Random Code und eine Eingabe MSG Box, wenn der Input der dazugehörigen Randomzahl gleicht passiert folgendes= Der Timer erneut sich um 10Minuten. Wenn er falsch eingibt steht dort "Falsch dein Code ist %d". Sobald du ShowPlayerDialog oder wie das hießt machst einen Timer starten mit dem Kick da man nur begrenzt zeit haben soll z.B 60Sekunden, nach den 60sek machst du "kick(playerid);" fertig.^^
-
das is umständlich machs einfach per Variable weil wenn der Spieler aufn Desktop is wird das Callback OnPlayerUpdate nicht aufgerufen
-
das is umständlich machs einfach per Variable weil wenn der Spieler aufn Desktop is wird das Callback OnPlayerUpdate nicht aufgerufen
Sorry =) kanns nur mit Timern bin selbst Anfänger. War nur ein Vorschlag...
-
Es soll AUCH kommen, wenn der Spieler aufm Desk ist oder so, kann mir das keiner eben machen, anstatt nen riesen tuto zu schreiben?^^
-
Wenn du doch dabei bist, ein Selfmade Freeroam zu machen, soltest du ja auch Scripten können, oder ?
Wird dann sonst ein Copy & paste.
Ich mach dir nachher mal eins, oder morgen.
Editiere dann den Beitrag hier. -
Jo danke.. und eig ja, aber das is mir einfach noch n bissl zu schwer^^
Da brauch ich hilfe
Und Selfmade isses ja so oder so, denn jemand hat es ja gemacht xD
-
Wie ist es mit OnKeyStateChange?
Wen er die (windows taste) drückt läuft ein timer für 10min.
Am start des Timers liest du die Position vom Player aus und nach den 10Min wird noch mal die Pos ausgelesen und verglichen
falls nicht gleich = Kick.Geht das vllt so?
-
Nein ich meine, dass alle 10 Minuten, egal was der grade macht eine AFK Meldung kommt mit: Bitte gib /notafk [zahl] ein um deine anwesenheit zu bestätigen, ansonsten wirst du innerhalb einer minute gekickt
-
mach halt so, ein timer 10 min dan getplayerpos, dan nach 10 min wen er immmer noch an der selben stelle ist kick oder ...
-
Ich glaube bei
// Unter OnGameModeInit
SetTimer("AFKtimer",600000,true);// forwards
forward AFKtimer()
forward 60Sekunden()// Publics
Public AFKtimer(playerid)
{
SendClientMessage(playerid,0xFFFAF0,"Bitte tippen sie "/Notafk" ein um ihre Anwesenheit zu Bestätigen!"); // Farbe Weiß
SendClientMessage(playerid,0xFFFAF0,"Oder sie werden in 60 Sekunden automatisch gekickt");
SetTimer(60Sekunden,60000,true);
}Public 60Sekunden(playerid)
{
kick = playerid // weis jetzt nicht wie man kickt :D
}So müsste es gehen.
// Edit: Das wichtigste vergessen.
// Unter OnPlayerCommandText
if(strcmp(cmdtext, "/Notafk", true) == 0)
{
// Command fürs Stopen des 60Sekunden timers
} -
Public 60Sekunden(playerid)
{
kick = playerid // weis jetzt nicht wie man kickt :D
}
ich glaube des kicken geht so
Public 60Sekunden(playerid)
{
Kick;
} -
Ok danke da hab ich jetzt auch was Gelernt
-
Bitte tippen sie "/Notafk" ein um ihre Anwesenheit zu Bestätigen!
Da is doch das command net, um die anwesendheit zu bestätigen, oda? xD
-
Das ist ne Message die ihm Sagt er solls tippen.
In der zeit wird automatisch der 60Sekunden timer gestartet.
Falls er Innerhalb der 60Sekunden nicht /Notafk = Nichtafk eingibt wird er gekickt. -
Public 60Sekunden(playerid)
{
kick = playerid // weis jetzt nicht wie man kickt :D
}
ich glaube des kicken geht so
Public 60Sekunden(playerid)
{
Kick;
}Haha beide Fail xD
kicken tut man so
Kick(playerid);
-
Und wie mache ich das, dass da steht: Anwesenheit bestätigt!
Wenn er /notafk eigibt? Weil das ist ja kein text command :X
-
Das wo steht er hat sie Bestätigt?
@ToLate
Lachen brauchse nicht!
Jeder macht fehler!
-
// Command fürs Stopen des 60Sekunden timers
Kann mir niemand sagen, was "command fürs stoppen des 60sec timers" is?! :<
-
if(strcmp(cmdtext ,"/notafk", true) == 0){
KillTimer(Timerid);
return true;
}