Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #define C_USAGE "{FFEA00}"
- #define C_ERROR "{FF0000}"
- #define C_PM "{AEFF00}"
- #define C_ADMIN "{C0C0C0}"
- stock SendAdminPM(text[])
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, -1, text);
- }
- }
- }
- return 1;
- }
- new ReadPMs;
- new Blocks[MAX_PLAYERS][MAX_PLAYERS];
- new LastPM[MAX_PLAYERS];
- new FirstPM[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n-------------------------------------------");
- print("nMessage by Nick\nAdvanced messaging system!");
- print("-------------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- FirstPM[playerid] = 1;
- LastPM[playerid] = 0;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- FirstPM[playerid] = 0;
- LastPM[playerid] = 0;
- for(new i; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(LastPM[i] == playerid)
- {
- LastPM[i] = -1;
- }
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(text[0] == '@' && LastPM[playerid] > -1)
- {
- new pmer[200];
- format(pmer, 200, "%d %s", LastPM[playerid], text[1]);
- cmd_pm(playerid, pmer);
- return 0;
- }
- return 1;
- }
- CMD:pm(playerid, params[])
- {
- new pid, message[128], string[144], pname[24], pname2[24];
- if(sscanf(params, "us[128]", pid, message)) return SendClientMessage(playerid, -1, C_USAGE"Usage: /pm [playerid/name] [message]");
- if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, C_ERROR"Error: That player isn't connected!");
- if(Blocks[playerid][pid] == 1) return SendClientMessage(playerid, -1, C_ERROR"Error: You've blocked this player. Use /unblock to unblock them.");
- if(Blocks[pid][playerid] == 1) return SendClientMessage(playerid, -1, C_ERROR"Error: You are blocked from sending messages to this player.");
- GetPlayerName(playerid, pname, 24);
- GetPlayerName(pid, pname2, 24);
- format(string, sizeof(string), C_PM"PM to %s: {FFFFFF}%s", pname2, message);
- SendClientMessage(playerid, -1, string);
- format(string, sizeof(string), C_PM"PM from %s: {FFFFFF}%s", pname, message);
- SendClientMessage(pid, -1, string);
- if(ReadPMs == 1)
- {
- format(string, sizeof(string), C_ADMIN"[Read PMs] PM from %s to %s: %s", pname, pname2, message);
- SendAdminPM(string);
- }
- LastPM[pid] = playerid;
- switch(FirstPM[pid])
- {
- case 1: SendClientMessage(playerid, -1, "TIP: Use '@' followed by your message to reply to your last PM!");
- }
- FirstPM[pid] = 0;
- return 1;
- }
- CMD:readpms(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, C_ERROR"Error: You don't have permission to use this command.");
- ReadPMs = ( ReadPMs == 1 ) ? 0 : 1;
- switch(ReadPMs)
- {
- case 0: SendClientMessage(playerid, -1, "Read PMs disabled.");
- case 1: SendClientMessage(playerid, -1, "Read PMs enabled.");
- }
- return 1;
- }
- CMD:block(playerid, params[])
- {
- new pid, pname2[24], string[144];
- if(sscanf(params, "u", pid)) return SendClientMessage(playerid, -1, C_USAGE"Usage: /block [playerid/name]");
- if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, C_ERROR"Error: That player isn't connected!");
- if(Blocks[playerid][pid] == 1) return SendClientMessage(playerid, -1, C_ERROR"Error: You've already blocked this player. Use /unblock to unblock them.");
- if(IsPlayerAdmin(pid)) return SendClientMessage(playerid, -1, C_ERROR"Error: You cannot block an administrator!");
- Blocks[playerid][pid] = 1;
- GetPlayerName(pid, pname2, 24);
- format(string, sizeof(string), "You have blocked %s.", pname2);
- SendClientMessage(playerid, -1, string);
- return 1;
- }
- CMD:unblock(playerid, params[])
- {
- new pid, pname2[24], string[144];
- if(sscanf(params, "u", pid)) return SendClientMessage(playerid, -1, C_USAGE"Usage: /unblock [playerid/name]");
- if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, C_ERROR"Error: That player isn't connected!");
- if(Blocks[playerid][pid] == 0) return SendClientMessage(playerid, -1, C_ERROR"Error: You haven't blocked this player.");
- Blocks[playerid][pid] = 0;
- GetPlayerName(pid, pname2, 24);
- format(string, sizeof(string), "You have unblocked %s.", pname2);
- SendClientMessage(playerid, -1, string);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement