SA-MP Forums Archive
[Tutorial] AFK System - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Tutorials (https://sampforum.blast.hk/forumdisplay.php?fid=70)
+---- Thread: [Tutorial] AFK System (/showthread.php?tid=354263)



How to make AFK script - XStormiest - 26.06.2012

Hello World I'm new on scripting so i don't know very good how to script
But I had learned how to make a AFK system so ...i will learn you how to make this
First: we create a variable: and add it in top of scripts!

Code:
 new AFK[MAX_PLAYERS];
This will help us to see if player is afk or if isn't.

now go to public OnPlayerConnect , if you don't know where PRESS ctrl + f and write OnPlayerConnect in the box

after you find it, type next functions between
Code:
{
    AFK[playerid] = 0;
  return 1;
}
Now we gonna make 3 commands, /afk, /back, /afklist if you use zcmd, or foreach wil be more easily to do it

now go to OnPlayerCommandText(playerid,cmdtext[])
and write next between {
}
we create first the /afk command
Code:
          if(strcmp(cmdtext, "/afk", true) == 0)
         {
             if(AFK[playerid] == 1) return SendClientMessage(playerid,-1,"You are already AFK"); //verify if the player is afk if is will send a message
                  AFK[playerid] = 1;// set AFK as on. for player..
                       new name[MAX_PLAYER_NAME], string[256]; // create variable for player called name and string for message and more..
                               GetPlayerName(playerid,name,sizeof(name)); // now setting NAme as the name of the player
                                      format(string,sizeof(string), "[AFK]%s",name);
                                      SetPlayerName(playerid,string); // set the name with AFK when he type /afk
                                          SetPlayerColor(playerid,-1); // set the  color of the player to white
                                        SetPlayerWeather(playerid,-1); // setting the weather to -1 to create a real AFK effect
                                         TogglePlayerControllable(playerid,0);       //frezeze the player                              
         }
/brb cmd
Code:
          if(strcmp(cmdtext,"/back",true) == 0)
             {
             if(AFK[playerid] == 0) return SendClientMessage(playerid,-1,"You are not AFK"); //verify if the player is afk if is not will send a message
                     else
                    {
                  AFK[playerid] = 0;// set AFK as off. for player..
                       new name[MAX_PLAYER_NAME], string[256]; // create variable for player called name and string for message and more..
                               GetPlayerName(playerid,name,sizeof(name)); // now setting NAme as the name of the player
                                      format(string,sizeof(string), "%s",name);
                                      SetPlayerName(playerid,string); // set the name to his/hi normal name
                                          SetPlayerColor(playerid,-1); // set the  color of the player to white
                                        SetPlayerWeather(playerid,-2); // setting the weather to 2 for nice weather
                                         TogglePlayerControllable(playerid,1);           //unfreeze the player      
               }    
                return 1;
         }
now create the /afklist cmd

Code:
if(strcmp(cmdtext,"/afklist",true) == 0)
{
          for(new i = 0; i != MAX_PLAYERS; i++)
          {
                  new name[MAX_PLAYER_NAME], string[256];
                  GetPlayerName(i,name,sizeof(name));
                   format(string,sizeof(string),"AFK Set Player : %s (id : %i)",name,playerid);
         }
            SendClientMessage(playerid,-1,string);
       return 1;
}
Now i hope this had helped you
I'm not a crazy rep + man so if you want to rep or not is

If i did some mistake just comment
Above is the link for script
http://pastebin.com/BSUqzhG0


Re: AFK System - [M.A]Angel[M.A] - 31.07.2012

Nice script ty! +rep!!


Re: AFK System - Dan. - 31.07.2012

Horrible indentation.. also there is no point using [256] strings, because max clientmessage is like 144 characters or something like that. Well 3/10 for the effort.


Respuesta: AFK System - CaptainMactavish - 31.07.2012

Awful indentation and optimization, bad explained, already posted and in my opinion is useless.


Re: AFK System - MarTaTa - 01.08.2012

Quote:
Originally Posted by Dan.
View Post
Horrible indentation.. also there is no point using [256] strings, because max clientmessage is like 144 characters or something like that. Well 3/10 for the effort.
The max clientmessage is actually 128 , and for the tutorial, it's not organized, not explained ( specialy the loop), or with other words this is copy / paste tutorial you don't learn nothing

P.S. Use [pawn] [./pawn] tags


Re: AFK System - Tigerkiller - 02.08.2012

Error founded:

pawn Code:
if(strcmp(cmdtext,"/afklist",true) == 0)
{
          for(new i = 0; i != MAX_PLAYERS; i++)
          {
                  new name[MAX_PLAYER_NAME], string[256];
                  GetPlayerName(i,name,sizeof(name));
                   format(string,sizeof(string),"AFK Set Player : %s (id : %i)",name,playerid);
         }
            SendClientMessage(playerid,-1,string);
       return 1;
}
To:

pawn Code:
if(strcmp(cmdtext,"/afklist",true) == 0)
{
          for(new i = 0; i < MAX_PLAYERS; i++)
          {
                  new name[MAX_PLAYER_NAME], string[50];
                  GetPlayerName(i,name,sizeof(name));
                   format(string,sizeof(string),"AFK Set Player : %s (id : %i)",name,i);
         }
            SendClientMessage(playerid,0xFF0000FF,string);
       return 1;
}



Re: AFK System - Squirrel - 02.08.2012

Quote:

if(strcmp(cmdtext,"/afklist",true) == 0)
{
for(new i = 0; i != MAX_PLAYERS; i++)
{
new name[MAX_PLAYER_NAME], string[256];
GetPlayerName(i,name,sizeof(name));
format(string,sizeof(string),"AFK Set Player : %s (id : %i)",name,playerid);
}
SendClientMessage(playerid,0xFF0000FF,string);
return 1;
}

error 017: undefined symbol "string"


Re: AFK System - XStormiest - 04.08.2012

yeah sorry it was my first tutorial created...