Jump to content
Yan18

reiniciar Iniciar Servidor Automático Após Shutdown

Recommended Posts

Distro Restarter by Yan18

 

Olá caros amigos do Xtibia, hoje irei ensinar como reiniciar a distro do server automaticamente após um shutdown (no sistema operacional Windows). Decidi fazer esse tutorial após ver muitos pedidos sobre isso, não sei se já existe algum tutorial sobre isso aqui no fórum, mas decidi criar junto com um script que exibe uma mensagem para o server todo alertando que o servidor será reiniciado após X minutos.

 

Para isso, irei trabalhar com um arquivo .bat do Windows, para que ele sempre execute a distro quando não estiver sendo executada. 

 

ATENÇÃO: Leia isso antes de seguir o tutorial! Esse método só vai funcionar se a sua distro for em interface GUI! Se for por prompt (linha de comando) não irá funcionar porque a distro já será executada em prompt.

 

Começo do Tutorial

 

 

- Evento Shutdown

 

Para começar, vamos criar um evento global para dar shutdown e exibir uma mensagem de aviso para todos os jogadores que o servidor será reiniciado, para ficar mais sofisticado e bonito o processo. E eles estarem ciente, assim dá tempo de todos irem para um local seguro!

 

Agora vá em Data/Globalevents/Scripts e crie o arquivo shutdown.lua e insira o código dentro:

 

TFS 0.3/0.4

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	doBroadcastMessage("O servidor será reiniciado em " ..minutos)
	addEvent(avisoShutdown, 60000, cid, minutos - 1)
else
	doSaveServer()
	addEvent(doShutdown, minutos_shutdown * 60000)
return true	
end	

end

function onTime()
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

 

TFS 1.0 / 1.+

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	if minutos > 1 then	
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minutos.")
	else
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minuto.")
	end	
	addEvent(avisoShutdown, 60000, minutos - 1)
else
	saveServer()
	addEvent(Game.setGameState(GAME_STATE_SHUTDOWN), minutos_shutdown * 60000)
return true	
end	

end

function onTime(interval) 
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

Explicação: O script vai fazer um contagem regressiva de minutos (pelo valor definido no parâmetro passado na função avisoShutdown) e depois ele irá ter um delay pelo valor da variável minutos_shutdown. Parece confuso duas variáveis de minutos né? Mas a variável minutos_shutdown é um "delay" para dar tempo de salvar e depois efetuar o shutdown, pois tem servidor que o mapa é grande, tem muitos jogadores e itens, então pode demorar um pouco, ai é só mudar o valor na variável. Está o valor 1 por padrão. E na função chamada pelo evento onTime você coloca os minutos para o player ver os minutos restantes para o servidor ser reiniciado.

 

Agora, abra o arquivo globalevents.xml e adicione a tag:

<globalevent name="shutdown_server" time="12:00" event="script" value="shutdown.lua"/>

Em time coloque o horário que deseja executar o evento para fazer o shutdown.

 

Agora acabamos a parte do evento e vamos para a parte do reiniciador!

 

- PROMPT (Arquivo .Bat)

 

Agora iremos criar o arquivo bat para reiniciar a distro. Vá no bloco de notas ou no notepad++ (de sua preferência) e insira o seguinte script dentro:

title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

Salve esse script (de preferência com um nome sem espaço) com a extensão .bat. Eu recomendo Restarter, mas fica por sua preferência!

 

OBS: Salve o arquivo com a codificação UTF-8, por padrão já vem, mas caso não venha é só colocar!

image.png.a858a8f6a0a238f2dcb9168f6b894470.png

 

 

Explicação:

@echo off

O "echo off" Oculta informações e o código executado pelo sistema, e o "@echo" oculta a interface durante a execução do programa. É possível juntar os dois modos, assim como fiz acima.

title

Nessa parte você coloca o título do arquivo bat em seguida da palavra reservada title, que fica na parte superior da interface. Só seguir o exemplo anterior da criação do arquivo. 

OBS: No título você pode colocar espaço a vontade.

echo

Aqui é onde vai aparecer as mensagens na interface, pode colocar qualquer caractere desejado, pode usar pontos, acentos (acentos acontecerá algo de errado que será explica mas para o fim do tutorial.) e o que desejar. E para dar uma quebra de linha, é só colocar ponto depois do echo: echo. 

