CMD:banir(playerid, params[])
{
new id, Motivo[100];
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /ban ID Motivo");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
kBan(id, Motivo);
kBanIP(id);
Kick(id);
new Log [ ] = "Banidos/Logs/Ban.log";
format(String ,sizeof(String),"O administrador %s baniu: %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
WriteLog(Log, String);
return 1;
}
CMD:kickar(playerid, params[])
{
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
new jogador, motivo[74], string[128];
if(sscanf(params, "us[74]", jogador, motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /kick | ID | | MOTIVO | ");
if(!IsPlayerConnected(jogador) || playerid == jogador) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado! Ou й vocк mesmo.");
format(string, sizeof string, "[STAFF]: O administrador %s kickou %s ( Motivo: %s )", pname(playerid), pname(jogador), motivo);
SendClientMessageToAll(Cor_Admin, string);
return TryEx(playerid, jogador, 2, "");
}
Tente resolver isso salvando o jogador antes da funзгo Kick no comando de banir e/ou kickar.
|
Cheque as funзхes kBan e kBanIP, veja se na OnPlayerDisconnect estб salvando os dados mesmo se o motivo for por kick (reason).
|
BanTemp[playerid] = 0;
format(String, sizeof(String), "Banidos/Banidos Temp/%s.ini", PegarNome(playerid));
if(DOF2_FileExists(String))
{
BanTemp[playerid] = DOF2_GetInt(String, "Dias");
if(VerifyExpiredDays(BanTemp[playerid]))
{
SendClientMessage(playerid, COR_SUCESSO, "[ ~ ]: O seu tempo de banimento acabou.");
BanTemp[playerid] = 0;
format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
if(DOF2_FileExists(String))
{
DOF2_RemoveFile(String);
}
}
else
{
SendFormatMessage(playerid, C_VERMELHO, "[ ~ ]: Vocк ainda estб banido. Faltam %s.", ConvertToDays(BanTemp[playerid]));
Kick(playerid);
return 1;
}
return 1;
}
format(String, sizeof(String), "Banidos/%s.ini", PegarNome(playerid));
if(DOF2_FileExists(String))
{
format(String, sizeof(String), "Esta conta estб banida deste servidor\n\n{FAAC02}Administrador: {FFFFFF}%s\n{FAAC02}Motivo: {FFFFFF}%s\n{FAAC02}Dia: {FFFFFF}%s\n{FAAC02}Horario: {FFFFFF}%s\n\n{FF0000}Caso vocк ache que isto й um engano, visite o nosso fуrum.", DOF2_GetString(String, "Admin"), DOF2_GetString(String, "Motivo"), DOF2_GetString(String, "Data"), DOF2_GetString(String, "Horario"));
ShowPlayerDialog(playerid, DialogBan, DIALOG_STYLE_MSGBOX, "********* Informaзхes de banimento", String, "Sair", "");
Kick(playerid);
return 1;
}
format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
if(DOF2_FileExists(String))
{
SendFormatMessage(playerid, Vermelho, "[ ~ ]: O IP %s estб banido do servidor.", PegarIP(playerid));
Kick(playerid);
return 1;
}
stock kBan(playerid, motivo[])
{
new arquivo[50];
getdate(Ano, Mes, Dia);
format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
gettime(Hora, Minuto, Segundo);
format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
format(arquivo, sizeof(arquivo), "Banidos/%s.ini", PegarNome(playerid));
DOF2_CreateFile(arquivo);
DOF2_SetString(arquivo, "Admin", PegarNome(playerid));
DOF2_SetString(arquivo, "Data", Data);
DOF2_SetString(arquivo, "Horario", Tempo);
DOF2_SetString(arquivo, "Motivo", motivo);
DOF2_SaveFile();
return 1;
}
stock kBanIP(playerid)
{
new arquivo[30];
getdate(Ano, Mes, Dia);
format(Data, 20, "%d/%d/%d", Dia, Mes, Ano);
gettime(Hora, Minuto, Segundo);
format(Tempo, 20, "%d:%d:%d", Hora, Minuto, Segundo);
format(arquivo, sizeof(arquivo), "Banidos/IPs Banidos/%s.ini", PegarIP(playerid));
DOF2_CreateFile(arquivo);
DOF2_SetString(arquivo, "Nome", PegarNome(playerid));
DOF2_SetString(arquivo, "Data", Data);
DOF2_SetString(arquivo, "Horario", Tempo);
DOF2_SaveFile();
return 1;
}
stock kBanTemp(playerid, dias, motivo[])
{
new arquivo[50];
BanTemp[playerid] = ConvertDays(dias);
format(arquivo, sizeof(arquivo), "Banidos/Banidos Temp/%s.ini", PegarNome(playerid));
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Dias", BanTemp[playerid]);
DOF2_SetString(arquivo, "Motivo", motivo);
DOF2_SaveFile();
return 1;
}
new BanTemp[MAX_PLAYERS];
CMD:banir(playerid, params[])
{
new id, Motivo[100];
SalvarPlayer(playerid);
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
if(sscanf(params, "us[100]", id, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /ban ID Motivo");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
kBan(id, Motivo);
kBanIP(id);
Kick(id);
//Log
new Log [ ] = "Banidos/Logs/Ban.log";
format(String ,sizeof(String),"O administrador %s baniu: %s ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Motivo);
WriteLog(Log, String);
return 1;
}
CMD:bantemp(playerid, params[])
{
new id, Dias, Motivo[100];
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
if(sscanf(params, "uds[100]", id, Dias, Motivo)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /bantemp ID Dias Motivo");
if(Dias < 0) return SendClientMessage(playerid, Vermelho, "[ERRO]: Digite um nъmero de dias vбlido.");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Jogador nгo conectado.");
SendFormatMessageToAll(Cor_Admin, "[STAFF]: O administrador %s baniu %s por %d dias ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Dias, Motivo);
kBanTemp(id, Dias, Motivo);
kBanIP(id);
Kick(id);
//Log
new Log [ ] = "Banidos/Logs/BanTemp.log";
format(String ,sizeof(String),"O administrador %s baniu %s por %d dias ( Motivo: %s )", PegarNome(playerid), PegarNome(id), Dias, Motivo);
WriteLog(Log, String);
return 1;
}
CMD:desban(playerid, params[])
{
new Conta[20];
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
if(sscanf(params, "s[20]", Conta)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /desban Conta");
format(String, sizeof(String), "Banidos/%s.ini", Conta);
if(DOF2_FileExists(String))
{
DOF2_RemoveFile(String);
SendFormatMessage(playerid, Cor_Admin, "[STAFF]: Vocк desbaniu a conta de %s", Conta);
//Log
new Log [ ] = "Banidos/Logs/Desban.log";
format(String ,sizeof(String),"O administrador %s desbaniu a conta: %s", PegarNome(playerid), Conta);
WriteLog(Log, String);
return 1;
}
else SendClientMessage(playerid, Vermelho, "[ERRO]: Essa conta nгo existe ou nгo estб banida.");
return 1;
}
CMD:desbanip(playerid, params[])
{
new IPBanido[20];
if(pAdmin[playerid][Level] < 2) return SendClientMessage(playerid, Vermelho,"[ERRO]: Vocк nгo possui permissгo suficiente.");
if(sscanf(params, "s[20]", IPBanido)) return SendClientMessage(playerid, Vermelho, "[ERRO]: Use: /desbanip IP");
format(String, sizeof(String), "Banidos/IPs Banidos/%s.ini", IPBanido);
if(DOF2_FileExists(String))
{
DOF2_RemoveFile(String);
SendFormatMessage(playerid, Cor_Admin, "[STAFF] Vocк desbaniu o IP %s", IPBanido);
//Log
new Log [ ] = "Banidos/Logs/DesbanIP.log";
format(String ,sizeof(String),"O administrador %s desbaniu o IP: %s", PegarNome(playerid), IPBanido);
WriteLog(Log, String);
return 1;
}
else SendClientMessage(playerid, Vermelho, "[ERRO]: Esse IP nгo existe ou nгo estб banido.");
return 1;
}