[Ajuda] Comando nгo vai
#1

Entгo amigos eu adaptei um sistema de ban no meu gamemode mбs quando digito o comando ele aparece
a mensagem dizendo da forma que devo digitar mбs eu digitei certo
PHP код:
CMD:desban(playerid, params[])
{
    new 
nick[24], Arquivo[64];
    if(
sscanf(params, "s[24]", nick)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /desban [playerid/Nick]");
    
format(Arquivo, 64, "Banidos/%s.ini", nick);//Desbanindo Ip
    
format(Arquivo, 64, "Banidos/%s.ini", Pegarip(playerid));//Desbanindo Nick
    
if(!DOF2_FileExists(Arquivo)) return SCM(playerid, COLOR_RED,""TAG_ERROR" Estб conta nгo se encontra banida.");
    if(
DOF2_FileExists(Arquivo))
    {
         
DOF2_RemoveFile(Arquivo);
        
SCM(playerid, COLOR_PRINCIPAL, ""TAG_INFO" Conta retirada da lista de bans com sucesso.");
    }
    return 
1;
}
//
CMD:agendarban(playerid, params[])//Faz uma agenda de ban para o player que sair do servidor, vc agenda e quando ele logar de novo serб banido automaticamente.
{
    new 
nick[16], Dias, Motivo[50];
    if(
sscanf(params,"s[16]ds[50]", nick, Dias, Motivo)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /agendarban [playerid/Nick] [Days] [Motivo]");
    
format(DString, sizeof(DString), "{FFFFF0}%s Agendou o ban de {FF4040}%s{FFFFF0} por: {FF4040}%d {FFFFF0}dias | Motivo: {FF4040}%s", Nome(playerid), nick, Dias, Motivo);
    
SendClientMessageToAll(COLOR_RED, DString);
    new 
Arquivo[64];
    
format(Arquivo, sizeof(Arquivo), "BansAgendados/%s.ini", nick);
    
DOF2_CreateFile(Arquivo);
    
Dias = ConvertDays(Dias);
    
DOF2_SetString(Arquivo, "Nick", nick);
       
DOF2_SetString(Arquivo, "Admin", Nome(playerid));
    
DOF2_SetString(Arquivo, "Motivo", Motivo);
     
DOF2_SetInt(Arquivo, "Dias", Dias);
     
DOF2_SaveFile();
    return 
1;
}
//
CMD:tempban(playerid, params[])
{
    new 
nick, Dias, Motivo[50];
    if(
sscanf(params, "uds[50]", nick, Dias, Motivo)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /tempban [playerid/Nick] [Days] [Motivo]");
    if(!
IsPlayerConnected(nick)) return SCM(playerid, COLOR_RED, ""TAG_ERROR" Este id nгo estб conectado.");
    
format(DString, sizeof(DString), ""TAG_SERVER" {FFFFF0}%s Baniu {FF4040}%s{FFFFF0} por: {FF4040}%d{FFFFF0} dias | Motivo: {FF4040}%s", Nome(playerid), Nome(nick), Dias, Motivo);
    
SendClientMessageToAll(COLOR_RED, DString);
    
DTempBan(nick, playerid, Dias, Motivo);
    return 
1;
}
//
CMD:banirip(playerid, params[])
{
    new 
ip[16], motivo[50], Arquivo[64];
    if(
sscanf(params, "s[16]s[50]", ip, motivo)) return SendClientMessage(playerid, COLOR_GREY, ""TAG_USOCORRETO" /banirip [IP] [Motivo]");
     
format(DString, sizeof(DString), ""TAG_INFO" {FFFFF0}%s Bloqueou a entrada do ip: {FF4040}%s{FFFFF0} | Motivo: {FF4040}%s.", Nome(playerid), ip, motivo);
    
SendClientMessageToAll(COLOR_RED, DString);
     
format(Arquivo, 64, "Banidos/%s.ini", ip);//Banindo Ip
    
DOF2_CreateFile(Arquivo);
    
DOF2_SetString(Arquivo, "Admin", Nome(playerid));
    
DOF2_SetString(Arquivo, "Motivo", motivo);
    
DOF2_SaveFile();
    return 
1;
}
//
CMD:ban(playerid, params[])
{
    new 
id, Motivo[50];
    if(
sscanf(params, "us[50]", id, Motivo)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /ban [playerid/Nick] [Motivo]");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, ""TAG_ERROR" Este id nгo estб conectado.");
       
format(DString, sizeof(DString), ""TAG_INFO" {FF4040}%s{FFFFF0} Teve sua conta banida permantentemente pelo administrador: {FF4040}%s{FFFFF0} | Motivo: {FF4040}%s.", Nome(id), Nome(playerid), Motivo);
    
SendClientMessageToAll(COLOR_RED, DString);
    
DBan(id, playerid, Motivo);
    return 
1;
}
// 
nenhum desses que funcionar.
Reply
#2

vocк esta desbanindo a si mesmo, e a string nick
PHP код:
    if(sscanf(params, "s[24]", nick)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /desban [playerid/Nick]"); 
    
format(Arquivo, 64, "Banidos/%s.ini", nick);//Desbanindo Ip 
    
format(Arquivo, 64, "Banidos/%s.ini", Pegarip(playerid));//Desbanindo Nick 
Reply
#3

Quote:
Originally Posted by RazorGuigo
Посмотреть сообщение
vocк esta desbanindo a si mesmo, e a string nick
PHP код:
    if(sscanf(params, "s[24]", nick)) return SCM(playerid, COLOR_GREY, ""TAG_USOCORRETO" /desban [playerid/Nick]"); 
    
format(Arquivo, 64, "Banidos/%s.ini", nick);//Desbanindo Ip 
    
format(Arquivo, 64, "Banidos/%s.ini", Pegarip(playerid));//Desbanindo Nick 
Eu tentei me banir mбs nгo foi nгo й so o desban
Reply
#4

Quote:
Originally Posted by BrGabrielBr
Посмотреть сообщение
Eu tentei me banir mбs nгo foi nгo й so o desban
Usando sscanf em zcmd
https://sampforum.blast.hk/showthread.php?tid=277842
Reply
#5

Quote:
Originally Posted by RazorGuigo
Посмотреть сообщение
To vendo aqui mбs vocк pode me explica porque o banir nгo tб funcionando?
Reply
#6

Quote:
Originally Posted by BrGabrielBr
Посмотреть сообщение
To vendo aqui mбs vocк pode me explica porque o banir nгo tб funcionando?
porque vocк estб usando sscanf errado, lк o tutorial como-se utiliza
Reply
#7

PHP код:
#include <sscanf2> 
Atualiza o sscanf+plugins

https://github.com/maddinat0r/sscanf/releases
Reply
#8

Esse seu cуdigo ta muito nada haver, vocк ta formatando duas vezes a string arquivo,o resultado nгo vai sair como espera.
Reply
#9

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Esse seu cуdigo ta muito nada haver, vocк ta formatando duas vezes a string arquivo,o resultado nгo vai sair como espera.
Nгo й meu peguei uma base no Search aqui mesmo й fui arrumando umas coisas nele tirando bugs. e ainda permanece alguns bugs
Reply
#10

PHP код:
CMD:ban(playerid, params[])
{
    new 
id, Motivo[50], Str[86];
    if(
sscanf(params, "us", id, Motivo)) return SendClientMessage(playerid, COLOR_GREY, "/ban [playerid/Nick] [Motivo]");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "Este id nгo estб conectado.");
    
format(Str, sizeof(Str), "{FF4040}%s{FFFFF0} Teve sua conta banida permantentemente pelo administrador: {FF4040}%s{FFFFF0} | Motivo: {FF4040}%s.", Nome(id), Nome(playerid), Motivo);
    
SendClientMessageToAll(COLOR_RED, Str);
    
//DBan(id, playerid, Motivo); ??
    
format(Str, sizeof(Str), "Banidos/%s.ini", Nome(id));//Formata nome/local do arquivo de ban!
    
DOF2_CreateFile(Str);//Cria o arquivo de banimento!
    
DOF2_SetString(Str, "Admin", Nome(playerid));//Admin quem baniu...
    
DOF2_SetString(Str, "Motivo", Motivo); //Motivo do ban
    
DOF2_SaveFile();//Salva!
    
Kick(id);//Desconecta o jogador banido!
    
return 1;
}
CMD:desban(playerid, params[])
{
    new 
nick[24], Str[64];
    if(
sscanf(params, "s", nick)) return SendClientMessage(playerid, COLOR_GREY, "/desban [Nick]");
    
format(Str, sizeof(Str), "Banidos/%s.ini", nick);//Formata local/nome aquivo de banimento
    
if(DOF2_FileExists(Srt))//Caso esteja banido
    
{
        
DOF2_RemoveFile(Str);//Deleta o arquivo de ban
        
format(Str, sizeof(Str)"Jogador %s desbanido!", nick);// Formata Mensagem
        
SendClientMessage(playerid, COLOR_PRINCIPAL, Str);//Exibe mensagem
    
}
    else
//Caso nгo haja arquvio do banimento
    
{
        
format(Str, sizeof(Str)"O Jogador %s nгo se encontra banido!!!", nick);//formata mensagem
        
SendClientMessage(playerid, -1, Str);//Exibe mensagem
    
}
    return 
1;
}
//Extra.... (Exemplo de como impedir o login de usuarios banidos!)
public OnPlayerConnect(playerid)
{
    new 
Str[64];
    
format(Str, sizeof(Str),"Banidos/%s.ini", Nome(playerid));//Nome /local arquivo de banimento
    
if(DOF2_FileExists(Str))//Cajo haja
    
{
        
format(Str, sizeof(Str),"Vocк estб banido deste servidor! Motivo: %s", DOF2_GetString(Str, "Motivo"));//Mensagem a ser exibida
        
SendClientMessage(playerid, -1, Str);
        
Kick(playerid);
    }
    
//Demais funзхes, inserir abaixo!
    
return 1;
} 
Testa ae ou pega como exemplo!
Embora seu codido contenha coisas meio nada haver!
Como isso
PHP код:
format(Arquivo, 64, "Banidos/%s.ini", nick);//Desbanindo Ip 
format(Arquivo, 64, "Banidos/%s.ini", Pegarip(playerid));//Desbanindo Nick 
Em questгo do comando nгo estar indo
acredito que seja porque vocк esta usando assim: sscanf(params,"us[50]",id, motivo)
para um teste tente utilizar sscanf(params,"us",id, motivo)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)