begin

É onde começa a executar o procedimento (executar a distro). Mas ai você pergunta: "Mas e as linhas anteriores com mensagens?". Mas a resposta é que as linhas anteriores não executam o programa, e sim inserem mensagem assim que executamos o arquivo bat (ressaltando que quando abrimos o arquivo bat ele inicia a distro, porém só vai reiniciar a distro sempre que der shutdown ou crashar enquanto o arquivo bat estiver aberto).

TFS.exe

Em baixo do ":begin" vai ter TFS.exe, e nessa linha é onde coloca o nome do executável (distro).

OBS: Evite colocar nome da distro com espaço, ele funciona, mas para evitar problemas, deixe junto!

goto begin

E por fim temos o goto begin, a palavra reservada goto faz um pulo para o que colocar na frente dela, ou seja, depois que executar tudo que está acima dela, vai ir para o que declara na frente, no nosso caso, o begin (irá fazer um loop de reiniciar sempre que a distro estiver desligada no nosso caso enquanto o arquivo bat estiver rodando).

 

Beleza Yan, acabamos?

 

Ainda não acabamos! Tenha calma, se você chegou até aqui, vai aguentar até o fim!

 

Agora iremos executar o arquivo bat (lembrando que se quer usar o auto restarter, não pode abrir a distro antes do arquivo bat, se não vai dar erro de distro já aberta, porque o arquivo irá abrir novamente).

 

Mas antes de rodar, não se esqueça de colocar o arquivo bat no mesmo diretório (pasta) da distro, tem que ficar junto senão não vai funcionar.

 

Feito isso, execute o arquivo bat, se der tudo certo e seguiu os passos corretamente, irá aparecer assim seguindo nossa criação:

image.png.d4f03b7cc53f311335469e31bff512c8.png

 

E a distro irá iniciar logo em seguida.

 

Agora vamos testar um shutdown na distro (lembre-se de deixar o prompt do arquivo bat aberto!):

 

image.png.643301e62ab15c77f14ada2647f11df6.png

 

Agora você vai falar, "Funcionou!! Acabamos?", sim de fato funcionou, porém, se repara as mensagens com acento estão "bugadas". Isso se deve ao fato de que por padrão não lê acento (Windows foi criado na língua inglesa). Então, para funcionar precisaremos ir na primeira linha do código do arquivo bat e colocar:

chcp 65001 off

Pois essa linha permite acentuação (lembrando de permanecer a codificação UTF-8 ainda).

 

Então o script ficará assim:

chcp 65001 
@echo off 
echo.
title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

 

Ficando então o script do arquivo bat:

image.png.4a51cd2529b509bb2aa490dff912a244.png

 

Agora temos o caminho do diretório do executável e uma mensagem do sistema alegando que foi ativado esse comando. Se fizer tudo certo é para aparecer assim!

 

E agora vamos testar o shutdown:

image.png.027786ed61b5ba33a5ce56e195c91720.png

 

Como podemos ver executou corretamente e leu os caracteres com acento.

 

Agora vem a pergunta: "Acabou?", e a resposta é... Sim, acabou! Lembrando que você pode encerrar a distro manualmente (fechando) que o arquivo bat irá reiniciar, não precisa depender só do evento shutdown, mas não esqueça de deixar o restarter aberto.

 

Obrigado por ter chegado até aqui e espero que te ajude o tutorial. Qualquer dúvida só perguntar.

 

Logo estarei preparando um tutorial desses para Linux!

 

Abraços e fiquem com Deus!

Edited by Yan18

Share this post


Link to post
Share on other sites
2 minutos atrás, FlamesAdmin disse:

Boa mano, vai ajudar muita rapaziada

Obrigado 😊! Sim, com certeza! Criei porque vi muitos pedidos e estava sendo puxado já toda vez fazer e explicar individualmente para cada um haha.

Share this post


Link to post
Share on other sites
Em 30/04/2020 em 19:13, Yan18 disse:

Distro Restarter by Yan18

 

Olá caros amigos do Xtibia, hoje irei ensinar como reiniciar a distro do server automaticamente após um shutdown (no sistema operacional Windows). Decidi fazer esse tutorial após ver muitos pedidos sobre isso, não sei se já existe algum tutorial sobre isso aqui no fórum, mas decidi criar junto com um script que exibe uma mensagem para o server todo alertando que o servidor será reiniciado após X minutos.

 

Para isso, irei trabalhar com um arquivo .bat do Windows, para que ele sempre execute a distro quando não estiver sendo executada. 

 

ATENÇÃO: Leia isso antes de seguir o tutorial! Esse método só vai funcionar se a sua distro for em interface GUI! Se for por prompt (linha de comando) não irá funcionar porque a distro já será executada em prompt.

 

Começo do Tutorial

 

 

- Evento Shutdown

 

Para começar, vamos criar um evento global para dar shutdown e exibir uma mensagem de aviso para todos os jogadores que o servidor será reiniciado, para ficar mais sofisticado e bonito o processo. E eles estarem ciente, assim dá tempo de todos irem para um local seguro!

 

Agora vá em Data/Globalevents/Scripts e crie o arquivo shutdown.lua e insira o código dentro:

 

TFS 0.3/0.4

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	doBroadcastMessage("O servidor será reiniciado em " ..minutos)
	addEvent(avisoShutdown, 60000, cid, minutos - 1)
else
	doSaveServer()
	addEvent(doShutdown, minutos_shutdown * 60000)
return true	
end	

end

function onTime()
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

 

TFS 1.0 / 1.+

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	if minutos > 1 then	
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minutos.")
	else
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minuto.")
	end	
	addEvent(avisoShutdown, 60000, minutos - 1)
else
	saveServer()
	addEvent(Game.setGameState(GAME_STATE_SHUTDOWN), minutos_shutdown * 60000)
return true	
end	

end

function onTime(interval) 
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

Explicação: O script vai fazer um contagem regressiva de minutos (pelo valor definido no parâmetro passado na função avisoShutdown) e depois ele irá ter um delay pelo valor da variável minutos_shutdown. Parece confuso duas variáveis de minutos né? Mas a variável minutos_shutdown é um "delay" para dar tempo de salvar e depois efetuar o shutdown, pois tem servidor que o mapa é grande, tem muitos jogadores e itens, então pode demorar um pouco, ai é só mudar o valor na variável. Está o valor 1 por padrão. E na função chamada pelo evento onTime você coloca os minutos para o player ver os minutos restantes para o servidor ser reiniciado.

 

Agora, abra o arquivo globalevents.xml e adicione a tag:

<globalevent name="shutdown_server" time="12:00" event="script" value="shutdown.lua"/>

Em time coloque o horário que deseja executar o evento para fazer o shutdown.

 

Agora acabamos a parte do evento e vamos para a parte do reiniciador!

 

- PROMPT (Arquivo .Bat)

 

Agora iremos criar o arquivo bat para reiniciar a distro. Vá no bloco de notas ou no notepad++ (de sua preferência) e insira o seguinte script dentro:

title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

Salve esse script (de preferência com um nome sem espaço) com a extensão .bat. Eu recomendo Restarter, mas fica por sua preferência!

 

OBS: Salve o arquivo com a codificação UTF-8, por padrão já vem, mas caso não venha é só colocar!

Please login or register to see this link.

 

 

Explicação:

@echo off

O "echo off" Oculta informações e o código executado pelo sistema, e o "@echo" oculta a interface durante a execução do programa. É possível juntar os dois modos, assim como fiz acima.

title

Nessa parte você coloca o título do arquivo bat em seguida da palavra reservada title, que fica na parte superior da interface. Só seguir o exemplo anterior da criação do arquivo. 

OBS: No título você pode colocar espaço a vontade.

echo

Aqui é onde vai aparecer as mensagens na interface, pode colocar qualquer caractere desejado, pode usar pontos, acentos (acentos acontecerá algo de errado que será explica mas para o fim do tutorial.) e o que desejar. E para dar uma quebra de linha, é só colocar ponto depois do echo: echo. 

begin

É onde começa a executar o procedimento (executar a distro). Mas ai você pergunta: "Mas e as linhas anteriores com mensagens?". Mas a resposta é que as linhas anteriores não executam o programa, e sim inserem mensagem assim que executamos o arquivo bat (ressaltando que quando abrimos o arquivo bat ele inicia a distro, porém só vai reiniciar a distro sempre que der shutdown ou crashar enquanto o arquivo bat estiver aberto).

