[Ajuda] Comando /am
#1

O problema й o seguinte, tenho este comando /am [Admin Message]. O player tem que colocar /am [texto] e o admin recebe a mensagem, e para responder, o admin escreve /am [ID] [Texto] . O problema й que o player recebe a mensagem do admin. Mas o admin nao recebe a mensagem do player... nao sei o que possa estar mal!
pawn Код:
CMD:am(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new toid, message[65];
        if(sscanf(params, "us[65]", toid, message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /[a]dmin[m]essage [playerid] [message]");
        if(strlen(message) > 65) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 65 characters.");
        if(!IsPlayerConnected(toid)) return SendClientMessageEx(playerid, COLOR_RED,"That player is not connected!");
        new string[128];
        format(string, sizeof(string), "Admin message from %s: %s", GetPlayerNameEx(playerid), message);
        SendClientMessageEx(AMReplyId[playerid], COLOR_GREEN, string);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[playerid][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin %s [%d] > %s [%d]: %s", GetPlayerNameEx(playerid), playerid, GetPlayerNameEx(toid), toid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
            }
        }
    }
    else
    {
        new message[80];
        if(sscanf(params, "s[80]", message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /am [message]");
        if(strlen(message) > 80) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 80 characters.");
        new string[128];
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[playerid][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin message from %s [%d]: %s", GetPlayerNameEx(playerid), playerid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
                AMReplyId[i] = playerid;
            }
        }
        format(string, sizeof(string), "Your message, %s, has been sent.", message);
        SendClientMessageEx(playerid, COLOR_GREEN, string);
        format(string, sizeof(string), "Player %s [%d] > Admins: %s", GetPlayerNameEx(playerid), playerid, message);
    }
    return 1;
}
Reply
#2

Vocк fez os loops mas nгo colocou certo.

pawn Код:
CMD:am(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new toid, message[65];
        if(sscanf(params, "us[65]", toid, message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /[a]dmin[m]essage [playerid] [message]");
        if(strlen(message) > 65) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 65 characters.");
        if(!IsPlayerConnected(toid)) return SendClientMessageEx(playerid, COLOR_RED,"That player is not connected!");
        new string[128];
        format(string, sizeof(string), "Admin message from %s: %s", GetPlayerNameEx(playerid), message);
        SendClientMessageEx(AMReplyId[playerid], COLOR_GREEN, string);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin %s [%d] > %s [%d]: %s", GetPlayerNameEx(i), i, GetPlayerNameEx(toid), toid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
            }
        }
    }
    else
    {
        new message[80];
        if(sscanf(params, "s[80]", message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /am [message]");
        if(strlen(message) > 80) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 80 characters.");
        new string[128];
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin message from %s [%d]: %s", GetPlayerNameEx(playerid), playerid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
                AMReplyId[i] = i;
            }
        }
        format(string, sizeof(string), "Your message, %s, has been sent.", message);
        SendClientMessageEx(playerid, COLOR_GREEN, string);
        format(string, sizeof(string), "Player %s [%d] > Admins: %s", GetPlayerNameEx(i), i, message);
    }
    return 1;
}
Reply
#3

Funcionou! Obrigado!
Reply
#4

Quote:
Originally Posted by xCR7
Посмотреть сообщение
Vocк fez os loops mas nгo colocou certo.

pawn Код:
CMD:am(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new toid, message[65];
        if(sscanf(params, "us[65]", toid, message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /[a]dmin[m]essage [playerid] [message]");
        if(strlen(message) > 65) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 65 characters.");
        if(!IsPlayerConnected(toid)) return SendClientMessageEx(playerid, COLOR_RED,"That player is not connected!");
        new string[128];
        format(string, sizeof(string), "Admin message from %s: %s", GetPlayerNameEx(playerid), message);
        SendClientMessageEx(AMReplyId[playerid], COLOR_GREEN, string);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin %s [%d] > %s [%d]: %s", GetPlayerNameEx(i), i, GetPlayerNameEx(toid), toid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
            }
        }
    }
    else
    {
        new message[80];
        if(sscanf(params, "s[80]", message)) return SendClientMessageEx(playerid, COLOR_WHITE,"USAGE: /am [message]");
        if(strlen(message) > 80) return SendClientMessageEx(playerid, COLOR_RED,"Your message cannot be longer than 80 characters.");
        new string[128];
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pAdmin] >= 1)
            {
                format(string, sizeof(string), "Admin message from %s [%d]: %s", GetPlayerNameEx(playerid), playerid, message);
                SendClientMessageEx(i,COLOR_GREEN,string);
                AMReplyId[i] = i;
            }
        }
        format(string, sizeof(string), "Your message, %s, has been sent.", message);
        SendClientMessageEx(playerid, COLOR_GREEN, string);
        format(string, sizeof(string), "Player %s [%d] > Admins: %s", GetPlayerNameEx(i), i, message);
    }
    return 1;
}
Funcionou, mas poderia ter optimizado o cуdigo, sem necessidade de usar vбrias linhas.
PHP код:
CMD:am(playeridparams[])
{
    if(
PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1"[ ERRO ] {FF0000}Vocк nгo tem acesso a este comando!");
    new 
toidmessage[65], string[128], aname[2][MAX_PLAYER_NAME];
    if(
sscanf(params"us[65]"toidmessage)) return SendClientMessage(playerid, -1,"[ ERRO ] {FF0000}USE: /am [playerid] [mensagem]");
    if(
strlen(message) > 65) return SendClientMessage(playerid, -1,"[ ERRO ] {FF0000}Sua mensagem sу deve conter atй no mбximo 65 caracteres!");
    if(!
IsPlayerConnected(toid)) return SendClientMessage(playerid, -1,"[ ERRO ] {FF0000}Este player nгo estб conectado!");
    
GetPlayerName(playeridaname[0], MAX_PLAYER_NAME);
    
GetPlayerName(toidaname[1], MAX_PLAYER_NAME);
    
format(stringsizeof(string), "* Admin %s diz: %s"aname[0], message);
    
SendClientMessage(AMReplyId[playerid], COLOR_GREENstring);
    for(new 
0i<MAX_PLAYERSi++)
    {
        if(
PlayerInfo[i][pAdmin] >= 1)
        {
            
format(stringsizeof(string), "Admin %s [%d] > %s [%d]: %s"aname[0], ianame[1], toidmessage);
            
SendClientMessage(i0x008080AAstring);
        }
    }
    
format(stringsizeof(string), "[ INFO ] {00FF00}Sua mensagem %s, foi enviada com sucesso."message);
    
SendClientMessage(playerid, -1string);
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)