Ir para conteúdo
Entre para seguir isso  
Roku

Online Logs Register

Recommended Posts

Roku    0
Roku

local infos = {

Name = "Online Logs Register",

Autor = "Roku",

Versão = "Testado em 8.55, provavelmente em quase todas, pois a unica função de OTServer que usa é getPlayersOnline().",

Testado = true,

}

O script é muito simples, embora muito útil, o que reforça uma coisa que venho tentando provar, os scripts mais simples podem ser os mas engenhosos. Sua função é registrar, de determinado tempo em determinado tempo, quantos jogadores tem Online.

 

Ai você pergunta: mas qual a ultilidade disso? Entao eu respondo: a ultilidade não, as ultilidades. Se você quer saber quando fazer um evento, com esse script saberá a que horas tem mais jogadores online. Se você quer fazer uma manutenção, saberá que horas tem menos jogadores online. Ou então só se quiser saber mesmo quando tem mais.

 

Quando eu aprender a operar arquivos binários com Lua dou um jeito de fazer uma imagem, tipo um gráfico. Esse script é um da minha imensa coleção guardada, mas pra tirar ele do "fundo do baú" resolvi postar. =]

 

Instalando o Script

 

→ Vá na pasta dos scripts de globalevents. (server folder/data/globalevents/scripts)

 

→ Copie um arquivo, renomeie para logOn.lua [!TEM QUE SER ESSE NOME!], em seguida abra-o e apague tudo. (CTRL+A, DELETE)

 

→ Cole nele o seguinte script:

 

--[[ Roku's Online Logs Register 
Developed by Roku - 2009
Preserv the Credits
]]

function onThink(interval, lastExecution)
file = io.open("logOn.txt","a+")

 if file then

local online = getPlayersOnline()
print(os.date("%H:%M:%S - Online Logs: ")..#online.." player(s) online.")
file:write(os.date("%H:%M:%S - Online Logs:").."\n "..#online.." player(s) online.\n")
file:close()
end           

       end
       function onStartup()
        file = io.open("logOn.txt","a+")
         if file then
             print("Roku's Online Logger Starting...")
        file:write("\n\nLogs of "..os.date("%y Year,%m Mounth,%d Day")..":\n")
        file:close()
        end
        end

 

Calma! Ainda não acabou!

 

→ Agora vá na pasta inicial do server, onde fica o aplicativo, as DLL's, etc.

Lá crie um ARQUIVO DE TEXTO com extensão .txt, com o nome de logOn.txt [!TEM QUE SER ESSE NOME!]

 

→ Abra o arquivo, verficiando se o nome está certo, se é uma extensão do BLOCO DE NOTAS e se está vazio, se sim, prossiga.

 

→ Vá no XML dos globalevents. (server folder/data/globalevents/globalevents.xml)

→ Adicione as seguintes TAG's:

   <globalevent name="logOn" interval="XXXX" event="script" value="logOn.lua"/>

   <globalevent name="logOnStart" type="start" event="script" value="logOn.lua"/>

→ Onde está escrito XXXX, adicione o tempo em que será executado o script.

[!DEVE SER UM VALOR NUMÉRICO!]

 

Feito isso, salve, abra o server e aproveite o script. =)

 

Atenciosamente,

Roku

SE GOSTOU POR FAVOR CLIQUE NO BOTÃO THANKS NO FINAL DO POST.

Editado por Black Ice

Compartilhar este post


Link para o post
Flatronez    1
Flatronez

Desculpe a demora, foi falha minha ;X

 

aprovadog.png

Compartilhar este post


Link para o post
Notorious    1
Notorious

Nao deu pra entender muito esse for pra todos os players online, nao era mais fácil pegar o comprimento da table getPlayersOnline() com o operador # ?

os.date("%H:%M:%S - Online Logs:").."\n "..#onlinetable.." player(s) online.\n")

Pra todos os players online ele vai escrever o quanto tem ate agora no for?

Nao entendi, pode ser falha minha, mas ta estranho

 

O resto tá otimo, e a ideia é muito boa pra servidores grandes (:

Editado por Mickfern

Compartilhar este post


Link para o post
dragonlorde    0
dragonlorde

Nao deu pra entender muito esse for pra todos os players online, nao era mais fácil pegar o comprimento da table getPlayersOnline() com o operador # ?²

 

Nesse caso ele não vai anotar cada elemento da table(os players) dizendo a frase e a hora do lado?

Compartilhar este post


Link para o post
Roku    0
Roku

É pode ser sim, deve ter sido falha minha na hora de fazer o script.

Primeira vez que trabalho com getOnlinePlayers(), esse tipo de função assim sabe...

De qualquer jeito funciona sim, fica mais ou menos assim:

 

Logs of 2010 Year, 3 Mounth, 24 Day

 

4:12:29 - Online Logs: 3 player(s) online.

 

 

=)

#Flatronez

Sem problema xD

 

lol agora que percebi q n fexei minha tabela no cabeçário do topico gogo fexar xD

Compartilhar este post


Link para o post
Kaotar    5
Kaotar

É interessante até gostei da forma que você fez.

Tenta tabular o script ficar mais legível e bonito

E ainda se tiver 100 player online e ele rodar esse script vai ficar bem feio

"17:04:10 - Online Logs: 1 player(s) online."
"17:04:10 - Online Logs: 1 player(s) online."
"17:04:10 - Online Logs: 2 player(s) online."
"17:04:10 - Online Logs: 3 player(s) online."
"17:04:10 - Online Logs: 4 player(s) online."
                        .
                        .
                        .
"17:04:10 - Online Logs: 100 player(s) online."

 

Flws

Editado por Kaotar

Compartilhar este post


Link para o post
Stolex    0
Stolex

a função dele é mais ou menos.

é vai ser feio pra vc coloca isso no seu serv quando tiver poucos player on.

mais a ideia e o desenvolvimento foi boa.

Compartilhar este post


Link para o post
Dean    1
Dean

Coloca #getPlayersOnline(), senão além de printar 1,2,3,4 players online se tiver muitas pessoas poderá até dar lag no server.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×