TFS.exe

Em baixo do ":begin" vai ter TFS.exe, e nessa linha é onde coloca o nome do executável (distro).

OBS: Evite colocar nome da distro com espaço, ele funciona, mas para evitar problemas, deixe junto!

goto begin

E por fim temos o goto begin, a palavra reservada goto faz um pulo para o que colocar na frente dela, ou seja, depois que executar tudo que está acima dela, vai ir para o que declara na frente, no nosso caso, o begin (irá fazer um loop de reiniciar sempre que a distro estiver desligada no nosso caso enquanto o arquivo bat estiver rodando).

 

Beleza Yan, acabamos?

 

Ainda não acabamos! Tenha calma, se você chegou até aqui, vai aguentar até o fim!

 

Agora iremos executar o arquivo bat (lembrando que se quer usar o auto restarter, não pode abrir a distro antes do arquivo bat, se não vai dar erro de distro já aberta, porque o arquivo irá abrir novamente).

 

Mas antes de rodar, não se esqueça de colocar o arquivo bat no mesmo diretório (pasta) da distro, tem que ficar junto senão não vai funcionar.

 

Feito isso, execute o arquivo bat, se der tudo certo e seguiu os passos corretamente, irá aparecer assim seguindo nossa criação:

Please login or register to see this link.

 

E a distro irá iniciar logo em seguida.

 

Agora vamos testar um shutdown na distro (lembre-se de deixar o prompt do arquivo bat aberto!):

 

Please login or register to see this link.

 

Agora você vai falar, "Funcionou!! Acabamos?", sim de fato funcionou, porém, se repara as mensagens com acento estão "bugadas". Isso se deve ao fato de que por padrão não lê acento (Windows foi criado na língua inglesa). Então, para funcionar precisaremos ir na primeira linha do código do arquivo bat e colocar:

chcp 65001 off

Pois essa linha permite acentuação (lembrando de permanecer a codificação UTF-8 ainda).

 

Então o script ficará assim:

chcp 65001 
@echo off 
echo.
title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

 

Ficando então o script do arquivo bat:

Please login or register to see this link.

 

Agora temos o caminho do diretório do executável e uma mensagem do sistema alegando que foi ativado esse comando. Se fizer tudo certo é para aparecer assim!

 

E agora vamos testar o shutdown:

Please login or register to see this link.

 

Como podemos ver executou corretamente e leu os caracteres com acento.

 

Agora vem a pergunta: "Acabou?", e a resposta é... Sim, acabou! Lembrando que você pode encerrar a distro manualmente (fechando) que o arquivo bat irá reiniciar, não precisa depender só do evento shutdown, mas não esqueça de deixar o restarter aberto.

 

Obrigado por ter chegado até aqui e espero que te ajude o tutorial. Qualquer dúvida só perguntar.

 

Logo estarei preparando um tutorial desses para Linux!

 

Abraços e fiquem com Deus!

Serve pra Win 10?

Share this post


Link to post
Share on other sites

Please login or register to see this attachment.

Please login or register to see this attachment.

Em 30/04/2020 em 19:13, Yan18 disse:

Distro Restarter by Yan18

 

Olá caros amigos do Xtibia, hoje irei ensinar como reiniciar a distro do server automaticamente após um shutdown (no sistema operacional Windows). Decidi fazer esse tutorial após ver muitos pedidos sobre isso, não sei se já existe algum tutorial sobre isso aqui no fórum, mas decidi criar junto com um script que exibe uma mensagem para o server todo alertando que o servidor será reiniciado após X minutos.

 

Para isso, irei trabalhar com um arquivo .bat do Windows, para que ele sempre execute a distro quando não estiver sendo executada. 

 

ATENÇÃO: Leia isso antes de seguir o tutorial! Esse método só vai funcionar se a sua distro for em interface GUI! Se for por prompt (linha de comando) não irá funcionar porque a distro já será executada em prompt.

 

Começo do Tutorial

 

 

- Evento Shutdown

 

Para começar, vamos criar um evento global para dar shutdown e exibir uma mensagem de aviso para todos os jogadores que o servidor será reiniciado, para ficar mais sofisticado e bonito o processo. E eles estarem ciente, assim dá tempo de todos irem para um local seguro!

 

