26.05.2016, 19:51
Ficou legalzinho, mas vocк pode melhorar algumas coisas, por exemplo:
Isso й um cуdigo feio e desnecessбrio, uma ferramenta tгo rica quanto o MySQL te traz a oportunidade de trabalhar com timestamp, veja por exemplo um cуdigo simples que fiz usando o plugin CTime Library do Ryder`:
Entгo para um ban de 30 dias por exemplo, vocк poderia usar o timestamp:
E voilб, vocк tem o timestamp de 30 dias
Uma outra coisa que poderia ser melhorada:
Jб que se trata de um cуdigo repetitivo, bastava vocк usar uma query dessas e uma prй-definiзгo de cada tipo de fуrmula a ser retornado ao multiplicar-se o timestamp obtido com o gettime, fazendo com que assim esse switch fosse desnecessбrio, e vocк sу utilizaria 1 mysql_format com a funзгo de retornar o tempo no formato correto, e entгo seu cуdigo ficaria muito mais legнvel e mais bem modelado.
Gostei da include, acho interessante que os usuбrios venham a utilizar a cada vez mais SQLite, MSSQL, MySQL, MariaDB, e atй SQLServer, parece algo bobo quando se trata de SAMP mas no mercado de trabalho saber a linguagem SQL e suas ferramentas й um grande diferencial, parabйns pela include
Код:
stock ConvertTime(SEGUNDOS_) { new MINUTOS_, HORAS_, DIAS_, String[200]; if(SEGUNDOS_ > 59) { MINUTOS_ = SEGUNDOS_ / 60; SEGUNDOS_ = SEGUNDOS_ - MINUTOS_ * 60; } if(MINUTOS_ > 59) { HORAS_ = MINUTOS_ / 60; MINUTOS_ = MINUTOS_ - HORAS_ * 60; } if(HORAS_ > 23) { DIAS_ = HORAS_ / 24; HORAS_ = HORAS_ - DIAS_ * 24; } format(String, sizeof(String), "%02d Dias e %02d Horas e %02d Minutos e %02d Segundos", DIAS_, HORAS_, MINUTOS_, SEGUNDOS_); if(DIAS_ < 1) format(String, sizeof(String), "%02d Horas e %02d Minutos e %02d Segundos", HORAS_, MINUTOS_, SEGUNDOS_); if(DIAS_ < 1 && HORAS_ < 1) format(String, sizeof(String), "%02d Minutos e %02d Segundos", MINUTOS_, SEGUNDOS_); if(DIAS_ < 1 && HORAS_ < 1 && MINUTOS_ < 1) format(String, sizeof(String), "%02d Segundos", SEGUNDOS_); if(DIAS_ > 3650) format(String, sizeof(String), "Permanente"); return String; }
Код:
#define DaysToSeconds(%0) (%0 * 86400) GetDateFromTime(timestamp) { new tm <tmStamp>, string[32]; localtime(Time:timestamp, tmStamp); strftime(string, sizeof(string), "%d/%m/%y", tmStamp); return string; }
Код:
new ban_de_30_dias = DaysToSeconds(30) + gettime();
Uma outra coisa que poderia ser melhorada:
Код:
switch(Ban_Type) { case PERMANENTE: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NOME"`, `"IP"`, `"DATA"`, `"BANIDO_POR"`, `"MOTIVO"`, `"TEMPO"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, 20 * 12 * 30 * 24 * 60 * 60 + gettime()); case MINUTOS: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NOME"`, `"IP"`, `"DATA"`, `"BANIDO_POR"`, `"MOTIVO"`, `"TEMPO"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 60 + gettime()); case HORAS: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NOME"`, `"IP"`, `"DATA"`, `"BANIDO_POR"`, `"MOTIVO"`, `"TEMPO"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 60 * 60 + gettime()); case DIAS: mysql_format(MyConection, MySQL_Format, sizeof MySQL_Format, "INSERT INTO `"TABLE_BAN"` (`"NOME"`, `"IP"`, `"DATA"`, `"BANIDO_POR"`, `"MOTIVO"`, `"TEMPO"`) VALUES ('%s', '%s', '%s', '%s', '%s', '%i')", Player_Name, Player_IP, FormatTimeDate, Ban_By, Reason, Time * 24 * 60 * 60 + gettime()); }
Gostei da include, acho interessante que os usuбrios venham a utilizar a cada vez mais SQLite, MSSQL, MySQL, MariaDB, e atй SQLServer, parece algo bobo quando se trata de SAMP mas no mercado de trabalho saber a linguagem SQL e suas ferramentas й um grande diferencial, parabйns pela include