[Ajuda] Comando /tempban
#1

Quote:

#define GMT_H 0
#define GMT_M 0

OnPlayerConnect:

if(PlayerInfo[playerid][pTempBan] == 1){
if(gettime() > PlayerInfo[playerid][pDiasBan]){
mysql_format(conexao, query, sizeof(query), "UPDATE players SET TempBan = '0', AdminBan = '0', MotivoBan = '0', DiasBan = '0' WHERE players.Nick = '%s'",PlayerInfo[playerid][pNome]);
mysql_query(conexao, query);
PlayerInfo[playerid][pDiasBan] = 0;
PlayerInfo[playerid][pTempBan] = 0;
mysql_format(conexao,query,sizeof(query),"DELETE FROM IPsBans WHERE IPsBans.IP = '%s' LIMIT 1",plrIP);
mysql_query(conexao,query);
}else{
cache_get_value(0, "AdminBan", PlayerInfo[playerid][pAdminBan], 24);
cache_get_value(0, "MotivoBan", PlayerInfo[playerid][pMotivoBan], 50);
new d,m,y,h,mi,s;
TimestampToDate(PlayerInfo[playerid][pDiasBan],y,m,d,h,mi,s,GMT_H,GMT_M);
new str[500];
format(str,sizeof(str),"{FF0000}Conta banida temporariamente atй: {FFFFFF}%i/%i/%i{FF0000}\nConta: {FFFFFF}%s{FF0000}\nAdmin: {FFFFFF}%s\n{FF0000}Motivo: {FFFFFF}%s\n{FF0000}Expira em: {FFFFFF}%i:%i - [Formato 24 Horas]",d,m,y,PlayerInfo[playerid][pNome],PlayerInfo[playerid][pAdminBan],PlayerInfo[playerid][pMotivoBan],h,mi);
ShowPlayerDialog(playerid,TEMPBAN,DIALOG_STYLE_MSG BOX,"{FF0000}Conta banida temporariamente",str,"{FF0000}Fechar","");
SetTimerEx("Kick2",1000,false,"i",playerid);
}
}




CMD:tempban (playerid,params[]){
if(PlayerInfo[playerid][mst] == 1 || PlayerInfo[playerid][pAdmin] > 1){
new id,dias,motivo[50];
if(sscanf(params,"uis",id,dias,motivo)) return SendClientMessage(playerid,vermelho,"[ERRO]: Uso: /tempban [ID] [DIAS] [MOTIVO]");
if(id == playerid) return SendClientMessage(playerid,vermelho,"[ERRO]: Vocк nгo pode banir si mesmo.");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,vermelho,"[ERRO]: Jogador nгo estб conectado.");
if(strlen(motivo) > 50) return SendClientMessage(playerid,vermelho,"[ERRO]: Limite de caracteres excedido. (Limite: 50)");
if(dias > 60) return SendClientMessage(playerid,vermelho,"[ERRO]: Lнmite de dias: 60.");
new aname[24],pname[24]; GetPlayerName(playerid,aname,sizeof(aname)); GetPlayerName(id,pname,sizeof(pname));
new str[168],query[180],dialog[200],ip[16];
format(str,sizeof(str),"[TEMP-BAN]: O(a) administrador(a): %s baniu o jogador(a): %s por %i dia(s). (Motivo: %s)",aname,pname,dias,motivo);
SendClientMessageToAll(vermelho,str);
format(dialog,sizeof(dialog),"{FF0000}Vocк foi banido temporariamente!\nConta: {FFFFFF}%s\n{FF0000}Admin: {FFFFFF}%s\n{FF0000}Dias: {FFFFFF}%i\n{FF0000}Motivo: {FFFFFF}%s",pname,aname,dias,motivo);
ShowPlayerDialog(id,TEMPBAN,DIALOG_STYLE_MSGBOX,"{ FF0000}Banido Temporariamente",dialog,"{FF0000}Fechar","");
new tempo = gettime()+(60*60*24*dias);
PlayerInfo[id][pDiasBan] = tempo;
PlayerInfo[id][pTempBan] = 1;
GetPlayerIp(id,ip,sizeof(ip));
mysql_format(conexao, query, sizeof(query), "UPDATE players SET TempBan = '1', AdminBan = '%s', MotivoBan = '%s', DiasBan = '%i' WHERE players.Nick = '%s'",aname,motivo,tempo,pname);
mysql_query(conexao, query);
mysql_format(conexao,query,sizeof(query),"INSERT INTO IPsBans (IP) VALUES ('%s')",ip);
mysql_query(conexao,query);
SetTimerEx("Kick3",1000,false,"i",id);
}else{
new str[128]; format(str,sizeof(str),"{FF0000}[ERRO]: {FFFFFF}Vocк nгo tem permissгo.",-1);
SendClientMessage(playerid,-1,str);
}
return 1;
}
O problema й que, na dialog do onplayerconnect onde mostra quanto tempo falta pra expirar o ban, o tempo fica somente em: 21:50, e nгo muda, e com isso nгo sei se player vai ser desbanido normalmente.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)