Desenvolvedores
Como um cliente do jogo conversa com o Voidwatch, e como criar seu próprio módulo ou dar suporte a um novo servidor.
As partes
| Parte | Roda onde | O que faz |
|---|---|---|
| módulo | dentro do cliente do jogo | grava o estado do personagem em arquivos, executa comandos |
| script de envio | ao lado do cliente | manda os arquivos para a API, grava as respostas |
| feed API | nos nossos servidores | guarda o estado, responde com a frequência das capturas e os comandos pendentes |
O próprio cliente não faz requisições à internet. Muitos clientes vazam memória a cada requisição, então o script cuida da rede.
Um ciclo
- O módulo grava
outbox/status.json: a cada 2 segundos enquanto alguém assiste o personagem, a cada 30 segundos no resto do tempo. - O script envia para
POST /api/v1/statuse grava a resposta eminbox/reply.json. - A resposta diz com que frequência mandar uma captura de tela. A cada 1–2 segundos enquanto alguém assiste o personagem, uma vez por minuto no resto do tempo.
- Se houver comandos esperando, o script os busca para
inbox/commands.json. O módulo executa e gravaoutbox/results.json. - Entre dois status o script mantém uma requisição aberta em
GET /api/v1/wait. Ela volta assim que alguém abre o personagem, um alerta dispara ou chega um comando, então o cliente acelera em um segundo. - Uma vez por minuto o script olha o
minimap<versão>.otmmdo cliente e envia quando mudou. O mapa do jogador no site se atualiza sozinho. O jogador pode desligar isso nas configurações do módulo.
Pareamento
Um cliente novo não tem token. O módulo grava outbox/pair-request.json, e o script chama POST /api/v1/pair. A resposta traz um código e um link para o jogador, e o token que o script guarda.
Faça o seu
Tudo é aberto: a feed API, os dados de status e o módulo de referência, com licença MIT. Mantenha a estrutura de arquivos e um módulo funciona com nossos scripts, ou escreva seu próprio envio em qualquer linguagem.
Um servidor também pode incluir o módulo no próprio cliente. Fale com a gente e listamos o servidor como parceiro.