Guest User

BlackBank3

a guest
Sep 2nd, 2012
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.63 KB | None | 0 0
  1. /*
  2.     Away script by BlackBank3(Joris Woltman)
  3.     Please keep the credits(This two lines). :)
  4. */
  5. #include <a_samp>
  6. #include <zcmd>
  7.  
  8. enum _aData {
  9.     bool:_Away,
  10.     bool:_AwayReason,
  11.     _Reason[64]
  12. }
  13.  
  14. new
  15.     Text:AwayTextdraw,
  16.     AwayTextTimer = -1,
  17.     PlayerAwayData[MAX_PLAYERS][_aData];
  18.  
  19. public OnFilterScriptInit()
  20. {
  21.     AwayTextdraw = TextDrawCreate(323.000000, 430.000000, " ");
  22.     TextDrawUseBox(AwayTextdraw, 1);
  23.     TextDrawBoxColor(AwayTextdraw, 0x00000000);
  24.     TextDrawTextSize(AwayTextdraw, 477.000000, 489.000000);
  25.     TextDrawAlignment(AwayTextdraw, 2);
  26.     TextDrawBackgroundColor(AwayTextdraw, 0x000000FF);
  27.     TextDrawFont(AwayTextdraw, 1);
  28.     TextDrawLetterSize(AwayTextdraw, 0.299999, 1.200000);
  29.     TextDrawColor(AwayTextdraw, 0xFFFFFFFF);
  30.     TextDrawSetOutline(AwayTextdraw, 1);
  31.     TextDrawSetProportional(AwayTextdraw, 1);
  32.     TextDrawSetShadow(AwayTextdraw, 1);
  33.     return 1;
  34. }
  35.  
  36. public OnFilterScriptExit()
  37. {
  38.     TextDrawDestroy(AwayTextdraw);
  39.     if(AwayTextTimer != -1) KillTimer(AwayTextTimer);
  40.     return 1;
  41. }
  42.  
  43. public OnPlayerDisconnect(playerid, reason)
  44. {
  45.     PlayerAwayData[playerid][_Away] = false;
  46.     PlayerAwayData[playerid][_AwayReason] = false;
  47.     return 1;
  48. }
  49.  
  50. CMD:away(playerid, params[])
  51. {
  52.     if(PlayerAwayData[playerid][_Away] == true) return SendClientMessage(playerid, -1, "ERROR: You are already away.");
  53.     new string[128];
  54.    
  55.     PlayerAwayData[playerid][_AwayReason] = (isnull(params)) ? false : true;
  56.     if(PlayerAwayData[playerid][_AwayReason] != false) format(PlayerAwayData[playerid][_Reason], 64, "%s", params);
  57.     PlayerAwayData[playerid][_Away] = true;
  58.    
  59.     if(PlayerAwayData[playerid][_AwayReason] == true) format(string, sizeof(string), "* AWAY: %s is now away. (Reason: %s)", PlayerName(playerid), PlayerAwayData[playerid][_Reason]);
  60.     else format(string, sizeof(string), "* AWAY: %s is now away.", PlayerName(playerid));
  61.    
  62.     SendClientMessageToAll(0x33CCFFFF, string);
  63.    
  64.     format(string, sizeof(string), "~b~~h~%s ~w~is now away.", PlayerName(playerid));
  65.     ShowAwayTextDraw(string);
  66.     return 1;
  67. }
  68.  
  69. CMD:back(playerid, params[])
  70. {
  71.     if(PlayerAwayData[playerid][_Away] == false) return SendClientMessage(playerid, -1, "ERROR: You are not away.");
  72.     new string[128];
  73.    
  74.     PlayerAwayData[playerid][_Away] = false;
  75.     PlayerAwayData[playerid][_AwayReason] = false;
  76.    
  77.     format(string, sizeof(string), "* AWAY: Welcome back %s.", PlayerName(playerid));
  78.     SendClientMessageToAll(0x33CCFFFF, string);
  79.    
  80.     format(string, sizeof(string), "~w~Welcome back ~b~~h~%s", PlayerName(playerid));
  81.     ShowAwayTextDraw(string);
  82.     return 1;
  83. }
  84.  
  85. CMD:awaylist(playerid, params[])
  86. {
  87.     new
  88.         string[128],
  89.         cd = 0;
  90.     SendClientMessage(playerid, 0x33CCFFFF, "* PLAYERS AWAY:");
  91.     for(new i = 0; i != MAX_PLAYERS; ++i)
  92.     {
  93.         if(PlayerAwayData[i][_Away] == false) continue;
  94.        
  95.         if(PlayerAwayData[i][_AwayReason] == true) format(string, sizeof(string), "- %s [%s]", PlayerName(i), PlayerAwayData[i][_Reason]);
  96.         else format(string, sizeof(string), "- %s", PlayerName(i));
  97.        
  98.         SendClientMessage(playerid, -1, string);
  99.         ++cd;
  100.     }
  101.     if(cd == 0) SendClientMessage(playerid, -1, "There are no players away.");
  102.     return 1;
  103. }
  104.  
  105. forward HideAwayTextDraw();
  106. public HideAwayTextDraw()
  107. {
  108.     AwayTextTimer = -1;
  109.     TextDrawHideForAll(AwayTextdraw);
  110.     return 1;
  111. }
  112.  
  113. stock ShowAwayTextDraw(string[])
  114. {
  115.     if(AwayTextTimer != -1) {
  116.         KillTimer(AwayTextTimer);
  117.         TextDrawHideForAll(AwayTextdraw);
  118.     }
  119.     TextDrawSetString(AwayTextdraw, string);
  120.     TextDrawShowForAll(AwayTextdraw);
  121.     AwayTextTimer = SetTimer("HideAwayTextDraw", 3200, false);
  122.     return 1;
  123. }
  124.  
  125. stock PlayerName(playerid)
  126. {
  127.     new Name[MAX_PLAYER_NAME];
  128.     GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  129.     return Name;
  130. }
Add Comment
Please, Sign In to add comment