Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ================================================================================
- Phanto's Script
- ________________________________________________________________________________
- •Script: PAFKSystem •Scripter: Phanto90
- •Type: FS •File size: 10 Kb
- •Lines: 110 •Version: 1.0v
- ________________________________________________________________________________
- * Description *
- Tired of the usual AFK system? Try this instead.
- -Detect automatically when a player goes afk
- -Simple and nice AFK system
- -Modify as you want but keep credits!
- Thanks for choosing Pawnoscripter!
- http://pawnoscripter.forumfree.it
- Phanto90
- ________________________________________________________________________________
- Do not remove credits.
- ================================================================================
- */
- //===================INCLUDES
- #include a_samp
- //===================DEFINES
- #define AFK_MINUTES 1 //How many minutes a player can be afk before detected
- //===================VARS&ARRAY
- enum Info_Afk{Timer, bool: Inactive};
- new Player[MAX_PLAYERS][Info_Afk];
- new name[29],string[128]; //I know maximum is 24, but 29 just to be "additionally" correct
- //============================================================ONFILTERSCRIPTINIT
- public OnFilterScriptInit()
- {
- print("\n________________________________________");
- print(" PAfk System loaded succesfully");
- print("________________________________________\n");
- return 1;
- }
- //============================================================ONPLAYERDISCONNECT
- public OnPlayerDisconnect(playerid)
- {
- KillTimer(Player[playerid][Timer]);
- Player[playerid][Inactive]=false;
- GetPlayerName(playerid,name,sizeof(name));
- if(strfind(name,"[AFK]", true)!=-1)
- {
- strdel(name,0,5);
- SetPlayerName(playerid,name);
- }
- return 1;
- }
- //============================================================ONPLAYERDISCONNECT
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid,name,sizeof(name));
- if(strfind(name,"[AFK]", true)!=-1)
- {
- SendClientMessage(playerid,-1,"[ERROR:] Invalid nickname. You have been kicked.");
- Kick(playerid);
- }
- return 1;
- }
- //=================================================================ONPLAYERSPAWN
- public OnPlayerSpawn(playerid)
- {
- Player[playerid][Timer]=SetTimerEx("Player_Detect_Afk", AFK_MINUTES*60000, false, "d", playerid);
- return 1;
- }
- //=============================================================PLAYER_DETECT_AFK
- forward Player_Detect_Afk(playerid);
- public Player_Detect_Afk(playerid)
- {
- GetPlayerName(playerid, name, sizeof(name));
- format(string,sizeof(string),"[AFK]%s",name);
- SetPlayerName(playerid, string);
- Player[playerid][Inactive] = true;
- format(string,sizeof(string),"{C14124}%s {FFFFFF}has gone AFK",name);
- SendClientMessageToAll(-1,string);
- TogglePlayerControllable(playerid,0);
- return 1;
- }
- //========================================================ONPLAYERKEYSTATECHANGE
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- Afk_Back(playerid);
- return 1;
- }
- //==================================================================ONPLAYERTEXT
- public OnPlayerText(playerid,text[])
- {
- Afk_Back(playerid);
- return 1;
- }
- //=======================================================================AFKBACK
- stock Afk_Back(playerid)
- {
- KillTimer(Player[playerid][Timer]);
- Player[playerid][Timer]=SetTimerEx("Player_Detect_Afk", AFK_MINUTES*60000, false, "d", playerid);
- if(Player[playerid][Inactive])
- {
- format(string,sizeof(string),"{C14124}%s {FFFFFF}is back from AFK state",name);
- SendClientMessageToAll(-1,string);
- Player[playerid][Inactive]=false;
- TogglePlayerControllable(playerid,1);
- GetPlayerName(playerid,name,sizeof(name));
- if(strfind(name,"[AFK]", true)!=-1)
- {
- strdel(name,0,5);
- SetPlayerName(playerid,name);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement