[Ajuda] Sistema de Ban (DOF2, SSCANF, ZCMD)
#1

Olб Pessoal boa tarde.
Gostaria de pedir para vocкs ajuda em como criar um sistema de ban em DOF2, com auxilio do SSCANF e ZCMD.

Vou apresentar a vocкs o que eu jб fiz ate o momento.

1є Defini as pastas:
PHP код:
#define PASTA_BAN                "Ban/%s.ini"
#define PASTA_IPBAN             "IPBan/%f.ini"
#define PASTA_AGENDABAN     "AgendaBan/%s.ini" 
2є Criei a Enum bBanido:
PHP код:
enum bBanido
{
    
bMotivo,
    
bAdmin,
    
bData,
    
bHora,
    
bIp
}; 
3є Criei uma a New para armazenar as informaзхes:
PHP код:
new playerBan[MAX_PLAYERS][bBanido];
new 
motivo
4є Criei o Comando, ams nгo sei terminar:
PHP код:
CMD:ban(playerid,params[])
{
    if(!
IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playeridVERMELHO"AdmCmd: {FFFFFF}Vocк precisa ser Admin para usar este comando!");
    if(
sscanf(params"ud"IDmotivo)) return SendClientMessage(playeridCINZA"AdmCmd: Use /ban [ID] [motivo]");
    if(!
IsPlayerConnected(ID)) return SendClientMessage(playeridBRANCO"[ERRO] ID invalido");
    new 
file[50];
    
format(filesizeof(file), PASTA_BANPlayerName(idBan));
    if(!
DOF2_FileExists(file))
    {
        
//Nгo Sei Seguir daqui em diante...
      
}
    return 
1;

Como podem ver eu consigo fazer bastante coisinhas, mas nгo sei como armazenar os seguintes dados agora:

PHP код:
 Admin que Baniu
 
Motivo
 
IP
 
Dia
 
Data
 
Hora 
E se possнvel darem uma ajudinha tambйm com o de Agendar o ban, estou tentando pensar em uma maneira de desenvolve-lo.

Desde jб agradeзo a ajuda de todos.
Fico no aguardo.

Atenciosamente,
Matheus Dorado
Reply
#2

PHP код:
CMD:ban(playerid,params[]) 

    if(!
IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1)
        return 
SendClientMessage(playeridVERMELHO"AdmCmd: {FFFFFF}Vocк precisa ser Admin para usar este comando!");
    new 
file[35], idmotivo[75], data[35], ip[16];
    if(
sscanf(params"us[75]"IDmotivo))
        return 
SendClientMessage(playeridCINZA"AdmCmd: Use /ban [ID] [motivo]"); 
    if(!
IsPlayerConnected(ID))
        return 
SendClientMessage(playeridBRANCO"[ERRO] ID invalido");
    
format(filesizeof(file), PASTA_BANPlayerName(id)); 
    if(!
DOF2_FileExists(file))
    { 
        
DOF2_CreateFile(file); // cria o arquivo nomedojogador.ini
        
DOF2_SetString(file"Nome"PlayerName(id)); // Salva o nome do jogador banido no arquivo .ini
        
DOF2_SetString(file"Admin"PlayerName(playerid)); //Salva o nome do admin no arquivo .ini
        
GetPlayerIp(idip16);// pega o ip do jogador banido.
        
DOF2_SetString(file"ip"ip); // Salva o ip do jogador banido no arquivo .ini
        
        
gettime(horaminuto), getdate(ano,mes,dia); // pega hora, minuto, pega dia,mes,ano do servidor
        
format(datesizeof(date), "%02d/%02d/%d/ бs %02d:%02d"diamesanohoraminutos);// formata a data e hora.
        
DOF2_SetString(file"data"date); // Salva a data no arquivo .ini
        
DOF2_SetString(file"Motivo"motivo); // Salva o motivo no arquivo .ini.
    

    return 
1

Reply
#3

Obrigado SammyJ, eu tentei aqui, mas agora apareceu esses erros.
eu criei uma New:

PHP код:
new datehora
Mas continua dando erro:

PHP код:
C:\Users\Mateus\Desktop\Server\gamemodes\TESTE.pwn(1219) : error 017undefined symbol "hora"
C:\Users\Mateus\Desktop\Server\gamemodes\TESTE.pwn(1220) : error 017undefined symbol "date"
C:\Users\Mateus\Desktop\Server\gamemodes\TESTE.pwn(1220) : error 017undefined symbol "date"
C:\Users\Mateus\Desktop\Server\gamemodes\TESTE.pwn(1220) : error 029invalid expressionassumed zero
C
:\Users\Mateus\Desktop\Server\gamemodes\TESTE.pwn(1220) : fatal error 107too many error messages on one line 
Por gentileza poderia me dizer a razгo de dar este erro?

Atenciosamente,
Matheus Dorado
Reply
#4

Quase Resolvido kkk
Consegui resolver o Erro, ficou assim:

PHP код:
CMD:ban(playerid,params[])
{
    if(!
IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playeridVERMELHO"AdmCmd: {FFFFFF}Vocк precisa ser Admin para usar este comando!");
    new 
file[35], idmotivo[75], ip[16];
    if(
sscanf(params"us[75]"IDmotivo)) return SendClientMessage(playeridCINZA"AdmCmd: Use /ban [ID] [motivo]");
    if(!
IsPlayerConnected(ID)) return SendClientMessage(playeridBRANCO"[ERRO] ID invalido");
    
format(filesizeof(file), PASTA_BANPlayerName(id));
    if(!
DOF2_FileExists(file))
    {
        new 
GetHora[15], GetData[15];
        
DOF2_CreateFile(file); // cria o arquivo nomedojogador.ini
        
DOF2_SetString(file"Admin"PlayerName(playerid)); //Salva o nome do admin no arquivo .ini
        
GetPlayerIp(idip16);// pega o ip do jogador banido.
        
DOF2_SetString(file"IP"ip); // Salva o ip do jogador banido no arquivo .ini
        
getdate(AnoMesDia);
        
gettime(HoraMinutoSegundo);
        
format(GetData15"%d/%d/%d"DiaMesAno);
        
format(GetHora15"%d:%d:%d"HoraMinutoSegundo);
        
DOF2_SetString(file"Data"GetData); // Salva a data no arquivo .ini
        
DOF2_SetString(file"Hora"GetHora);
        
DOF2_SetString(file"Motivo"motivo); // Salva o motivo no arquivo .ini.
        
DOF2_SaveFile();
    }
    new 
GetIp[16];
    
GetPlayerIp(idGetIp16);
    
format(filesizeof(file), PASTA_IPBANGetIp);
    if(!
DOF2_FileExists(file))
    {
        new 
GetHora[15], GetData[15];
        
DOF2_CreateFile(file); // cria o arquivo ipdojogador.ini
        
DOF2_SetString(file"Nome"PlayerName(id)); // Salva o nome do jogador banido no arquivo .ini
        
DOF2_SetString(file"Admin"PlayerName(playerid)); //Salva o nome do admin no arquivo .ini
        
getdate(AnoMesDia);
        
gettime(HoraMinutoSegundo);
        
format(GetData15"%d/%d/%d"DiaMesAno);
        
format(GetHora15"%d:%d:%d"HoraMinutoSegundo);
        
DOF2_SetString(file"Data"GetData); // Salva a data no arquivo .ini
        
DOF2_SetString(file"Hora"GetHora);
        
DOF2_SetString(file"Motivo"motivo); // Salva o motivo no arquivo .ini.
        
DOF2_SaveFile();
    }
    
KickBan(playerid);
    return 
1;

Porem agora compila tudo certinho, mas nгo salva o arquivo nas pastas e nem kika o player :/
O que pode ser?
Obrigado pela ajuda e fico no aguardo.

Att,
Matheus Dorado
Reply
#5

Nгo sei se estou certo, mas
Код:
KickBan(playerid)
Nгo deveria ser:
Код:
KickBan(id)
?
Reply
#6

Quote:
Originally Posted by Diggie
Посмотреть сообщение
Nгo sei se estou certo, mas
Код:
KickBan(playerid)
Nгo deveria ser:
Код:
KickBan(id)
?
Exatamente
Reply
#7

Bom dia pessoal tudo bem?
Certo eu arrumei para KickBan(id), porem quando compilo nгo da nenhum erro, mas no jogo o comando de ban nгo funciona, ele nгo kika nem da ban no player alguйm sabe me dizer o motivo?
Reply
#8

PHP код:
CMD:ban(playerid,params[]) 

    if(!
IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playeridVERMELHO"AdmCmd: {FFFFFF}Vocк precisa ser Admin para usar este comando!"); 
    new 
file[35], idmotivo[75], ip[16]; 
    if(
sscanf(params"us[75]"IDmotivo)) return SendClientMessage(playeridCINZA"AdmCmd: Use /ban [ID] [motivo]"); 
    if(!
IsPlayerConnected(ID)) return SendClientMessage(playeridBRANCO"[ERRO] ID invalido"); 
    
format(filesizeof(file), PASTA_BANPlayerName(id)); 
    if(!
DOF2_FileExists(file)) 
    { 
        new 
GetHora[15], GetData[15]; 
        
DOF2_CreateFile(file); // cria o arquivo nomedojogador.ini 
        
DOF2_SetString(file"Admin"PlayerName(playerid)); //Salva o nome do admin no arquivo .ini 
        
GetPlayerIp(idip16);// pega o ip do jogador banido. 
        
DOF2_SetString(file"IP"ip); // Salva o ip do jogador banido no arquivo .ini 
        
getdate(AnoMesDia); 
        
gettime(HoraMinutoSegundo); 
        
format(GetData15"%d/%d/%d"DiaMesAno); 
        
format(GetHora15"%d:%d:%d"HoraMinutoSegundo); 
        
DOF2_SetString(file"Data"GetData); // Salva a data no arquivo .ini 
        
DOF2_SetString(file"Hora"GetHora); 
        
DOF2_SetString(file"Motivo"motivo); // Salva o motivo no arquivo .ini. 
        
DOF2_SaveFile(); 
    } 
    new 
GetIp[16]; 
    
GetPlayerIp(idGetIp16); 
    
format(filesizeof(file), PASTA_IPBANGetIp); 
    if(!
DOF2_FileExists(file)) 
    { 
        new 
GetHora[15], GetData[15]; 
        
DOF2_CreateFile(file); // cria o arquivo ipdojogador.ini 
        
DOF2_SetString(file"Nome"PlayerName(id)); // Salva o nome do jogador banido no arquivo .ini 
        
DOF2_SetString(file"Admin"PlayerName(playerid)); //Salva o nome do admin no arquivo .ini 
        
getdate(AnoMesDia); 
        
gettime(HoraMinutoSegundo); 
        
format(GetData15"%d/%d/%d"DiaMesAno); 
        
format(GetHora15"%d:%d:%d"HoraMinutoSegundo); 
        
DOF2_SetString(file"Data"GetData); // Salva a data no arquivo .ini 
        
DOF2_SetString(file"Hora"GetHora); 
        
DOF2_SetString(file"Motivo"motivo); // Salva o motivo no arquivo .ini. 
        
DOF2_SaveFile(); 
    } 
    
Kick(id); 
    return 
1

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)