[AJUDA]/ban
#1

galera como colok um comando de /ban com senha tipo pra usar o cmd pricisa de uma determinada senha!
Ou outro cmd sem ser /ban?
Reply
#2

Confuso essa sua dъvida.
Reply
#3

TIpo mano Colok o cmd /ban que exija uma senha saca? tipo dijitar /ban [ID] [MOTIVO] ai aparecer uma caixa de dialugo pedindo uma senha! como colocar?
Reply
#4

Sua Ideia й boa, para seguranзa do seu servidor, com banimentos, mais й muito complicado para fazer este tipo de comando, com essas utilidades.
Reply
#5

hm vlws tentei colocar com esse "COD":
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/comando", true) == 0)
    {
        ShowPlayerDialog(playerid, 468, DIALOG_STYLE_INPUT, "Senha", "Insira a senha abaixo:", "Enviar", "Cancelar");
        return 1;
    }
    return 0;
}
Reply
#6

kkkkk vc fez o mais bбsico do comando, agr tem q fazer a parte dificil, que define a senha, quem pode usar..... mas ja й um comeзo (:
Reply
#7

pawn Код:
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

native sscanf(const data[], const format[], {Float,_}:...);
native unformat(const data[], const format[], {Float,_}:...) = sscanf;

#define DialogInput(%0,%1,%2,%3,%4,%5)                                          ShowPlayerDialog( %0, %1, DIALOG_STYLE_INPUT, %2, %3, %4, %5 )
#define SENHAD (1)

new SENHA[60]; //Ajuste o tamanho mбximo de sua senha.
SENHA = "1234" //Ajuste qual serб a sua senha (1234 й a senha padrгo).

new BanID[MAX_PLAYERS]=-1;

public OnPlayerCommandText(playerid, cmdtext[])
{
    dcmd(ban, 3, cmdtext);
    return 0;
}

dcmd_ban(playerid, params[])
{
        new id;
        if(sscanf(params,"i",id)) return SendClientMessage(playerid,0x808080FF,"USO: /ban [id]");
        BanID[playerid]=id;
        DialogInput(playerid, SENHAD, "Senha", "Vocк precisa inserir a senha de administraзгo!", "Ok", "Cancelar");
        return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case SENHAD:
        {
            if(response!=1)
            {
                //Fechando dialog ao clicar cancelar
            }
            else{
                if(!strlen(inputtext)) DialogInput(playerid, SENHAD, "Senha Invбlida", "Vocк precisa inserir a senha correta!", "Ok", "Cancelar");
                if(!strcmp(inputtext, SENHA, true)){
                    new msg[128];
                    format(msg,sizeof(msg),"Jogador %d banido por %d.",BanID[playerid],playerid)
                    SendClientMessageToAll(0x808080FF,msg);
                    Ban(BanID[playerid]);
                    BanID[playerid]=-1;
                }
                else DialogInput(playerid, SENHAD, "Senha Invбlida", "Vocк precisa inserir a senha correta!", "Ok", "Cancelar");
            }
        }
    }
    return 1;
}
Fiz bem simples para vocк poder editar a vontade e ficar fбcil de adicionar ao seu script, tambйm usei DCMD por nгo precisar de um include, o define necessбrio tб lб em cima, ainda coloquei meus defines de dialog pra te ajudar nos prуximos scripts.

Para usar й sу regular a senha no inнcio do script.

Se depois quiser que o motivo fique gravado em um log, por exemplo, crie uma variбvel para o motivo (string), adicione no sscanf e use printf. (Conforme o tempo vocк vai entender o que eu quis dizer aqui)

Boa sorte.
Reply
#8

PHP код:
#define Senha "0123456789" // Senha
public OnPlayerCommandText(playeridcmdtext[])
{
    if(!
strcmp(cmdtext"/comando"true))
    {
        
ShowPlayerDialog(playerid,666DIALOG_STYLE_INPUT"Senha""Insira a senha abaixo:""Enviar""Cancelar");
        return 
1;
    }
    return 
0;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
        case 
666:
        {
            if((
response) && (!strcmp(Senha,inputtext))
            {
                
ShowPlayerDialog(playerid,667,DIALOG_STYLE_INPUT,"ID do player","Digite o id do player","OK","Cancelar");
            }    
        }
        case 
667:
        {
            if((
response) && (strlen(inputtext) > 0))
            {
                
SetPVarInt(playerid,"BanId",strval(inputtext));
                
ShowPlayerDialog(playerid,668,DIALOG_STYLE_INPUT,"Motivo","Digite o motivo","Banir","Cancelar");
            }
        }
        case 
668:
        {
            if((
response) && (strlen(inputtext) > 0))
            {
                new 
sStr[2][128];
                
GetPlayerName(playerid,sStr[0],23);
                
GetPlayerName(GetPVarInt(playerid,"BanId"),sStr[1],23);
                
format(sStr[0],128,"%s baniu %s por %s",sStr[0],sStr[1],inputtext);
                
SendClientMessageToAll(-1,sStr);
                
Ban(GetPVarInt(playerid,"BanId"));
            }
        }
    }
    return 
true;

Fiz rapidinho aqui
Reply
#9

. editado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)