Agora vá em Data/Globalevents/Scripts e crie o arquivo shutdown.lua e insira o código dentro:

 

TFS 0.3/0.4

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	doBroadcastMessage("O servidor será reiniciado em " ..minutos)
	addEvent(avisoShutdown, 60000, cid, minutos - 1)
else
	doSaveServer()
	addEvent(doShutdown, minutos_shutdown * 60000)
return true	
end	

end

function onTime()
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

 

TFS 1.0 / 1.+

function avisoShutdown(minutos)
local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA

if minutos > 0 then
	if minutos > 1 then	
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minutos.")
	else
		broadcastMessage("O servidor será reiniciado em " ..minutos.. " minuto.")
	end	
	addEvent(avisoShutdown, 60000, minutos - 1)
else
	saveServer()
	addEvent(Game.setGameState(GAME_STATE_SHUTDOWN), minutos_shutdown * 60000)
return true	
end	

end

function onTime(interval) 
	avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN 
end

Explicação: O script vai fazer um contagem regressiva de minutos (pelo valor definido no parâmetro passado na função avisoShutdown) e depois ele irá ter um delay pelo valor da variável minutos_shutdown. Parece confuso duas variáveis de minutos né? Mas a variável minutos_shutdown é um "delay" para dar tempo de salvar e depois efetuar o shutdown, pois tem servidor que o mapa é grande, tem muitos jogadores e itens, então pode demorar um pouco, ai é só mudar o valor na variável. Está o valor 1 por padrão. E na função chamada pelo evento onTime você coloca os minutos para o player ver os minutos restantes para o servidor ser reiniciado.

 

Agora, abra o arquivo globalevents.xml e adicione a tag:

<globalevent name="shutdown_server" time="12:00" event="script" value="shutdown.lua"/>

Em time coloque o horário que deseja executar o evento para fazer o shutdown.

 

Agora acabamos a parte do evento e vamos para a parte do reiniciador!

 

- PROMPT (Arquivo .Bat)

 

Agora iremos criar o arquivo bat para reiniciar a distro. Vá no bloco de notas ou no notepad++ (de sua preferência) e insira o seguinte script dentro:

title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

Salve esse script (de preferência com um nome sem espaço) com a extensão .bat. Eu recomendo Restarter, mas fica por sua preferência!

 

OBS: Salve o arquivo com a codificação UTF-8, por padrão já vem, mas caso não venha é só colocar!

Please login or register to see this link.

 

 

Explicação:

@echo off

O "echo off" Oculta informações e o código executado pelo sistema, e o "@echo" oculta a interface durante a execução do programa. É possível juntar os dois modos, assim como fiz acima.

title

Nessa parte você coloca o título do arquivo bat em seguida da palavra reservada title, que fica na parte superior da interface. Só seguir o exemplo anterior da criação do arquivo. 

OBS: No título você pode colocar espaço a vontade.

echo

Aqui é onde vai aparecer as mensagens na interface, pode colocar qualquer caractere desejado, pode usar pontos, acentos (acentos acontecerá algo de errado que será explica mas para o fim do tutorial.) e o que desejar. E para dar uma quebra de linha, é só colocar ponto depois do echo: echo. 

begin

É onde começa a executar o procedimento (executar a distro). Mas ai você pergunta: "Mas e as linhas anteriores com mensagens?". Mas a resposta é que as linhas anteriores não executam o programa, e sim inserem mensagem assim que executamos o arquivo bat (ressaltando que quando abrimos o arquivo bat ele inicia a distro, porém só vai reiniciar a distro sempre que der shutdown ou crashar enquanto o arquivo bat estiver aberto).

TFS.exe

Em baixo do ":begin" vai ter TFS.exe, e nessa linha é onde coloca o nome do executável (distro).

OBS: Evite colocar nome da distro com espaço, ele funciona, mas para evitar problemas, deixe junto!

goto begin

E por fim temos o goto begin, a palavra reservada goto faz um pulo para o que colocar na frente dela, ou seja, depois que executar tudo que está acima dela, vai ir para o que declara na frente, no nosso caso, o begin (irá fazer um loop de reiniciar sempre que a distro estiver desligada no nosso caso enquanto o arquivo bat estiver rodando).

 

