Advertisement
Sufyan

AFK/BRB Sys.

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