28.07.2011, 22:56
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?
Ou outro cmd sem ser /ban?
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; }
#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;
}
#define Senha "0123456789" // Senha
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/comando", true))
{
ShowPlayerDialog(playerid,666, DIALOG_STYLE_INPUT, "Senha", "Insira a senha abaixo:", "Enviar", "Cancelar");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
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;
}