Beleza Yan, acabamos?

 

Ainda não acabamos! Tenha calma, se você chegou até aqui, vai aguentar até o fim!

 

Agora iremos executar o arquivo bat (lembrando que se quer usar o auto restarter, não pode abrir a distro antes do arquivo bat, se não vai dar erro de distro já aberta, porque o arquivo irá abrir novamente).

 

Mas antes de rodar, não se esqueça de colocar o arquivo bat no mesmo diretório (pasta) da distro, tem que ficar junto senão não vai funcionar.

 

Feito isso, execute o arquivo bat, se der tudo certo e seguiu os passos corretamente, irá aparecer assim seguindo nossa criação:

Please login or register to see this link.

 

E a distro irá iniciar logo em seguida.

 

Agora vamos testar um shutdown na distro (lembre-se de deixar o prompt do arquivo bat aberto!):

 

Please login or register to see this link.

 

Agora você vai falar, "Funcionou!! Acabamos?", sim de fato funcionou, porém, se repara as mensagens com acento estão "bugadas". Isso se deve ao fato de que por padrão não lê acento (Windows foi criado na língua inglesa). Então, para funcionar precisaremos ir na primeira linha do código do arquivo bat e colocar:

chcp 65001 off

Pois essa linha permite acentuação (lembrando de permanecer a codificação UTF-8 ainda).

 

Então o script ficará assim:

chcp 65001 
@echo off 
echo.
title Reinicializador da Distro
echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------
echo.
echo Status: INICIANDO O SERVIDOR...
echo.
:begin
TFS.exe
echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------
echo.
echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO.
echo.
echo Status: O SERVIDOR ESTÁ SENDO REINICIADO!
echo.
goto begin
:goto begin

 

Ficando então o script do arquivo bat:

Please login or register to see this link.

 

Agora temos o caminho do diretório do executável e uma mensagem do sistema alegando que foi ativado esse comando. Se fizer tudo certo é para aparecer assim!

 

E agora vamos testar o shutdown:

Please login or register to see this link.

 

Como podemos ver executou corretamente e leu os caracteres com acento.

 

Agora vem a pergunta: "Acabou?", e a resposta é... Sim, acabou! Lembrando que você pode encerrar a distro manualmente (fechando) que o arquivo bat irá reiniciar, não precisa depender só do evento shutdown, mas não esqueça de deixar o restarter aberto.

 

Obrigado por ter chegado até aqui e espero que te ajude o tutorial. Qualquer dúvida só perguntar.

 

Logo estarei preparando um tutorial desses para Linux!

 

Abraços e fiquem com Deus!

Please login or register to see this attachment.

AJUDA AE DEU BUG PORQUE ??? AQUI NAO FOI NAO MANO

Edited by Dilooow

Share this post


Link to post
Share on other sites
26 minutos atrás, Dilooow disse:

Please login or register to see this attachment.

Please login or register to see this attachment.

Please login or register to see this attachment.

AJUDA AE DEU BUG PORQUE ??? AQUI NAO FOI NAO MANO

No prompt está falando que o TFS.exe não é reconhecido como comando, ou seja, você não colocou o nome da sua distro corretamente. Creio que copiou o script mas esqueceu de seguir o passo de colocar o nome da sua distro.

Share this post


Link to post
Share on other sites
9 horas atrás, Yan18 disse:

No prompt está falando que o TFS.exe não é reconhecido como comando, ou seja, você não colocou o nome da sua distro corretamente. Creio que copiou o script mas esqueceu de seguir o passo de colocar o nome da sua distro.

Isso msm vlw Man conseguir 

Share this post


Link to post
Share on other sites
52 minutos atrás, Dilooow disse:

Isso msm vlw Man conseguir 

Que bom que deu certo! 😊

 

Caso tenha gostado e te ajudado, não esqueça de deixar um rep 😀

