[Tutorial] Sistemas de log simples
#1

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:hFilethefile[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(datasizeof(data), "%s%s\r\n",timestr,string);
    
format(thefilesizeof(thefile), "Logs/%s.log"file);
    
hFile fopen(thefileio_append);
    
fwrite(hFiledata);
    
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:hFilethefile[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(datasizeof(data), "%s%s\r\n",timestr,string);
format(thefilesizeof(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(thefileio_append);
fwrite(hFiledata);
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(playeridparams[])
{
    if(
pDados[playerid][Staff] >= 3)
    {
        if(
pDados[playerid][StaffTrabalhando] == 1)
          {
              new 
IDstring[60], Nome[MAX_PLAYER_NAME], Nome2[MAX_PLAYER_NAME];
              if(
sscanf(params"i"ID)) return SendClientMessage(playeridC_Server"Use: /kill [id]");
            
SetPlayerHealth(ID0);
            
GetPlayerName(IDNomesizeof(Nome));
            
GetPlayerName(playeridNome2sizeof(Nome2));
            
format(stringsizeof(string), "%s morreu por %s"NomeNome2);
            
fileLog("Kills"string);
          } else { 
SendClientMessage(playeridC_Server"Vocк precisa estб no modo trabalho!"); }
    } else { 
SendClientMessage(playeridC_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(stringsizeof(string), "%s morreu por %s"NomeNome2);
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:
Crйditos:im http://forum.sa-mp.com/member.php?u=157025
Reply
#2

Agora sim esta na aba correta
boa explicaзгo
Reply
#3

http://pastebin.com/gtcgyfSu

Log_Write("logs/registros.txt", "%s fez um registro.", Name);
Reply
#4

Incrнvel. Й disso que precisamos, pessoas dispostas a ensinar. Parabйns guri.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)