Advertisement
Sufyan

AFK / BRB Sys. V1.1

Jun 23rd, 2011
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.98 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  4.  
  5. #pragma tabsize 0
  6.  
  7.  
  8. //Colors
  9. #define COLOR_WHITE 0xFFFFFFAA
  10. #define COLOR_YELLOW 0xFFFF00AA
  11. #define COLOR_RED 0xFF0000AA
  12. #define COLOR_LIGHTBLUE         0x33CCFFAA
  13. enum Player
  14. {
  15.     AFKstatus
  16. }
  17. new PlayerInfo[MAX_PLAYERS][Player];
  18. new OldName[MAX_PLAYER_NAME];
  19. public OnFilterScriptInit()
  20. {
  21.     print("\n--------------------------------------");
  22.     print(" Simple AFK/BRB System By Sufyan \n Loading.....\nLoaded Successfully !");
  23.     print("--------------------------------------\n");
  24.     return 1;
  25. }
  26.  
  27. public OnFilterScriptExit()
  28. {
  29.     return 1;
  30. }
  31. public OnPlayerConnect(playerid)
  32. {
  33.     PlayerInfo[playerid][AFKstatus] = 0;
  34.    
  35.     GetPlayerName(playerid,OldName,sizeof(OldName));
  36.     return 1;
  37. }
  38. dcmd_afk(playerid, params[])
  39.     {
  40.         #pragma unused params
  41.         new string[256];
  42.         if (PlayerInfo[playerid][AFKstatus] == 1)
  43.         {
  44.             SendClientMessage(playerid, COLOR_RED, "ERROR: Your status is already AFK/BRB!");
  45.             return 1;
  46.         }
  47.  
  48.         else if (PlayerInfo[playerid][AFKstatus] == 0)
  49.         {
  50.             new pname[MAX_PLAYER_NAME];
  51.             GetPlayerName(playerid, pname, sizeof(pname));
  52.             format(string, sizeof(string), "<!> {00C0FF}%s{FFFFFF}[{33AA33}ID:{F81414}%d{FFFFFF}]{00C0FF} is away from keyboard!", pname,playerid);
  53.             SendClientMessageToAll(COLOR_WHITE, string);
  54.            
  55.             new NewName[256];
  56.             format(NewName,sizeof(NewName),"%s[AFK]",pname);
  57.             SetPlayerName(playerid,NewName);
  58.            
  59.             TogglePlayerControllable(playerid,0);
  60.             SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playerid) + 50);
  61.             PlayerInfo[playerid][AFKstatus] = 1;
  62.             return 1;
  63.         }
  64. return 0;
  65. }
  66.  
  67. dcmd_brb(playerid, params[])
  68.     {
  69.         #pragma unused params
  70.         new string[256];
  71.         if (PlayerInfo[playerid][AFKstatus] == 1)
  72.         {
  73.             SendClientMessage(playerid, COLOR_RED, "ERROR: Your status is already AFK/BRB!");
  74.             return 1;
  75.         }
  76.  
  77.         else if (PlayerInfo[playerid][AFKstatus] == 0)
  78.         {
  79.             new pname[MAX_PLAYER_NAME];
  80.             GetPlayerName(playerid, pname, sizeof(pname));
  81.             format(string, sizeof(string), "<!> {00C0FF}%s{FFFFFF}[{33AA33}ID:{F81414}%d{FFFFFF}]{00C0FF} will be right back!", pname,playerid);
  82.             SendClientMessageToAll(COLOR_WHITE, string);
  83.            
  84.             new NewName[256];
  85.             format(NewName,sizeof(NewName),"%s[AFK]",pname);
  86.             SetPlayerName(playerid,NewName);
  87.            
  88.            
  89.             TogglePlayerControllable(playerid,0);
  90.             SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playerid) + 50);
  91.             PlayerInfo[playerid][AFKstatus] = 1;
  92.             return 1;
  93.  }
  94. return 0;
  95. }
  96.  
  97. dcmd_back(playerid, params[])
  98.     {
  99.         #pragma unused params
  100.         new string [256];
  101.         if (PlayerInfo[playerid][AFKstatus] == 0)
  102.         {
  103.             SendClientMessage(playerid, COLOR_RED, "ERROR: Your status is already BACK!");
  104.             return 1;
  105.         }
  106.  
  107.         else if (PlayerInfo[playerid][AFKstatus] == 1)
  108.         {
  109.             new pname[MAX_PLAYER_NAME];
  110.             GetPlayerName(playerid, pname, sizeof(pname));
  111.             format(string, sizeof(string), "<!> {00C0FF}%s{FFFFFF}[{33AA33}ID:{F81414}%d{FFFFFF}]{00C0FF} has returned!", pname,playerid);
  112.             SendClientMessageToAll(COLOR_WHITE, string);
  113.             TogglePlayerControllable(playerid,1);
  114.             SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(playerid) - 50);
  115.             PlayerInfo[playerid][AFKstatus] = 0;
  116.             new Name[256];
  117.             format(Name,sizeof(Name),"%s",OldName);
  118.             SetPlayerName(playerid,Name);
  119.             return 1;
  120.  }
  121. return 0;
  122. }
  123.  
  124.  
  125. dcmd_afkplayers( playerid, params[ ] )
  126. {
  127.     #pragma unused params
  128.         new count = 0;
  129.         new name[MAX_PLAYER_NAME];
  130.         new string[128];
  131.         //
  132.         SendClientMessage(playerid, COLOR_WHITE, "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
  133.         SendClientMessage(playerid, COLOR_LIGHTBLUE, "AFK Players List:");
  134.         SendClientMessage(playerid, COLOR_WHITE, "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
  135.         for(new i = 0; i < MAX_PLAYERS; i++)
  136.         {
  137.             if (IsPlayerConnected(i))
  138.             {
  139.  
  140.                 if(PlayerInfo[i][AFKstatus] == 1)
  141.                 {
  142.                     GetPlayerName(i, name, sizeof(name));
  143.                     format(string, 256, "%s{FFFFFF}[{6EF83C}ID:{F81414}%d{FFFFFF}]", name,i );
  144.                     SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
  145.                     count++;
  146.                 }
  147.             }
  148.  
  149.         }
  150.         if (count == 0)
  151.         {
  152.         SendClientMessage(playerid, COLOR_RED, "There Are No Players in the AFK/BRB List");
  153.         }
  154.         SendClientMessage(playerid, COLOR_WHITE, "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
  155.         return 1;
  156. }
  157.  
  158.  
  159.  
  160. public OnPlayerDisconnect(playerid, reason)
  161. {
  162.     PlayerInfo[playerid][AFKstatus] = 0;
  163.     return 1;
  164. }
  165.  
  166.  
  167.  
  168. public OnPlayerText(playerid, text[])
  169. {
  170.     if (PlayerInfo[playerid][AFKstatus] == 1)
  171.     {
  172.         SendClientMessage(playerid, COLOR_RED, "You need to be /back to use the chatbox.");
  173.         return 0;
  174.     }
  175.  
  176.     else if (PlayerInfo[playerid][AFKstatus] == 0)
  177.     {
  178.         return 1;
  179.     }
  180.     return 1;
  181. }
  182.  
  183. public OnPlayerCommandText(playerid, cmdtext[])
  184. {
  185.     dcmd(afk,3,cmdtext);
  186.     dcmd(brb,3,cmdtext);
  187.     dcmd(back,4,cmdtext);
  188.     dcmd(afkplayers,10,cmdtext);
  189.     return 0;
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement