[Ajuda] Comando /Ban ID
#1

Como faзo um cmd pra digitar o ID do play num cmd ? ex: /ban ID
sei que й basico. mas nгo sei fazer e n achei nenhum tutorial '-'
Reply
#2

pawn Код:
if(strcmp(cmd,"/banir", true) == 0) // comando
{
    if(IsPlayerAdmin(playeri)) //admin por rcon
    {
        tmp = strtok(cmdtext,idx); // noзгo bбsica do comando
        new outro = strval(tmp); // outro player, poderia ser outra coisa qualquer, tipo pra comando de arma ou de skin ...
        Ban(outro);
        return 1;
        }
    }
Reply
#3

Aconselho o uso de sscanf + zcmd / y_cmd em seus comandos...

pawn Код:
CMD:ban( playerid, params[] )
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo й um admin.");
    new gPid, gRson[128];
    if(sscanf(params, "us[128]", gPid, gRson)) SendClientMessage(playerid, -1, "/ban [playerid] [reason]");
    else if(gPid == INVALID_PLAYER_ID) SendClientMessage(playerid, -1, "Jogador nгo encontrado.");
    else BanEx(gPid, gRson);
    return 1;
}
Reply
#4

Larceny me ensina a usar isso, sou o ъnico noob que usa o normal ainda? e____e
Reply
#5

https://sampforum.blast.hk/showthread.php?tid=281631
Reply
#6

Vamos lб... Uma explicaзгo bem bбsica para vocк entender um pouco de zcmd + sscanf.

ZCMD:
Й um processador de comandos muito mais rбpido que o normal e o segundo mais rбpido atualmente. (De acordo com os testes feito por ******)

Modo de usar:
O Modo de usar й bastante simples! Veja sу:
pawn Код:
CMD:meucomando(playerid, params[])
{
    SendClientMessage(playerid, -1, "Este й um comando de teste para demonstrar como fazer um comando em ZCMD.");
    return 1;
}
Comandos em ZCMD nгo ficam dentro de callbacks, como a OnPlayerCommandText e sim ficam soltos pelo gamemode. (Onde vocк definir, como callbacks[publics].)

Agora o sscanf aparenta, sу aparenta, ser mais complicado, mas nгo й.

sscanf:

Veja esta funзгo simples de sscanf:
pawn Код:
if (sscanf(params, "ui", giveplayerid, amount))
{
    return SendClientMessage(playerid, 0xFF0000AA, "Uso: /dardinheiro <playerid/name> <quantia>");
}
O objetivo dela й quando um jogador digitar o comando /dardinheiro verificar se ele digitou os parвmetros playerid/name e quantia, caso nгo, retorna a mensagem.

Vejamos isto em um comando completo:

pawn Код:
CMD:dardinheiro(playerid, params[])
{
    new giveplayerid, amount; // Variaveis para armazenar os valores abaixo.
    if (sscanf(params, "ui", giveplayerid, amount))//u = user | i = integer (Veja o tуpico do sscanf para entender melhor.)
    {
        return SendClientMessage(playerid, 0xFF0000AA, "Uso: /dardinheiro <playerid/name> <quantia>");
    }
    SendClientMessage(playerid, -1, "Vocк deu... dinheiro para alguйm.");
    SendClientMessage(giveplayerid, -1, "Vocк recebeu dinheiro de alguйm.");
    GivePlayerMoney(giveplayerid, amount);
    return 1;
}
E й isso... uma explicaзгo bem rбpida, se vocк tiver dъvidas sу perguntar!
Veja este tуpico: https://sampforum.blast.hk/showthread.php?tid=120356
Reply
#7

Usando SSCANF:


https://sampforum.blast.hk/showthread.php?tid=277842
Reply
#8

usa sscanf + zcmd

CMD:ban(playerid, params[])
{
if(AdminInfo[playerid][Admin] < 4) return SendClientMessage(playerid, -1, "ERRO: Nivel de Admin Insuficiente, Apenas [4+]"); new causa[128];
if(sscanf(params, "ds[128]", id, causa)) return SendClientMessage(playerid , -1, "ERRO USE: /ban [ID] [MOTIVO]");
format(string2, sizeof(string2), "O Admin:[%s] Baniu o Player :%s Motivo:%s",GetPlayerNameEx(playerid),GetPlayerName Ex(id),causa);
SendClientMessageToAll(-1, string2);
Ban(id);
return 1;
}

vamos la vc pergunto como por [ID] pra poder utilizar no id do cara usando sscanf + zcmd

if(sscanf(params,"ds[128]", "d" pega o id essas coisa, s pra texto ke vai ser nosso causa mais se kiser 1 comando sу com id й sу utilizar o d simples nao?
Reply
#9

Prefiro sscanf + cmdtext:

pawn Код:
if(strcmp("/ban", cmdtext, true, 4) == 0)
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo й um admin.");
    new ID, motivo[128];
    if(sscanf(cmdtext, "us[128]", ID, motivo)) SendClientMessage(playerid, -1, "/ban [playerid] [motivo]");
    else if(ID == INVALID_PLAYER_ID) SendClientMessage(playerid, -1, "Jogador nгo encontrado.");
    else BanEx(ID, motivo);
    return 1;
}
Reply
#10

Quote:
Originally Posted by Joker_OutLock
Посмотреть сообщение
Prefiro sscanf + cmdtext:

pawn Код:
if(strcmp("/ban", cmdtext, true, 4) == 0)
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo й um admin.");
    new ID, motivo[128];
    if(sscanf(cmdtext, "us[128]", ID, motivo)) SendClientMessage(playerid, -1, "/ban [playerid] [motivo]");
    else if(ID == INVALID_PLAYER_ID) SendClientMessage(playerid, -1, "Jogador nгo encontrado.");
    else BanEx(ID, motivo);
    return 1;
}
eu uso este comando mais estб me banindo, n ta banindo quem eu coloco o ID!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)