Need small help with PM -
Sc0pion - 13.03.2015
Fixed!
Re: Need small help with PM -
ATGOggy - 13.03.2015
PHP код:
CMD:pm(playerid,params[])
{
new targetid, msg[128];
if(sscanf(params, "us[128]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /pm (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 pm yourself! ]");
new string[128], 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("PM.log", io_append);
format(string, sizeof(string), "%s to %s: %s\r\n", Name1, Name2, msg);
fwrite(file, string);
fclose(file);
return 1;
}
They won't be shown in server logs because it is not a chat message, it is just a command.
Re: Need small help with PM -
Nabster - 13.03.2015
Код:
CMD:pm(playerid,params[])
{
new targetid, msg[128];
if(sscanf(params, "us[128]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /pm (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 pm yourself! ]");
new string[128], 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);
MessageLog(msg);
return 1;
}
Код:
forward MessageLog(msg[]);
public MessageLog(msg[])
{
new entry[256];
format(entry,sizeof(entry),"%s\r\n",msg);
new File:rFile;
rFile = fopen("PM.txt",io_append);
fwrite(rFile,entry);
fclose(rFile);
}
Not tested but i think this will work
Re: Need small help with PM -
Sc0pion - 13.03.2015
Fixed!
Re: Need small help with PM -
ATGOggy - 13.03.2015
Try adding my code again because I edited it.
Re: Need small help with PM -
Sc0pion - 13.03.2015
Fixed!
Re: Need small help with PM -
ATGOggy - 13.03.2015
This will store date and time:
PHP код:
CMD:pm(playerid,params[])
{
new targetid, msg[128];
if(sscanf(params, "us[128]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /pm (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 pm yourself! ]");
new string[128], 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("PM.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;
}
If you want to change the directory, just change this line:
PHP код:
new File:file=fopen("PM.log", io_append);
to:
PHP код:
new File:file=fopen("/database/PM.log", io_append);
or anything.
Re: Need small help with PM -
Sc0pion - 13.03.2015
Fixed!
Re: Need small help with PM -
Nabster - 13.03.2015
use gettime and getdate
Re: Need small help with PM -
ATGOggy - 13.03.2015
Fixed:
PHP код:
CMD:pm(playerid,params[])
{
new targetid, msg[128];
if(sscanf(params, "us[128]", targetid, msg)) return SendClientMessage(playerid, LIGHTBLUE,"[ USAGE: /pm (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 pm yourself! ]");
new string[128], 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("PM.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;
}
The title of this function in wiki
https://sampwiki.blast.hk/wiki/Getdate is 'Getdate' but the real one is 'getdate' and 'gettime'.