quinta-feira, 16 de maio de 2013

0 sys_log (MySQL, CTime Library)

Desenvolvi este pequeno script por necessidade e como é simples não custa nada compartilhar.

É um sistema no qual pode-se inserir um log no banco de dados e ler a todos os logs in-game.


Créditos:
- Pedro Miranda: script;
- BlueG: MySQL Plugin (r20)
- RyDeR`: CTime library


Código:

pawn Code:
#include <a_samp> #include <a_mysql> #include <CTime> new     connectionHandle,     scriptString[256];         public OnFilterScriptInit() {     connectionHandle = mysql_connect("localhost", "root", "sa-mp", "");     if(mysql_ping(connectionHandle) == -1)         return SendRconCommand("unloadfs sys_log");             mysql_function_query(connectionHandle,         "CREATE TABLE IF NOT EXISTS `sys_log` (`log_date` INT(11) NOT NULL, `log_text` VARCHAR(128) NOT NULL)", false, #, #);             return true; } public OnFilterScriptExit() {     return mysql_close(connectionHandle); } public OnPlayerCommandText(playerid, cmdtext[]) {     if(!strcmp(cmdtext[1], "lerlogs")) {             mysql_function_query(connectionHandle,             "SELECT * FROM `sys_log` ORDER BY `log_date` ASC", true, "DisplayLogs", "i", playerid);                     return true;     }     return false; } stock InsertLog(const text[])  {     mysql_format(connectionHandle, scriptString, sizeof scriptString,         "INSERT INTO `sys_log` (`log_date`, `log_text`) VALUES (UNIX_TIMESTAMP(), '%s')", text);     mysql_function_query(connectionHandle, scriptString, false, #, #);     return true; } DisplayLogs(playerid); public DisplayLogs(playerid) {     new num_rows, num_fields;     cache_get_data(num_rows, num_fields, connectionHandle);         if(!num_rows)         return SendClientMessage(playerid, 0xff0000ff, "(!) Não há nenhum log no banco de dados.");             new         index = -1,         timestamp,         content[128],         tm<tmTime>;             SendClientMessage(playerid, 0xffffffff, "Logs:");     while(++index < num_rows) {             timestamp = cache_get_field_content_int(index, "log_date", connectionHandle);         localtime(Time:timestamp, tmTime);         strftime(scriptString, sizeof scriptString, "%d/%m/%Y às %X", tmTime);                 cache_get_field_content(index, "log_text", content, connectionHandle);                 format(scriptString, sizeof scriptString,             "   %s, %s: %s", GetWeekDay(timestamp), scriptString, content);         SendClientMessage(playerid, 0xffffffff, scriptString);     }         return true; } GetWeekDay(timestamp) {     new         tm<tmTime>,         buffer[32];             localtime(Time:timestamp, tmTime);     switch(tmTime[tm_wday]) {         case 1: buffer = "Segunda-feira";         case 2: buffer = "Terça-feira";         case 3: buffer = "Quarta-feira";         case 4: buffer = "Quinta-feira";         case 5: buffer = "Sexta-feira";         case 6: buffer = "Sábado";         case 7: buffer = "Domingo";     }     return buffer; }


Como posso inserir um log na db?
pawn Code:
InsertLog("Pedro Miranda criou o sys_log script."); InsertLog("O script utiliza o MySQL Plugin e o CTime Plugin"); InsertLog("Créditos para RyDeR` e BlueG."); InsertLog("Postado em forum.sa-mp.com");


PS: Não tenho intenção que você use isto. Mas se for o caso, você precisa ao menos saber criar o banco de dados.


Download:
- http://pastebin.com/ZNWvqyzD



By Jason`

0 comentários: