Biesmen

AutoMessage FS 2.0 [OUTDATED]

Nov 10th, 2011
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.80 KB | None | 0 0
  1. //=========================================================================//
  2. //* Automatic Client Message Sender Filterscript
  3. //* Version: 2.0
  4. //=========================================================================//
  5. //* Created by:
  6. //* Biesmen
  7. //          http://forum.sa-mp.com/member.php?u=52068
  8. //=========================================================================//
  9.  
  10. #include <a_samp>
  11. #include <sscanf2> // SSCANF by Y_Less
  12.  
  13. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  14.  
  15.  
  16. forward MessageTimer();
  17.  
  18. new Lines[20][256];
  19. new MessageTime = 1;
  20. new MessageTimerS;
  21. new MaxLines;
  22.  
  23. stock WriteFileLine()
  24. {
  25.     new cline = 0;
  26.     new File:name = fopen("messages.txt", io_write);
  27.     while(cline != MaxLines)
  28.     {
  29.         cline++;
  30.         fwrite(name, Lines[cline]);
  31.     }
  32.     fclose(name);
  33.     return 1;
  34. }
  35.  
  36. stock ReadLines()
  37. {
  38.     new str[256], dlines = 0;
  39.     new File:Messages = fopen("messages.txt", io_read);
  40.     while(fread(Messages, str, sizeof(str)))
  41.     {
  42.         dlines++;
  43.         format(Lines[dlines],256,"%s",str);
  44.     }
  45.     MessageTime = strval(Lines[1]);
  46.     MaxLines = dlines;
  47.     fclose(Messages);
  48.     printf("%i", MaxLines);
  49.     return 1;
  50. }
  51.  
  52. public OnFilterScriptInit()
  53. {
  54.     ReadLines();
  55.     MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
  56.     print("\n--------------------------------------");
  57.     print(" Automatic Client Message sender");
  58.     print(" Created by: Biesmen");
  59.     print("--------------------------------------\n");
  60.     return 1;
  61. }
  62.  
  63. public OnFilterScriptExit()
  64. {
  65.     return 1;
  66. }
  67.  
  68. public MessageTimer()
  69. {
  70.     new rand = random(MaxLines);
  71.     if(rand == 1) { rand = random(MaxLines); }
  72.     SendClientMessageToAll(0xFFFFFFAA, Lines[rand]);
  73.     printf("%s", Lines[rand]);
  74.     return 1;
  75. }
  76.  
  77. public OnPlayerCommandText(playerid, cmdtext[])
  78. {
  79.     dcmd(setline, 7, cmdtext);
  80.     dcmd(messagetime, 11, cmdtext);
  81.    
  82.     if (strcmp("/toggletimer", cmdtext, true) == 0)
  83.     {
  84.         if(IsPlayerAdmin(playerid))
  85.         {
  86.             if(MessageTimerS != 0)
  87.             {
  88.                KillTimer(MessageTimerS);
  89.                MessageTimerS = 0;
  90.                SendClientMessage(playerid, 0xFF8040FF, "The Message Timer has been deactivated.");
  91.             }
  92.             else
  93.             {
  94.                 MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
  95.                 SendClientMessage(playerid, 0xFF8040FF, "The Message Timer has been activated.");
  96.             }
  97.         }
  98.         return 1;
  99.     }
  100.     return 0;
  101. }
  102.  
  103. dcmd_setline(playerid, params[])
  104. {
  105.     new line, message[256];
  106.     if(IsPlayerAdmin(playerid))
  107.     {
  108.         if(sscanf(params, "is[256]", line, message)) return SendClientMessage(playerid, 0xFF8040FF, "USAGE: /setline [line] [message]");
  109.         if(strlen(message) > 256) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: Message too long!");
  110.         if(line > MaxLines-1 || line < 0) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: This line doesn't exist!");
  111.         if(line == 0) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: If you want to change the message timer, use /messagetime!");
  112.         format(Lines[line+1], 256, "%s\r\n", message);
  113.         WriteFileLine();
  114.         format(message, sizeof(message), "[LINE %i]{FF8040} has changed into: %s", line, message);
  115.         SendClientMessage(playerid, 0xFFC68CFF, message);
  116.     }
  117.     return 1;
  118. }
  119.  
  120. dcmd_messagetime(playerid, params[])
  121. {
  122.     new string[53], time;
  123.     if(IsPlayerAdmin(playerid))
  124.     {
  125.         if(sscanf(params, "i", time)) return SendClientMessage(playerid, 0xFF8040FF, "USAGE: /messagetime [seconds]");
  126.         KillTimer(MessageTimerS);
  127.         MessageTime = time;
  128.         MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
  129.         format(string, sizeof(string), "The messages will now display once every %i seconds", MessageTime);
  130.         SendClientMessage(playerid, 0xFF8040FF, string);
  131.         format(Lines[1], 256, "%i\r\n", time);
  132.         WriteFileLine();
  133.     }
  134.     return 1;
  135. }
Advertisement
Add Comment
Please, Sign In to add comment