[Pedido] Comando /report explicado
#1

sem um pouco de pawno + tambem nao sou novato mas gostaria de saber como crio o comando /report
e explicando passo a passo se puder
Reply
#2

PHP код:
CMD:report(playerid,params[])
{
new 
id,motivo[100];
if(!
sscanf(params,"ds[100]",id,motivo))
{
if(
id || id GetMaxPlayers()) return false;
new 
str[256];//desculpe o exageiro hehehe
for(new GetMaxPlayers(); i++)
{
if(
IsPlayerConnected(i) && IsPlayerAdmin(i))
{
format(str,sizeof(str),"O id %d reportou o id %d por %s",playerid,id,motivo);
SendClientMessage(i,-1,str);
return 
1;//se der algo errado remova o return .
}
}
}
return 
1;

Fiz aqui rapidinho , tente entender.


Desculpe ai se alguem achar que nгo й a melhor maneira de loop hehehe
Reply
#3

pawn Код:
CMD:report(playerid,params[])
{
    new id, motivo[120], string[120];//id (armazenar o id do acusado) motivo (armazenar o motivo do report) string (armazenar a mensagem formatada para os admins)
    if(sscanf(params,"us",id,motivo)) return SendClientMessage(playerid, -1, "Uso correto: /report [id] [motivo]");//caso digitar o comando de forma errada
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "(Erro) Usuбrio nгo conectado");//caso o id do acusado for invбlido
    for(new i = 0; i < MAX_PLAYERS; i++)//loop para enviar a mensagem a todos players que forem admin
    {
        if(IsPlayerConnected(i) && IsPlayerAdmin)//enviarб mensagem aos Admins, troque pela sua variбvel admin
        {
            format(string,sizeof(string),"[Report] %d estб reportando %d. Motivo: %s",playerid,id,motivo);//formata a string para enviar a mensagem
            SendClientMessage(i, 0xFF0000, string);//enviarб a mensagem aos admin conectados da string acima
        }
        else return SendClientMessage(playerid, -1, "(Erro) Nгo hб nenhum Admin conectado, tente mais tarde");//retorna a uma mensagem ao player caso nгo houver admins online
    }
    SendClientMessage(playerid, -1, "O usuбrio foi reportado com sucesso!");//mensagem de confirmaзгo sobre o report
    return 1;
}
Reply
#4

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
pawn Код:
CMD:report(playerid,params[])
{
    new id, motivo[120], string[120];//id (armazenar o id do acusado) motivo (armazenar o motivo do report) string (armazenar a mensagem formatada para os admins)
    if(sscanf(params,"us",id,motivo)) return SendClientMessage(playerid, -1, "Uso correto: /report [id] [motivo]");//caso digitar o comando de forma errada
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "(Erro) Usuбrio nгo conectado");//caso o id do acusado for invбlido
    for(new i = 0; i < MAX_PLAYERS; i++)//loop para enviar a mensagem a todos players que forem admin
    {
        if(IsPlayerConnected(i) && IsPlayerAdmin)//enviarб mensagem aos Admins, troque pela sua variбvel admin
        {
            format(string,sizeof(string),"[Report] %d estб reportando %d. Motivo: %s",playerid,id,motivo);//formata a string para enviar a mensagem
            SendClientMessage(i, 0xFF0000, string);//enviarб a mensagem aos admin conectados da string acima
        }
        else return SendClientMessage(playerid, -1, "(Erro) Nгo hб nenhum Admin conectado, tente mais tarde");//retorna a uma mensagem ao player caso nгo houver admins online
    }
    SendClientMessage(playerid, -1, "O usuбrio foi reportado com sucesso!");//mensagem de confirmaзгo sobre o report
    return 1;
}
EDIT : fiz ao seu modo sim eu uso a include sscanf2 compilei e deu 2 erros :
pawn Код:
1є erro  : error 017: undefined symbol "params"
2є erro : error 076: syntax error in the expression, or invalid function call
Linha do erro 1:
pawn Код:
if(sscanf(params,"us",id,motivo)) return SendClientMessage(playerid, AMARELO, "Use: /Report [ID] [Motivo]");
Linha do erro 2:
pawn Код:
if(IsPlayerConnected(i) && IsPlayerAdmin)
como resolvo ??
Reply
#5

Quote:
Originally Posted by zuero
Посмотреть сообщение
EDIT : fiz ao seu modo sim eu uso a include sscanf2 compilei e deu 2 erros :
pawn Код:
1є erro  : error 017: undefined symbol "params"
2є erro : error 076: syntax error in the expression, or invalid function call
Linha do erro 1:
pawn Код:
if(sscanf(params,"us",id,motivo)) return SendClientMessage(playerid, AMARELO, "Use: /Report [ID] [Motivo]");
Linha do erro 2:
pawn Код:
if(IsPlayerConnected(i) && IsPlayerAdmin)
como resolvo ??
Erro 1: Falta zcmd: https://sampforum.blast.hk/showthread.php?tid=91354
Erro 2: Como disse acima, troque pela variбvel admin, procure por um comando admin e veja onde da a mensagem, pegue a mesma variбvel.
Reply
#6

Quote:
Originally Posted by Bruno13
Посмотреть сообщение
Erro 1: Falta zcmd: https://sampforum.blast.hk/showthread.php?tid=91354
Erro 2: Como disse acima, troque pela variбvel admin, procure por um comando admin e veja onde da a mensagem, pegue a mesma variбvel.
nao uso zcmd uso strcmp !!

o lance da variavel ja arrumei !! so falta o problema com o "params" !
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)