14.03.2015, 16:06
(
Последний раз редактировалось Sc0pion; 16.03.2015 в 18:27.
)
Fixed!
new LastPM[MAX_PLAYERS] = -1;
CMD:privatemessage(playerid,params[])
{
new targetid, msg[256];
if(sscanf(params, "us[256]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /privatemessage (name/id) (Message) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(pm[targetid] == false) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't send private message to yourself! ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
LastPM[targetid] = playerid;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:reply(playerid,params[])
{
new targetid = LastPM[playerid], msg[256];
if(sscanf(params, "s[256]", msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /privatemessage (name/id) (Message) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(pm[targetid] == false) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't send private message to yourself! ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
LastPM[targetid] = playerid;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:blockprivatemessage(playerid, params[])
{
if(pm[playerid] == false)
{
pm[playerid] = true;
SendClientMessage(playerid, -1,"{A90202}[ You have turned on receiving private messages, you will receive private messages now! ]");
}
else
{
pm[playerid] = false;
SendClientMessage(playerid, -1,"{A90202}[ You have turned off receiving private messages, you will no longer receive private messages! ]");
}
return 1;
}
new LastPM[MAX_PLAYERS] = -1, bool:Ignored[MAX_PLAYERS][MAX_PLAYERS];
CMD:privatemessage(playerid,params[])
{
new targetid, msg[256];
if(sscanf(params, "us[256]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /privatemessage (name/id) (Message) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(pm[targetid] == false) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(Ignored[targetid][playerid]) return SendClientMessage(playerid, red, "[ ERROR: Player has blocked in-comming private messages from you! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't send private message to yourself! ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
LastPM[targetid] = playerid;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:reply(playerid,params[])
{
new targetid = LastPM[playerid], msg[256];
if(sscanf(params, "s[256]", msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /reply (Message) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(pm[targetid] == false) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(Ignored[targetid][playerid]) return SendClientMessage(playerid, red, "[ ERROR: Player has blocked in-comming private messages from you! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't send private message to yourself! ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
LastPM[targetid] = playerid;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:blockprivatemessage(playerid, params[])
{
if(pm[playerid] == false)
{
pm[playerid] = true;
SendClientMessage(playerid, -1,"{A90202}[ You have turned on receiving private messages, you will receive private messages now! ]");
}
else
{
pm[playerid] = false;
SendClientMessage(playerid, -1,"{A90202}[ You have turned off receiving private messages, you will no longer receive private messages! ]");
}
return 1;
}
CMD:ignore(playerid, params[])
{
new targetid, str[128], pName[MAX_PLAYER_NAME];
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, LIGHTBLUE, "[ USAGE: /blockpm (name/id)");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "[ ERROR: Invalid Player ID. ]");
GetPlayerName(targetid, pName, sizeof(pName));
if(Ignored[playerid][targetid])
{
blockPM[playerid][targetid] = false;
format(str, sizeof(str), "Up Comming Private Message from %s Unblocked!", pName);
SendClientMessage(playerid, -1, str);
}
else if(!Ignored[playerid][targetid])
{
blockPM[playerid][targetid] = true;
format(str, sizeof(str), "Up Comming Private Message from %s blocked!", pName);
SendClientMessage(playerid, -1, str);
}
return 1;
}
new lastSender[MAX_PLAYERS] = -1, bool:IsIgnored[MAX_PLAYERS][MAX_PLAYERS];
// lastSender is the variable that we'll use to get the last player's ID that has messaged someone.
// IsIgnored[the player who is ignored][the player that has ignored the other player].
CMD:privatemessage(playerid,params[])
{
new targetid, msg[256];
if(sscanf(params, "us[256]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /privatemessage (name/id) (Message) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(!pm[targetid]) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(IsIgnored[playerid][targetid]) return SendClientMessage(playerid, red, "[ ERROR: This player ignores you! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't send private message to yourself! ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
lastSender[targetid] =playerid;
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:reply(playerid, params[])
{
new targetid = lastSender[playerid], msg[256];
if(sscanf(params, "us[256]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /privatemessage (name/id) (Message) ]");
if(!IsPlayerConnected(targetid) && targetid != -1) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(!pm[targetid]) return SendClientMessage(playerid, red,"[ ERROR: Player has blocked private messages! ]");
if(IsIgnored[playerid][targetid]) return SendClientMessage(playerid, red, "[ ERROR: This player ignores you! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You can't reply yourself! ]");
if(targetid == -1) return SendClientMessage(playerid, red, "[ ERROR: No one has sent you a message recently, you cannot reply. ]");
new string[256], Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(targetid, Name2, sizeof(Name2));
format(string, sizeof(string),"Private Message from %s(%d): %s", Name1, playerid, msg);
SendClientMessage(targetid,COLOR_PINK, string);
format(string, sizeof(string),"Private Message sent to %s(%d): %s", Name2, targetid, msg);
SendClientMessage(playerid,COLOR_PINK, string);
lastSender[targetid] =playerid;
new File:file=fopen("/Database/Logs/PrivateMessageChatLog.log", io_append), hour, minute, second, year, month, day;
gettime(hour, minute, second);
getdate(year, month, day);
format(string, sizeof(string), "[%d/%d/%d | %d:%d:%d] [ %s to %s: %s ]\r\n", day, month, year, hour, minute, second, Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
CMD:blockprivatemessage(playerid, params[])
{
if(!pm[playerid])
{
pm[playerid] = true;
SendClientMessage(playerid, -1,"{A90202}[ You have turned on receiving private messages, you will receive private messages now! ]");
}
else if(pm[playerid])
{
pm[playerid] = false;
SendClientMessage(playerid, -1,"{A90202}[ You have turned off receiving private messages, you will no longer receive private messages! ]");
}
return 1;
}
CMD:ignore(playerid, params[])
{
new targetid, playerName[MAX_PLAYER_NAME];
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /ignore (name/id) ]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, red, "[ ERROR: Player is not online! ]");
if(targetid == playerid) return SendClientMessage(playerid, red, "[ ERROR: You cannot apply this to yourself! ]");
new string[128];
GetPlayerName(targetid, playerName, sizeof(playerName));
if(IsIgnored[targetid][playerid])
{
format(string, sizeof(string), "Messages coming from %s have been unblocked.", playerName);
SendClientMessage(playerid, red, string);
IsIgnored[targetid][playerid] =false;
}
else if(!IsIgnored[targetid][playerid])
{
format(string, sizeof(string), "Messages coming from %s have been blocked.", playerName);
SendClientMessage(playerid, red, string);
IsIgnored[targetid][playerid] =true;
}
return 1;
}