Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Simple AFK System by DeWilX */
- #define FILTERSCRIPT
- #include <a_samp>
- #define COLOR_LIMEGREEN 0x32CD32AA
- #define COLOR_RED 0xFF0000FF
- #define ms 60000
- #define afktime 1 // AFK time in minutes
- #define AutoAFKTimer 1 // Enable Auto AFK? 1 = On 0 = Off
- #define AutoBackOnButtonPress 1 // Enable Auto Back on "Move Forward" key press? 1 = On 0 = Off
- forward public PlayerMoveTimer(playerid);
- new gPlayers[MAX_PLAYERS][MAX_PLAYER_NAME+1];
- new hp = 9999999;
- new Float:phealth;
- new Float:parmour;
- new IsPlayerAfk[MAX_PLAYERS];
- new i=0;
- new autoafk=ms*afktime;
- new AFKtime=AutoAFKTimer;
- new AutoBack=AutoBackOnButtonPress;
- new afktag[MAX_PLAYERS];
- new pname[16];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" DeWilX's Simple AFK System -- Loaded");
- print("--------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if (AFKtime == 1)
- {
- SetTimerEx("PlayerMoveTimer", autoafk/2, true, "i", playerid);
- }
- GetPlayerName(playerid,pname,16);
- IsPlayerAfk[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- IsPlayerAfk[playerid] = 0;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(IsPlayerAfk[playerid] == 1)
- {
- SendClientMessage(playerid, COLOR_RED, "ERROR : You can not use chat when you're AFK. Use /back to be back!");
- return 0;
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/afk", cmdtext, true, 10) == 0)
- {
- new string[33];
- new name[16];
- new setname[16];
- GetPlayerName(playerid,name,128);
- if (IsPlayerAfk[playerid] == 0) {
- GetPlayerName(playerid,gPlayers[playerid],MAX_PLAYER_NAME);
- GetPlayerHealth(playerid,phealth);
- SetPlayerHealth(playerid,hp);
- GetPlayerArmour(playerid,parmour);
- TogglePlayerControllable(playerid, 0);
- format(string,sizeof(string),"***%s is now AFK!",gPlayers[playerid]);
- SendClientMessageToAll(COLOR_RED,string);
- format(setname, sizeof(setname), "[AFK]%s",name);
- if(!strlen(name[11]))
- {
- afktag[playerid] = 1;
- SetPlayerName(playerid,setname);
- }
- IsPlayerAfk[playerid] = 1;
- return true;
- }
- if (IsPlayerAfk[playerid] == 1) {
- SendClientMessage(playerid, COLOR_RED, "ERROR : You are already AFK! Use /back to be back!");
- }
- return true;
- }
- if (strcmp("/back", cmdtext, true, 10) == 0)
- {
- new string[39];
- if (IsPlayerAfk[playerid] == 1) {
- TogglePlayerControllable(playerid, 1);
- SetPlayerHealth(playerid,phealth);
- SetPlayerArmour(playerid,parmour);
- format(string,sizeof(string),"***%s is no longer AFK!",gPlayers[playerid]);
- SendClientMessageToAll(COLOR_LIMEGREEN,string);
- if(afktag[playerid] == 1)
- {
- afktag[playerid] = 0;
- SetPlayerName(playerid,pname);
- }
- IsPlayerAfk[playerid] = 0;
- return true;
- }
- if (IsPlayerAfk[playerid] == 0) {
- SendClientMessage(playerid, COLOR_RED, "ERROR : You arent AFK! Use /afk to be AFK!");
- }
- return true;
- }
- return 1;
- }
- public PlayerMoveTimer(playerid)
- {
- new string[33];
- new name[16];
- new setname[16];
- GetPlayerName(playerid,name,128);
- if (IsPlayerAfk[playerid] == 0) {
- i++;
- }
- if ((IsPlayerAfk[playerid] == 0) && (i == 2)) {
- GetPlayerName(playerid,gPlayers[playerid],MAX_PLAYER_NAME);
- GetPlayerHealth(playerid,phealth);
- SetPlayerHealth(playerid,hp);
- GetPlayerArmour(playerid,parmour);
- TogglePlayerControllable(playerid, 0);
- format(string,sizeof(string),"***%s is now AFK!",gPlayers[playerid]);
- SendClientMessageToAll(COLOR_RED,string);
- format(setname, sizeof(setname), "[AFK]%s",name);
- if(!strlen(name[11]))
- {
- afktag[playerid] = 1;
- SetPlayerName(playerid,setname);
- }
- IsPlayerAfk[playerid] = 1;
- return true;
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if (IsPlayerAfk[playerid] == 0) {
- i=0;
- }
- new Keys,ud,lr;
- new string[39];
- GetPlayerKeys(playerid,Keys,ud,lr);
- if((ud == KEY_UP ) || (ud == KEY_DOWN) || (Keys == KEY_FIRE) || (lr == KEY_LEFT) || (lr == KEY_RIGHT) || (Keys == KEY_ACTION) || (Keys == KEY_JUMP) || (Keys == KEY_SPRINT) && (AutoBack == 1))
- {
- if (IsPlayerAfk[playerid] == 1) {
- TogglePlayerControllable(playerid, 1);
- SetPlayerHealth(playerid,phealth);
- SetPlayerArmour(playerid,parmour);
- format(string,sizeof(string),"***%s is no longer AFK!",gPlayers[playerid]);
- SendClientMessageToAll(COLOR_LIMEGREEN,string);
- if(afktag[playerid] == 1)
- {
- afktag[playerid] = 0;
- SetPlayerName(playerid,pname);
- }
- IsPlayerAfk[playerid] = 0;
- return true;
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement