Read pms with an admin level
#1

Hello, I would like to know how to do so that when a user send a pm , an admin Level 6 can read well, this is my code

CMD:PM(playerid,params [])
new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
if(sscanf(params, "us", id, str2))
{
SendClientMessage(playerid, 0xFF0000FF, "Usage: /pm <id> <message>");
return 1;
}
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Player no conectado");
if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: No puedes enviarte pm a ti mismo!");
{
GetPlayerName(playerid, Name1, sizeof(Name1));
GetPlayerName(id, Name2, sizeof(Name2));
format(str, sizeof(str), "PM enviado a %s(ID %d): %s", Name2, id, str2);PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
SendClientMessage(playerid, 0xFFFF00FF, str);
format(str, sizeof(str), "PM recibido de %s(ID %d): %s", Name1, playerid, str2);PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
SendClientMessage(id, 0xFFFF00FF, str);
}
return 1;
}


Ayudenme for the admin Level 6 bone ( Admin [ playerid ] < 6) can read it Thanks
Reply
#2

Add
pawn Код:
format(str, 144, "@PM %s(ID %d) -> %s(ID %d): %s", Name1, playerid, Name2, id, str2);
for(new i=0; i < MAX_PLAYERS; i++)
    if(IsPlayerConnected(i) && AdminLvl[i] > 5)
        SendClientMessage(i, -1, str);
Reply
#3

Quote:
Originally Posted by Jefff
Посмотреть сообщение
Add
pawn Код:
format(str, 144, "@PM %s(ID %d) -> %s(ID %d): %s", Name1, playerid, Name2, id, str2);
for(new i=0; i < MAX_PLAYERS; i++)
    if(IsPlayerConnected(i) && AdminLvl[i] > 5)
        SendClientMessage(i, -1, str);
Right Answer
Код:
format(str, 144, "@PM %s(ID %d) -> %s(ID %d): %s", Name1, playerid, Name2, id, str2);
for(new i=0; i < MAX_PLAYERS; i++)
	if(IsPlayerConnected(i) && AdminLvl[i] > 5)
		SendClientMessage(i, -1, str);
Add it and it may help you .
Reply
#4

Quote:
Originally Posted by Ultraz
Посмотреть сообщение
Right Answer
Код:
format(str, 144, "@PM %s(ID %d) -> %s(ID %d): %s", Name1, playerid, Name2, id, str2);
for(new i=0; i < MAX_PLAYERS; i++)
	if(IsPlayerConnected(i) && AdminLvl[i] > 5)
		SendClientMessage(i, -1, str);
Add it and it may help you .
What's the difference?
Reply
#5

There is no difference. He is leeching off other people's knowledge so he gets the credit. Only recommendation I can make on improving is to make use of GetPlayerPoolSize.
Reply
#6

What your command looks like with modifications.
You forget to "put a size" in sscanf. You have probably a warning every time you do the command.
You should take the foreach include for player's looping.
PHP код:
CMD:PM(playerid,params [])
{
    new 
str[256], str2[256], idName1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
    if(
sscanf(params"us[256]"idstr2))
    {
        
SendClientMessage(playerid0xFF0000FF"Usage: /pm <id> <message>");
        return 
1;
    }

    if(!
IsPlayerConnected(id)) 
        return 
SendClientMessage(playerid0xFF0000FF"ERROR: Player no conectado");
    if(
playerid == id
        return 
SendClientMessage(playerid0xFF0000FF"ERROR: No puedes enviarte pm a ti mismo!");

    
GetPlayerName(playeridName1sizeof(Name1));
    
GetPlayerName(idName2sizeof(Name2));
    
format(strsizeof(str), "PM enviado a %s(ID %d): %s"Name2idstr2);PlayerPlaySound(id10850.00.00.0);
    
SendClientMessage(playerid0xFFFF00FFstr);
    
format(strsizeof(str), "PM recibido de %s(ID %d): %s"Name1playeridstr2);PlayerPlaySound(playerid10850.00.00.0);
    
SendClientMessage(id0xFFFF00FFstr);

    
format(strsizeof(str), "@PM %s(ID %d) -> %s(ID %d): %s"Name1playeridName2idstr2);

    for(new 
iGetPlayerPoolSize(); ++)
    {
        if(
IsPlayerConnected(i) && AdminLvl[i] > 5)
        {
            
SendClientMessage(i0xFFFF00FFstr);
        }
    }
/* If you have foreach include.
    foreach(new i : Player)
    {
        if( AdminLvl[i] > 5)
        {
            SendClientMessage(i, 0xFFFF00FF, str);
        }
    }
*/
    
return 1;

Reply
#7

Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)