Edited by Yan18

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By FlamesAdmin
      Seguinte, estou com um probleminha no meu servidor/sources que ele não dropa uma key com ActionID
      Ele apenas dropa como se fosse item normal.
      18:54 Você vê purple key (Key:0). ItemID: [2086]. Se alguém tiver uma solução e puder ajudar ficarei grato e darei a devida reputação
    • By daniell99
      Tenho o servidor tfs 0,4 e nele eu consigo equipar qualquer item em qualquer uma das mãos e no slot de flecha, somente os slot de capacete, armor e botas ta certo .
      Alguém para ajudar ?
    • By Fawkzz12
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: npc Código: Please login or register to see this spoiler.
      Esse erro fica dando assim fica sobrecarregando a distro e dando lag no servidor

      Please login or register to see this attachment.
    • By Boguemon
      Eu uso tfs 0.4 E gostaria de saber se da pra fazer o seguinte:
       
      Quando um número X de um monster Y for morto no servidor, uma Raid Z acontece no servidor, por exemplo:
       
      Ao ser morto 10.000 dragons no servidor (conta os kills de todos os players do servidor) a Raid de Demodras acontece **(conta os dragons, Dragon lords e os hatchlings)**
       
      Desde já agradeço a quem puder ajudar
    • By Togumelo
      The Forgotten Tibia
       
      <Test Server está acontecendo!>

      Please login or register to see this link.
       
      Por que esse nome?
      É baseado no The Forgotten Server (e no OTClient)
      Parece que muita gente esqueceu que o Tibia podia ser assim
       
      Assim como?
      Avanço de skills por distribuição de pontos
       
      Como funciona?
       
      - Vocações:
      Não existirão. Todo mundo será um simples humano.
       
      - Skills:
      Magic: + Spell Power, + Rune Power, + 15 Mana (costs 3 points)
      Vitality: +15 Health
      Strenght: + Melee Damage, + Distance Damage, + 5 Capacity
      Resistance: + Shield Defence, +5 Health
      Dexterity: + Distance Damage, +0.25 Walk Speed, +0.25% Attack Speed
      Intelligence: +1% Wand's Maximum Damage, + Attack Spells, +10 Mana
      Faith: +2% Rod's Maximum Damage, + Support and Healing Spells, +10 Mana
      Endurance: +15 Capacity, +5 Health
       
      - Ganho de skill points:
      Do level 1 ao 8 - a cada level ganha 2 pontos
      Do level 8 ao 40 - a cada level ganha 4 pontos
      Do level 40 ao 60 - a cada level ganha 3 pontos
      Do level 60 ao 80 - a cada level ganha 2 pontos
      Do level 80 ao 100 - a cada level ganha 1 pontos
      Do level 100 em diante - a cada 2 levels ganha 1 ponto
       

       
      - New config.lua options:
      -- Skill Gain magicManaGain = 15 vitalityHealthGain = 15 strenghtHealthGain = 0 strenghtCapGain = 5 * 100 resistanceHealthGain = 5 resistanceCapGain = 0 * 100 intelligenceManaGain = 10 faithManaGain = 10 enduranceCapGain = 15 * 100 enduranceHealthGain = 5 -- DUAL WIELDING (75 = 75% of single weapon damage) allowDualWielding = true dualWieldingDamageRate = 70 -- SHIELDS (default: 100 resistance, 0 dexterity) -- Shield formula: defenseSkill = (RESISTANCE * shieldResistanceFactor / 100) + (DEXTERITY * shieldDexterityFactor / 100); shieldResistanceFactor = 100 shieldDexterityFactor = 0 -- DISTANCE WEAPONS (default: 100 dexterity, 0 strenght) -- Spear formula: attackSkill = (STRENGHT * spearStrenghtFactor / 100) + (DEXTERITY * spearDexterityFactor / 100); -- Bow formula: attackSkill = (STRENGHT * bowStrenghtFactor / 100) + (DEXTERITY * bowDexterityFactor / 100); spearDexterityFactor = 100 spearStrenghtFactor = 0 bowDexterityFactor = 75 bowStrenghtFactor = 50 -- WANDS and RODS (default: 0 int, 0 faith, 0 magic) -- Rod formula: maxDamage = maxDamage + (maxDamage * (FAITH - 8 / 100) * (rodFaithFactor / 100) + (MAGIC * magicWandRodFactor / 100); -- Wand formula: maxDamage = maxDamage + (maxDamage * (INTTELIGENCE - 8 / 100) * (wandIntFactor / 100) + (MAGIC * magicWandRodFactor / 100); rodFaithFactor = 200 wandIntelligenceFactor = 100 magicWandRodFactor = 0  
       
×
×
  • Create New...