SA-MP Forums Archive
[Ajuda] Erro ao comando de kickar - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Erro ao comando de kickar (/showthread.php?tid=507861)



Erro ao comando de kickar - williamgato - 19.04.2014

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...


Re: Erro ao comando de kickar - Wellington1999 - 19.04.2014

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;


Re: Erro ao comando de kickar - williamgato - 19.04.2014

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


Re: Erro ao comando de kickar - WLSF - 19.04.2014

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.


Re: Erro ao comando de kickar - williamgato - 19.04.2014

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


Re: Erro ao comando de kickar - WLSF - 19.04.2014

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.


Re: Erro ao comando de kickar - williamgato - 19.04.2014

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 >.<