Sistemas de log simples -
yurin - 24.12.2016
Antes de tudo, nada disso foi feito por min, esse tutorial й do "im" e aqui estб o link dele https://sampforum.blast.hk/showthread.php?tid=396047 sу estou trazendo para cб explicando para as pessoas que nгo entendem ou que querem algo mais simples e nгo sabem procura no ****** (Vocкs sabem que isso tem muito nesse forum).
Esse й o cуdigo, agora vamos explica-lo
PHP код:
stock fileLog(file[], string[])
{
new time[6], timestr[32], data[128], File:hFile, thefile[32];
gettime(time[0], time[1], time[2]);
getdate(time[3], time[4], time[5]);
format(timestr,32,"[%02d.%02d|%02d:%02d] ",time[5],time[4], time[0], time[1]);
format(data, sizeof(data), "%s%s\r\n",timestr,string);
format(thefile, sizeof(thefile), "Logs/%s.log", file);
hFile = fopen(thefile, io_append);
fwrite(hFile, data);
fclose(hFile);
return 1;
}
PHP код:
stock fileLog(file[], string[])
Essa stock criara a funзгo fileLog, que serб o nome do log "
file[]" e depois o texto dele "
string[]"
PHP код:
newtime[6], File:hFile, thefile[32], timestr[32], data[128];
Primeiro criaremos cinco variбveis, uma delas sendo uma variбvel de arquivo, outra de separaзгo por assim dizer e o resto string, "
time[6]" seria variбvel responsбvel para criar algumas funзхes separadas(nгo sei explicar muito bem isso), sempre temos que por 1 numero a mais que na verdade nгo й a mais, e sim й por causa do 0 que temos que comeзar contando, "
File:hFile" seria para salvar o arquivo do log e o resto й string.
PHP код:
gettime(time[0], time[1], time[2]);
getdate(time[3], time[4], time[5]);
Aqui sгo duas funзхes nativas do SA-MP para se obter data e hora, e й aqui que usaremos a variбvel de separaзгo, utilizando cada numero em um local para evitar de precisar criar varias variбveis e usar somente uma no lugar.
PHP код:
format(timestr,32,"[%02d.%02d|%02d:%02d] ",time[5],time[4], time[0], time[1]);
Aqui й a parte onde anotara a data e a hora que vai ser colocado antes da mensagem de log, utilizando as variбveis "
time", utilizaremos "
d" pois sгo somente nъmeros entгo nгo precisa colocar "
s".
PHP код:
format(data, sizeof(data), "%s%s\r\n",timestr,string);
format(thefile, sizeof(thefile), "Logs/%s.log", file);
Na primeira parte serб onde vai pegar a timestr que vimos agora pouco oque й, e tambйm oque pegara oque o player irб escrever, jб na segunda serб onde vai ser salvo os logs, dessa vez com "s" pois utilizaremos provavelmente nomes.
PHP код:
hFile = fopen(thefile, io_append);
fwrite(hFile, data);
fclose(hFile);
Na primeira linha й onde o arquivo serб aberto, jб na segunda serб oque ira escrever nesse arquivo e na terceira й para fechar e salvar o arquivo e assim termina esse tutorial.
Um exemplo de log seria esse aqui:
PHP код:
CMD:kill(playerid, params[])
{
if(pDados[playerid][Staff] >= 3)
{
if(pDados[playerid][StaffTrabalhando] == 1)
{
new ID, string[60], Nome[MAX_PLAYER_NAME], Nome2[MAX_PLAYER_NAME];
if(sscanf(params, "i", ID)) return SendClientMessage(playerid, C_Server, "Use: /kill [id]");
SetPlayerHealth(ID, 0);
GetPlayerName(ID, Nome, sizeof(Nome));
GetPlayerName(playerid, Nome2, sizeof(Nome2));
format(string, sizeof(string), "%s morreu por %s", Nome, Nome2);
fileLog("Kills", string);
} else { SendClientMessage(playerid, C_Server, "Vocк precisa estб no modo trabalho!"); }
} else { SendClientMessage(playerid, C_Server, "Vocк nгo tem permissгo para usar esse comando!"); }
return 1;
}
Bem como esse й um comando meu sу vou explicar a parte mais importante:
PHP код:
format(string, sizeof(string), "%s morreu por %s", Nome, Nome2);
fileLog("Kills", string);
Na primeira linha vocк deve criar um format para definir como oque aparecera no log, no meu caso eu botei o nome do jogador morto, logo depois o nome de quem o matou, e depois a parte mais importante, criar o log "
fileLog("Kills", string);" o "
Kills" й o nome do log que vocк pode por qualquer nome que ira salvar, mas lembrem-se de sempre criar o arquivo com o nome que tu botou com o .log no final, exemplo: Jб que usei "
Kills" eu tenho que ir na minha pasta Logs e criar um arquivo log assim: "
Kills.log", e o string seria a sua string que tu usou no format.
Resultado:
![](http://i.imgur.com/vhgEJFh.png)
Crйditos:im http://forum.sa-mp.com/member.php?u=157025
Re: Sistemas de log simples -
RedMF - 24.12.2016
Agora sim esta na aba correta
boa explicaзгo
Re: Sistemas de log simples -
CaioTJF - 24.12.2016
http://pastebin.com/gtcgyfSu
Log_Write("logs/registros.txt", "%s fez um registro.", Name);
Re: Sistemas de log simples -
Dominguinhos - 17.01.2017
Incrнvel. Й disso que precisamos, pessoas dispostas a ensinar. Parabйns guri.