[Ajuda] Erro ao comando de kickar
#1

pawn Код:
CMD:kick(playerid,params[])
{
if(pAdmin[playerid] < 4)return SendClientMessage(playerid,Vermelho,"Voce nao tem permissao para isso");

new kickid, motivo;
if(sscanf(params,"ui",kickid,motivo)) return SendClientMessage(playerid,Vermelho,"Use: /kick [id] [motivo]");
if(!IsPlayerConnected(kickid)) return SendClientMessage(playerid,Vermelho,"Jogador nao conectador");

if(pAdmin[playerid] >= 4 && IsPlayerAdmin(playerid) == 1){
new string[100], aname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,aname,MAX_PLAYER_NAME);
GetPlayerName(kickid,pname,MAX_PLAYER_NAME);
format(string,sizeof(string),"-|O Admin: %s id:(%d) (>>) Kickou o jogador %s id(%d) pelo motivo:[%s]-|",aname,playerid,pname,kickid,motivo);
SendClientMessageToAll(-1,string);
new sstring[100];
format(sstring,sizeof(sstring),"-|Voce foi kickado pelo admin: %s id(%d) pelo seguinte motivo: %s-|",aname,playerid,motivo);
ShowPlayerDialog(kickid,8025,DIALOG_STYLE_MSGBOX,"Banido", sstring, "OK", "");
Kick(kickid);
}
return 1;
}
nao sei, deve ser a ma organizaзao do comando, mas quando eu o uso,nao funciona , aparece mensagem de outro "if" por exemplo /kick 5 Palavreado indesejado ae aparece Use:/kick [id] [motivo]
outro exemplo se eu digito /kick 0 aaaa e aparece a mesma coisa... alguem pode me ajudar , e se for referente a organizaзao me dizer aonde esta o erro, pois todo comando que eu crio esta bugando desse jeito...
Reply
#2

pawn Код:
CMD:kick(playerid,params[])
{
    if(pAdmin[playerid] < 4)return SendClientMessage(playerid,Vermelho,"Voce nao tem permissao para isso");

    new kickid, motivo[64];
    if(sscanf(params,"us[64]",kickid,motivo)) return SendClientMessage(playerid,Vermelho,"Use: /kick [id] [motivo]");
    if(!IsPlayerConnected(kickid)) return SendClientMessage(playerid,Vermelho,"Jogador nao conectador");

    if(pAdmin[playerid] >= 4 && IsPlayerAdmin(playerid) == 1){
        new string[100], aname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
        GetPlayerName(playerid,aname,MAX_PLAYER_NAME);
        GetPlayerName(kickid,pname,MAX_PLAYER_NAME);
        format(string,sizeof(string),"-|O Admin: %s id:(%d) (>>) Kickou o jogador %s id(%d) pelo motivo:[%s]-|",aname,playerid,pname,kickid,motivo);
        SendClientMessageToAll(-1,string);
        new sstring[100];
        format(sstring,sizeof(sstring),"-|Voce foi kickado pelo admin: %s id(%d) pelo seguinte motivo: %s-|",aname,playerid,motivo);
        ShowPlayerDialog(kickid,8025,DIALOG_STYLE_MSGBOX,"Banido", sstring, "OK", "");
        Kick(kickid);
    }
    return 1;
}
Aquele comando sу funcionaria com numeros no motivo;
Reply
#3

Quote:
Originally Posted by Wellington1999
Посмотреть сообщение
pawn Код:
CMD:kick(playerid,params[])
{
    if(pAdmin[playerid] < 4)return SendClientMessage(playerid,Vermelho,"Voce nao tem permissao para isso");

    new kickid, motivo[64];
    if(sscanf(params,"us[64]",kickid,motivo)) return SendClientMessage(playerid,Vermelho,"Use: /kick [id] [motivo]");
    if(!IsPlayerConnected(kickid)) return SendClientMessage(playerid,Vermelho,"Jogador nao conectador");

    if(pAdmin[playerid] >= 4 && IsPlayerAdmin(playerid) == 1){
        new string[100], aname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
        GetPlayerName(playerid,aname,MAX_PLAYER_NAME);
        GetPlayerName(kickid,pname,MAX_PLAYER_NAME);
        format(string,sizeof(string),"-|O Admin: %s id:(%d) (>>) Kickou o jogador %s id(%d) pelo motivo:[%s]-|",aname,playerid,pname,kickid,motivo);
        SendClientMessageToAll(-1,string);
        new sstring[100];
        format(sstring,sizeof(sstring),"-|Voce foi kickado pelo admin: %s id(%d) pelo seguinte motivo: %s-|",aname,playerid,motivo);
        ShowPlayerDialog(kickid,8025,DIALOG_STYLE_MSGBOX,"Banido", sstring, "OK", "");
        Kick(kickid);
    }
    return 1;
}
Aquele comando sу funcionaria com numeros no motivo;
agora todos funcionam com seu devido erro
ex: /kick [id nao conectado] [motivo]= jogador nao conectado
/kick [id] = uise /kick [id] [motiv]
mas, quando digito o comando certo , nao aparece funзao alguma
Reply
#4

