PM message is sending the Sender's ID -
(_AcE_) - 27.07.2012
Hey guys, today I was editing and testing my script, and I noticed that when I use my PM command, it sends the person who is sending the message, his ID with the message to the receiver.
How may I fix this? I have tried deleting the parameters but that didn't seem to help.
PS: Please don't add an sscanf solution, I have no idea on how to install the plugin and don't intend spending time to install, then learn how to use.
pawn Код:
dcmd_pm(playerid,params[])
{
new id,string[256],pName[MAX_PLAYER_NAME],pName2[MAX_PLAYER_NAME];
//id = strval(params);
if(strlen(params) == 0)
{
SendClientMessage(playerid, COLOR_ERROR,"ERROR: /pm [id][message]");
PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
}
if(GetPVarInt(id,"NoPM") == 1)
{
SendClientMessage(playerid, COLOR_ERROR,"ERROR: Currently, that player's PM is set to: OFF!");
PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
}
GetPlayerName(playerid,pName,sizeof(pName));
GetPlayerName(id,pName2,sizeof(pName2));
format(string,sizeof(string),"PM from %s: %s",pName,params);
SendClientMessage(id,0xFFFF00FF,string);
PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
format(string,sizeof(string),"PM sent to %s: %s",pName2,params);
SendClientMessage(playerid,0xF2A337FF,string);
SetPVarInt(id,"LastID",playerid);
return 1;
}
Re: PM message is sending the Sender's ID -
Vince - 27.07.2012
Params contains everything that's typed behind the command. That includes the id. I recommend using sscanf.
Re: PM message is sending the Sender's ID -
(_AcE_) - 27.07.2012
Ok, well how can I fix this using sscanf? I have no idea on how to install, but I guess I could learn, or find a tutorial.
Re: PM message is sending the Sender's ID -
Kakioshe22 - 27.07.2012
PHP код:
dcmd_pm(playerid,params[])
{
if(GetPVarInt(id,"NoPM") == 0)
{
new id,string[256],pName[MAX_PLAYER_NAME],pName2[MAX_PLAYER_NAME], pMessage;
if( sscanf( params, "us[126]" id, pMessage )) return SendClientMessage( playerid, -1, "Usage: /pm [ID] (message)" );
if( id == playerid ) return SendClientMessage( playerid, -1, "You cant PM yourselfe!");
if( IsPlayerConnected( id )
{
GetPlayerName(playerid, pName, sizeof(pName));
GetPlayerName(id, pName2, sizeof(pName2));
format(string, sizeof( string ), "PM From %s(%d): %s", pName, playerid, pMessage);
SendClientMessage(id, -1, string);
PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
format(string, sizeof( string ), "PM To %s(%d): %s", pName2, id, pMessage);
SendClientMessage(playerid, -1, string);
SetPVarInt(id,"LastID",playerid);
}else return SendClientMessage(playerid, -1, "That player is not connected!");
else
{
SendClientMessage(playerid, COLOR_ERROR,"ERROR: Currently, that player's PM is set to: OFF!");
PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
}
return 1;
}
Re: PM message is sending the Sender's ID -
Dubya - 27.07.2012
here's a SSCANF version.
pawn Код:
dcmd_pm(playerid,params[])
{
new id,string[256],pName[MAX_PLAYER_NAME],pName2[MAX_PLAYER_NAME], sendmessage[64];
if(!sscanf(params, "us[64]", id, params[2]);
{
if(GetPVarInt(id,"NoPM") == 1)
{
SendClientMessage(playerid, COLOR_ERROR,"ERROR: Currently, that player's PM is set to: OFF!");
PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
return 1;
}
if(!IsPlayerConnected(id)
{
SendClientMessage(playerid, COLOR_ERROR,"ERROR: That ID is not connected.");
return 1;
}
GetPlayerName(playerid ,pName, sizeof(pName));
GetPlayerName(id, pName2, sizeof(pName2));
format(string, sizeof(string), "PM from %s: %s", pName, params[2]);
SendClientMessage(id, 0xFFFF00FF, string);
PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
format(string, sizeof(string), "PM sent to %s: %s", pName2, params[2]);
SendClientMessage(playerid, 0xF2A337FF, string);
SetPVarInt(id, "LastID", playerid);
}
else
{
SendClientMessage(playerid, -1, "USAGE: /PM [PlayerID/PartOfName] [Message]");
}
return 1;
}
Not tested... - May or May not work.
Re: PM message is sending the Sender's ID -
Kakioshe22 - 27.07.2012
Dubya your script wont work.
Basicly player will be able to PM himselfe.
°________°