Register

Você não está conectado. Conecte-se ou registre-se

 #1Qui 13 Jun - 8:08

-Stronda.


Member Ajudante

Member Ajudante

-Stronda.


Criando um Launcher. Empty Criando um Launcher.
Launcher com sistema de verificação por bytes.

Bom, primeiramente, como sempre irei explicar como o programa funcionará;

Ele irá verificar se um arquivo "x" existe, se não existir ele baixa o arquivo pelo host, se existir, ele verifica os bytes, se estiverem corretos, ele continua verificando outros arquivos/pastas.
Modificação de qualquer byte ele baixa o arquivo/pasta e cola na pasta desejada (atualização). 
Ele verifica a versão do Launcher e do Host (applicativo) e caso necessário auto-update.
Requisitos:
Paciência; é um trabalho demorado e exige esforço.
Conhecimentos básicos de Delphi; Analização de componentes/Compreensão das codes.
Um Host(igual a todos os games on-line); No meu caso é apenas um projeto, então vamos usar AppServ para emular um host no 127.0.0.1:80 (8090).

Este launcher pode ser modificado à qualquer game.
Neste tutorial ensinarei por meio de Aquivo por arquivo, porém pode-se verificar uma pasta inteira (no caso de ser muitos aquivos) e atualizar 1 pasta inteira ao invés de 1 arquivo. ( vou deixar a code para verificar a pasta, mas vou fazer por arquivos). Entretanto você pode mesclar arquivos importantes e não-importantes verifique por pasta mesmo....

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
Mãos à obra !
*com intuito de evitar Ctrl+c e v será postado imagens. Aprenda não copie.


Coloque um arquivo na pasta do launcher. (exemplo usado main.exe).
Inserimos no Form:
1 Gauge (samples)
1 Label (stardard)
2 Botões
1 IdHTTP (Indy Clients)
1 Edit
3 Timers (já nomeie o 3º de ativador para não confundir).

Timer 1 e 2 = Enabled:= False;
ativador = Interval 5000 (5 segundos)
Button 1 = Jogar, Enabled := False;
Button 2 = Sair.
Label 1 = Checando atualizações de (nome do programa).

Deverá ficar mais ou menos assim: (coloquei um banner XD)
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Programando....

Primeiro fazemos as Funções e Uses:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
Evento On WorkBegin do IdHTTP.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Evento On WorkEnd do IdHTTP.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link][Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
OnClick do Sair:
Código PHP:

Código:
Application.Terminate;  
On Click do Jogar.
Você deverá usar o comando do seu game, para mu é:
Código PHP:

Código:
winexec('main.exe connect /u127.0.0.1 /p44405', sw_normal); 
Application.Terminate;  
No Timer Ativador, esse irá ativar os demais após 5 segundos. Usaremos:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

No primeiro timer, iremos ver se o main.exe existe e quantos bytes ele tem.
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

No timer 2 verificaremos com pasta agora...
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pronto, acabamos de fazer como atualizar por verificação.

Para verificar corretamente o byte de um arquivo usamos:
Código PHP:

Código:
AssignFile( arquivo, '.\Main.exe' ); 
Reset( arquivo ); 
// abre em modo de leitura 
ShowMessage(intToStr(FileSize(arquivo)));  
Para pastas:
Código PHP:

Código:
ShowMessage(FloatToStr(GetDirSize('.\data\', True) / Sqr(1024)))  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Anúncios



Ver o tópico anterior Ver o tópico seguinte Ir para o topo Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos

 

Banner