Refaz o comando.

O processamento de strings no sscanf й dado por

pawn Код:
new str[128];
sscanf(params, "s[128]", str);
Vocк precisa usar uma string normal(vetor de caracteres), e no sscanf vocк tem que dizer que й uma string 's' e o tamanho dela... '[128]'

Boa sorte.
Reply
#5

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Refaz o comando.

O processamento de strings no sscanf й dado por

pawn Код:
new str[128];
sscanf(params, "s[128]", str);
Boa sorte.
no caso entao eu colocaria
pawn Код:
sscanf(params, "us[128]", kickid,motivo);
porque ja estao adicionados como new...porem mesmo assim o comando nao executa funзao quando acertado
o sscanf esta funcionando corretamente agora, mas o comando nao esta, eu fiz como na resposta acima da minha.
o comando esta assim
pawn Код:
CMD:kick(playerid,params[])
{
if(pAdmin[playerid] < 4)return SendClientMessage(playerid,Vermelho,"Voce nao tem permissao para isso");

new kickid, motivo;
if(sscanf(params,"us[64]",kickid,motivo)) return SendClientMessage(playerid,Vermelho,"Use: /kick [id] [motivo]");
if(!IsPlayerConnected(kickid)) return SendClientMessage(playerid,Vermelho,"Jogador nao conectador");

if(pAdmin[playerid] >= 4 && IsPlayerAdmin(playerid) == 1){
new string[100], aname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,aname,MAX_PLAYER_NAME);
GetPlayerName(kickid,pname,MAX_PLAYER_NAME);
format(string,sizeof(string),"-|O Admin: %s id:(%d) (>>) Kickou o jogador %s id(%d) pelo motivo:[%s]-|",aname,playerid,pname,kickid,motivo);
SendClientMessageToAll(-1,string);
new sstring[100];
format(sstring,sizeof(sstring),"-|Voce foi kickado pelo admin: %s id(%d) pelo seguinte motivo: %s-|",aname,playerid,motivo);
ShowPlayerDialog(kickid,8025,DIALOG_STYLE_MSGBOX,"Banido", sstring, "OK", "");
Kick(kickid);
}
return 1;
}
porem o problema eh que se eu digito o comando exatamente como deve ser nao aparece nada, fica branco o chat e nao exerce nenhuma funзao, eu acreditava que bugaria todos os outros comandos, mas nao buga , penso eu que esteja bugando algo em
pawn Код:
if(pAdmin[playerid] >= 4 && IsPlayerAdmin(playerid) == 1){
new string[100], aname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,aname,MAX_PLAYER_NAME);
GetPlayerName(kickid,pname,MAX_PLAYER_NAME);
format(string,sizeof(string),"-|O Admin: %s id:(%d) (>>) Kickou o jogador %s id(%d) pelo motivo:[%s]-|",aname,playerid,pname,kickid,motivo);
SendClientMessageToAll(-1,string);
new sstring[100];
format(sstring,sizeof(sstring),"-|Voce foi kickado pelo admin: %s id(%d) pelo seguinte motivo: %s-|",aname,playerid,motivo);
ShowPlayerDialog(kickid,8025,DIALOG_STYLE_MSGBOX,"Banido", sstring, "OK", "");
Kick(kickid);
por isso nao exerce funзao
Reply
#6

tu nгo criou uma string pra motivo, ela tб considerada como inteiro.

pawn Код:
new motivo;
Ela tem que ser declarada como string.

pawn Код:
new motivo[tamanho];
Jб falei, refaзa o comando, й melhor do que ficar procurando os erros.

Vocк vai acertar.
Reply
#7

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
tu nгo criou uma string pra motivo, ela tб considerada como inteiro.

pawn Код:
new motivo;
Ela tem que ser declarada como string.

pawn Код:
new motivo[tamanho];
Jб falei, refaзa o comando, й melhor do que ficar procurando os erros.

Vocк vai acertar.
ok vou refazer
@EDIT: refiz e acertei kkkk, valeu cara voce e mesmo demais REP++ pros 2 >.<
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)