Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include zcmd
- #include sscanf2
- #include foreach
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_ORANGE 0xFF9900AA
- #define DIALOG_PM 3378
- #define SOURCE_NONE 0
- #define SOURCE_PM_COMMAND 1
- #define SOURCE_SCORE_BOARD 2
- new PMTogged[MAX_PLAYERS];
- new BlockedBy[MAX_PLAYERS] = 999;
- forward SendRCONAlert(color, string[]);
- public SendRCONAlert(color, string[])
- {
- foreach(Player, i)
- {
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, color, string);
- }
- }
- }
- CMD:nopm(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only administrators can toggle recieveing private messages.");
- if(!PMTogged[playerid])
- {
- PMTogged[playerid] = 1;
- SendClientMessage(playerid, -1, "You will no longer accept private messages.");
- }
- else
- {
- PMTogged[playerid] = 0;
- SendClientMessage(playerid, -1, "You will now accept private messages..");
- }
- return 1;
- }
- CMD:nopmid(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Only administrators can toggle recieveing private messages.");
- new giveplayerid;
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, -1, "USAGE: [/nopmid] [id]");
- if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1, "The playerID/Part-Of-Name Entered is not connected.");
- if(BlockedBy[giveplayerid] != playerid) return Block(giveplayerid, playerid);
- if(BlockedBy[giveplayerid] == playerid) return Unblock(giveplayerid, playerid);
- return 1;
- }
- CMD:pm(playerid, params[])
- {
- new giveplayerid, string[128], message[128];
- if(sscanf(params, "us[81]", giveplayerid, message)) return SendClientMessage(playerid, -1, "USAGE: /pm [playerid] [message]");
- if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1, "You have specified an invalid playerid/part-of-name. Please try again");
- if(PMTogged[giveplayerid] == 1) return SendClientMessage(playerid, -1, "That player currently has disabled private messaging.");
- if(BlockedBy[playerid] == giveplayerid) return SendClientMessage(playerid, -1, "That player has disabled recieving private messages from you.");
- format(string, sizeof(string), "PM From %s(%d): %s", GetPlayersName(playerid), playerid, message);
- SendClientMessage(giveplayerid, COLOR_ORANGE, string);
- format(string, sizeof(string), "PM To %s(%d): %s", GetPlayersName(giveplayerid), giveplayerid, message);
- SendClientMessage(playerid, COLOR_ORANGE, string);
- format(string, sizeof(string), "AdmWarn: %s(%d) has PMed %s(%d) with message: %s.", GetPlayersName(playerid), playerid, GetPlayersName(giveplayerid), giveplayerid, message);
- SendRCONAlert(COLOR_YELLOW, string);
- CallLocalFunction("OnPlayerPM", "uus", playerid, giveplayerid, message, SOURCE_PM_COMMAND);
- // LogPM(string);
- return 1;
- }
- stock Block(giveplayerid, playerid)
- {
- BlockedBy[giveplayerid] = playerid;
- SendClientMessage(playerid, -1, "You have blocked that player from Private Messaging you!");
- return 1;
- }
- stock Unblock(giveplayerid, playerid)
- {
- BlockedBy[giveplayerid] = 999;
- SendClientMessage(playerid, -1, "You have unblocked that player from Private Messaging you!");
- return 1;
- }
- stock GetPlayersName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- if(PMTogged[clickedplayerid] == 1) return SendClientMessage(playerid, -1, "That player isn't accepting any private messages.");
- if(BlockedBy[playerid] == clickedplayerid) return SendClientMessage(playerid, -1, "That player has blocked you from private messaging them.");
- SetPVarInt(playerid, "PMBox", clickedplayerid);
- ShowPlayerDialog(playerid,DIALOG_PM, DIALOG_STYLE_INPUT, "Private Messaging", "Please enter the text to send to the player.", "Send", "Cancel");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_PM)
- {
- if(response)
- {
- if(isnull(inputtext)) return ShowPlayerDialog(playerid,DIALOG_PM,DIALOG_STYLE_INPUT,"Private Messaging", "Please enter the text to send to the player.", "Send", "Cancel");
- new message[128];
- format(message, sizeof(message), "%s", inputtext);
- new string[128];
- new giveplayerid = GetPVarInt(playerid, "PMBox");
- format(string, sizeof(string), "PM From %s(%d): %s", GetPlayersName(playerid), playerid, message);
- SendClientMessage(giveplayerid, COLOR_ORANGE, string);
- format(string, sizeof(string), "PM To %s(%d): %s", GetPlayersName(giveplayerid), giveplayerid, message);
- SendClientMessage(playerid, COLOR_ORANGE, string);
- format(string, sizeof(string), "AdmWarn: %s(%d) has PMed %s(%d) with message: %s.", GetPlayersName(playerid), playerid, GetPlayersName(giveplayerid), giveplayerid, message);
- SendRCONAlert(COLOR_YELLOW, string);
- CallLocalFunction("OnPlayerPM", "uus", playerid, giveplayerid, message, SOURCE_SCORE_BOARD);
- SetPVarInt(playerid, "PMBox", INVALID_PLAYER_ID);
- }
- else
- {
- SendClientMessage(playerid, -1, "You have stopped yourself from sending the message.");
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerConnect(playerid)
- {
- SetPVarInt(playerid, "PMBox", INVALID_PLAYER_ID);
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- DeletePVar(playerid, "PMBox");
- return 1;
- }
- forward OnPlayerPM(playerid, giveplayerid, message, source=SOURCE_NONE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement