Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=========================================================================//
- //* Automatic Client Message Sender Filterscript
- //* Version: 2.0
- //=========================================================================//
- //* Created by:
- //* Biesmen
- // http://forum.sa-mp.com/member.php?u=52068
- //=========================================================================//
- #include <a_samp>
- #include <sscanf2> // SSCANF by Y_Less
- #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
- forward MessageTimer();
- new Lines[20][256];
- new MessageTime = 1;
- new MessageTimerS;
- new MaxLines;
- stock WriteFileLine()
- {
- new cline = 0;
- new File:name = fopen("messages.txt", io_write);
- while(cline != MaxLines)
- {
- cline++;
- fwrite(name, Lines[cline]);
- }
- fclose(name);
- return 1;
- }
- stock ReadLines()
- {
- new str[256], dlines = 0;
- new File:Messages = fopen("messages.txt", io_read);
- while(fread(Messages, str, sizeof(str)))
- {
- dlines++;
- format(Lines[dlines],256,"%s",str);
- }
- MessageTime = strval(Lines[1]);
- MaxLines = dlines;
- fclose(Messages);
- printf("%i", MaxLines);
- return 1;
- }
- public OnFilterScriptInit()
- {
- ReadLines();
- MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
- print("\n--------------------------------------");
- print(" Automatic Client Message sender");
- print(" Created by: Biesmen");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public MessageTimer()
- {
- new rand = random(MaxLines);
- if(rand == 1) { rand = random(MaxLines); }
- SendClientMessageToAll(0xFFFFFFAA, Lines[rand]);
- printf("%s", Lines[rand]);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(setline, 7, cmdtext);
- dcmd(messagetime, 11, cmdtext);
- if (strcmp("/toggletimer", cmdtext, true) == 0)
- {
- if(IsPlayerAdmin(playerid))
- {
- if(MessageTimerS != 0)
- {
- KillTimer(MessageTimerS);
- MessageTimerS = 0;
- SendClientMessage(playerid, 0xFF8040FF, "The Message Timer has been deactivated.");
- }
- else
- {
- MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
- SendClientMessage(playerid, 0xFF8040FF, "The Message Timer has been activated.");
- }
- }
- return 1;
- }
- return 0;
- }
- dcmd_setline(playerid, params[])
- {
- new line, message[256];
- if(IsPlayerAdmin(playerid))
- {
- if(sscanf(params, "is[256]", line, message)) return SendClientMessage(playerid, 0xFF8040FF, "USAGE: /setline [line] [message]");
- if(strlen(message) > 256) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: Message too long!");
- if(line > MaxLines-1 || line < 0) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: This line doesn't exist!");
- if(line == 0) return SendClientMessage(playerid, 0xFF8040FF, "ERROR: If you want to change the message timer, use /messagetime!");
- format(Lines[line+1], 256, "%s\r\n", message);
- WriteFileLine();
- format(message, sizeof(message), "[LINE %i]{FF8040} has changed into: %s", line, message);
- SendClientMessage(playerid, 0xFFC68CFF, message);
- }
- return 1;
- }
- dcmd_messagetime(playerid, params[])
- {
- new string[53], time;
- if(IsPlayerAdmin(playerid))
- {
- if(sscanf(params, "i", time)) return SendClientMessage(playerid, 0xFF8040FF, "USAGE: /messagetime [seconds]");
- KillTimer(MessageTimerS);
- MessageTime = time;
- MessageTimerS = SetTimer("MessageTimer", MessageTime*1000, true);
- format(string, sizeof(string), "The messages will now display once every %i seconds", MessageTime);
- SendClientMessage(playerid, 0xFF8040FF, string);
- format(Lines[1], 256, "%i\r\n", time);
- WriteFileLine();
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment