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;
}
//
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
vocк esta desbanindo a si mesmo, e a string nick
PHP код:
|
Usando sscanf em zcmd
https://sampforum.blast.hk/showthread.php?tid=277842 |
To vendo aqui mбs vocк pode me explica porque o banir nгo tб funcionando?
|
#include <sscanf2>
Esse seu cуdigo ta muito nada haver, vocк ta formatando duas vezes a string arquivo,o resultado nгo vai sair como espera.
|
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;
}
format(Arquivo, 64, "Banidos/%s.ini", nick);//Desbanindo Ip
format(Arquivo, 64, "Banidos/%s.ini", Pegarip(playerid));//Desbanindo Nick