Ir para conteúdo
  • 2 Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

WYD Bot com interface web, sdk e backend [Completo]


DwarfDev
 Compartilhar

Posts Recomendados

# Guia de Uso - WydBot

 

Este guia fornece instruções passo a passo sobre como configurar, executar e operar o WydBot para automação do seu gameplay.

 

## 1. Preparação do Ambiente

 

Antes de iniciar, certifique-se de ter os seguintes pré-requisitos instalados:

- **Docker** e **Docker Compose**.

- Arquivos de mapa do cliente WYD: `HeightMap.raw` e `AttributeMap.dat`.

- (Opcional) Arquivos `.ovpn` caso deseje utilizar VPN isolada por instância.

 

### Organização de Arquivos

Coloque os arquivos de mapa na pasta de recursos do backend:

`backend/Sharp.Wyd.Api/Resource/HeightMap.raw`

`backend/Sharp.Wyd.Api/Resource/AttributeMap.dat`

 

Se for utilizar VPN, coloque seus arquivos `.ovpn` em uma pasta acessível (ex: `C:/vpn/surfshark`).

 

## 2. Inicialização do Sistema

 

Abra o terminal na raiz do projeto e execute:

 

```bash

docker-compose up -d

```

 

Isso iniciará:

- **Frontend**: Disponível em `http://localhost:3000`

- **Backend**: Servidor WebSocket e API.

- **RavenDB**: Banco de dados NoSQL (Painel em `http://localhost:8080`).

- **Docker-in-Docker**: Para gestão de VPNs.

 

## 3. Primeiro Acesso e Configuração de Instâncias

 

1. Acesse `http://localhost:3000`.

2. No menu lateral, clique em **Instances**.

3. Clique em **Create New Instance**:

    - **Username/Password**: Suas credenciais da conta WYD.

    - **Numeric**: Sua senha numérica de 6 dígitos.

    - **Server/Version**: Selecione a versão compatível com o seu servidor.

    - **Proxy**: Se configurado, selecione o provedor de VPN.

4. Clique em **Save**.

 

## 4. Conectando ao Mundo

 

1. Na lista de instâncias, clique no botão de **Connect** (ícone de play).

2. O bot passará pelas fases: `Connecting` -> `Logged` -> `CharList`.

3. Selecione o personagem desejado na lista que aparecerá.

4. O bot entrará no mundo (`World`) e você verá o HP/MP e as coordenadas atualizadas em tempo real.

 

## 5. Configuração de Macros

 

O WydBot possui sistemas de automação especializados:

 

### 5.1 Skill Macro (Combate)

Acesse a aba **Macros > Skill** na instância:

- **Buffs**: Selecione as habilidades de suporte que o bot deve manter ativas.

- **Attacks**: Selecione as skills de ataque e defina a prioridade.

- **Targeting**: O bot selecionará automaticamente alvos dentro do alcance da skill.

 

### 5.2 Drop Macro (Coleta)

Acesse a aba **Macros > Drop**:

- **Item Filter**: Adicione IDs de itens que deseja coletar, ignorar ou vender.

- **Auto-Cargo**: Ative para que o bot leve itens valiosos ao baú automaticamente quando o inventário estiver cheio.

- **Stacking**: O bot tentará agrupar itens iguais para otimizar espaço.

 

### 5.3 Lan Macro (Zonas Especiais)

Acesse **Macros > Lan**:

- Escolha o **Spot** desejado.

- O bot comprará entradas no NPC Aki automaticamente se acabarem.

 

## 6. Gestão de Proxies (VPN)

 

Para rodar múltiplos bots sem ser bloqueado por limite de IP:

1. Vá em **Proxies**.

2. O sistema listará os arquivos `.ovpn` encontrados na pasta configurada.

3. Ao criar ou editar uma instância, vincule-a a um desses proxies.

4. O backend criará um container isolado que servirá de túnel apenas para aquele bot.

 

## 7. Dicas de Segurança e Estabilidade

 

- **Anti-Idle**: O bot possui um `SignalWorker` integrado que envia pacotes de keep-alive. Não desative-o.

- **Delay Humano**: Evite configurar tempos de uso de skill muito baixos (abaixo de 1000ms) para não gerar padrões suspeitos no servidor.

- **Monitoramento**: Utilize a aba de **Logs** para verificar se o bot está recebendo mensagens de administradores (GMs).

 

---

*Dúvidas técnicas?

# Memória Arquitetural - WydBot

 

Este documento consolida o conhecimento sobre a arquitetura e o funcionamento do projeto WydBot, um sistema moderno de automação e gerenciamento para o ecossistema WYD (With Your Destiny).

 

## 1. Visão Geral do Sistema

 

O sistema é composto por três camadas principais:

- **Frontend (Svelte)**: Interface web para controle de instâncias, configuração de macros e monitoramento em tempo real.

- **Backend (Sharp.Wyd.Wss)**: Servidor WebSocket que gerencia o ciclo de vida dos bots, executa comandos vindos do frontend e persiste configurações.

- **SDK (WYD.Sdk)**: O coração técnico do projeto, implementando o protocolo de rede WYD, estruturas de dados e lógica de jogo.

 

## 2. Arquitetura do WYD.Sdk

 

A SDK foi desenvolvida em C# e reflete a engenharia reversa do protocolo binário do WYD.

 

### 2.1 Protocolo de Rede

O sistema utiliza um cabeçalho de rede personalizado de 12 bytes:

- `Size` (2 bytes)

- `Key` (1 byte)

- `Checksum` (1 byte)

- `PacketId` (2 bytes) - Identificador do tipo de pacote (ex: 0x36C para movimento).

- `ClientId` (2 bytes)

- `Timestamp` (4 bytes)

 

A interpretação de pacotes é centralizada no `ServerInterpreter`, que despacha os dados para módulos como `Player`, `Bag`, `World` e `Social`.

 

### 2.2 Estruturas Core (Structs)

As estruturas de dados mapeiam o layout binário do jogo:

- **NetworkMob**: Representa entidades (players/mobs) no mundo, incluindo equipamentos, buffs (affects) e status.

- **NetworkCharStatus**: Mapeia atributos de combate (HP, MP, Ataque, Defesa, Atributos base).

- **NetworkItem**: Estrutura de itens e seus efeitos.

 

### 2.3 Sistema de Mapas e Movimentação

- **MapService**: Carrega arquivos originais do jogo (`HeightMap.raw` e `AttributeMap.dat`) para reconstruir o grid de 4096x4096.

- **Pathfinding**: Utiliza a biblioteca `RogueSharp` para cálculo de rotas.

- **MoveWorker**: Implementa lógica avançada de deslocamento, considerando o uso de portais e pergaminhos de teleporte para otimizar trajetos.

 

## 3. Automação e Workers

 

A lógica de "bot" é implementada através de **Workers**, que operam de forma assíncrona para cada cliente:

- **MoveWorker**: Gerencia o deslocamento do personagem.

- **SkillWorker**: Automação de uso de habilidades.

- **DropWorker**: Lógica para coleta e gerenciamento de drops.

- **SignalWorker**: Mantém a conexão ativa (keep-alive).

 

## 4. Integração Backend-Frontend

 

A comunicação entre a interface web e o motor de bot ocorre via WebSockets:

1. O frontend envia um comando JSON (ex: `MovePlayer`).

2. O `SocketHandler` no backend instancia o comando correspondente via Reflection.

3. O comando é executado sobre a instância do `Client` no `GamePool`, que por sua vez envia o pacote binário criptografado para o servidor do jogo.

 

## 5. Princípios de Design

- **Notação Húngara**: Uso consistente em structs para manter compatibilidade com o legado C++.

- **Composição**: A classe `Client` é composta por múltiplos módulos especializados, facilitando a manutenção.

- **Segurança**: Implementação de codificação de login e tratamento de pacotes para evitar instabilidades.

 

---

*Documento gerado para fixação de memória técnica em 2026-04-01.*

 

 

 

# Estudo Detalhado do Projeto WydBot

 

Este documento apresenta uma análise profunda e técnica do projeto WydBot, cobrindo requisitos, arquitetura, fluxos e um plano de domínio tecnológico.

 

## 1. Análise de Requisitos

 

### 1.1 Requisitos Funcionais (RF)

- **RF01 - Simulação Headless**: O sistema deve simular um cliente WYD completo sem necessidade de renderização gráfica.

- **RF02 - Gestão de Instâncias**: Permitir a criação, execução e monitoramento de múltiplas contas simultaneamente.

- **RF03 - Autenticação Avançada**: Suporte a login, senha numérica e seleção de personagem.

- **RF04 - Sistema de Movimentação**: Navegação inteligente entre mapas usando A*, portais e pergaminhos de teleporte.

- **RF05 - Macros de Combate (Skill)**: Automação de buffs e ataques com suporte a multi-alvo e redução de delay por refinação.

- **RF06 - Macros de Coleta (Drop)**: Filtragem de itens, empilhamento automático e transferência para o baú (Cargo).

- **RF07 - Automação de LAN**: Compra automática de entradas, uso e posicionamento em spots específicos.

- **RF08 - Automação de Eventos**: Busca de NPCs de evento, interação (click/quiz) e trocas de itens.

- **RF09 - Isolamento de Rede (VPN)**: Cada instância deve ser capaz de rodar sob uma VPN dedicada via container Docker.

- **RF10 - Interface Web**: Controle total das instâncias e configurações via navegador.

 

### 1.2 Requisitos Não-Funcionais (RNF)

- **RNF01 - Escalabilidade**: Capacidade de rodar centenas de instâncias em uma única máquina/servidor.

- **RNF02 - Performance**: Baixo consumo de CPU e memória por instância (foco em I/O e lógica de pacotes).

- **RNF03 - Segurança**: Implementação fiel da criptografia original (Keytable) para evitar detecção e garantir conexão.

- **RNF04 - Persistência**: Uso de banco de dados NoSQL (RavenDB) para armazenamento rápido de estados e logs.

- **RNF05 - Portabilidade**: Deploy via Docker Compose para garantir consistência entre ambientes.

 

---

 

## 2. Arquitetura do Sistema

 

### 2.1 Visão Geral (Diagrama de Blocos)

```mermaid

graph TD

    UI[Frontend - SvelteKit] <-->|WebSocket/JSON| API[Backend - Sharp.Wyd.Api]

    API <--> DB[(RavenDB)]

    API <-->|Reflection| CMD[Commands]

    CMD --> SDK[WYD.Sdk]

    SDK <-->|Binary/TCP| GS[Game Server]

    API <-->|Docker API| DIND[Docker-in-Docker / VPN]

```

 

### 2.2 Módulos Principais

- **WYD.Sdk**: Camada de domínio e protocolo. Implementa as structs binárias e a lógica de baixo nível do jogo.

- **Sharp.Wyd.Wss**: Gerenciador de conexões WebSocket e execução de comandos vindos da UI.

- **Sharp.Wyd.Data**: Camada de acesso a dados usando RavenDB.

- **Frontend**: Aplicação SPA em SvelteKit que consome a API WSS.

 

---

 

## 3. Fluxos de Trabalho (Workflows)

 

### 3.1 Fluxo de Movimentação (MoveWorker)

```mermaid

sequenceDiagram

    participant P as Player

    participant W as MoveWorker

    participant S as MapService

    participant GS as GameServer

 

    P->>W: SetDestination(X, Y)

    W->>S: DrawPath(current, target)

    S-->>W: List of Coordinates

    loop for each point

        W->>GS: SendMovePacket(X, Y)

        GS-->>P: UpdatePosition

        W->>W: Sleep(calculated speed)

    end

```

 

---

 

## 4. Pontos Críticos e Desafios Técnicos

1. **Sincronização de Structs**: Qualquer alteração na `NetworkMob` ou `NetworkItem` que não respeite o alinhamento de bytes (`Pack = 1`) quebrará a comunicação.

2. **Criptografia (Keytable)**: A tabela de chaves em `GameSecurity.cs` é estática e específica para cada versão/servidor.

3. **Gerenciamento de Recursos**: O carregamento de `HeightMap.raw` consome memória inicial e deve ser compartilhado entre instâncias.

4. **Isolamento VPN**: A estabilidade dos containers `openvpn-socks5` é vital para o bypass de limites de IP.

 

---

 

## 5. Plano de Estudo e Cronograma

 

### Fase 1: Domínio do Protocolo (Semana 1)

- Estudo das structs em `WYD.Sdk.Packets`.

- Entendimento do `ServerInterpreter` e despacho de pacotes.

- Exercício: Implementar o log de um novo tipo de pacote não mapeado.

 

### Fase 2: Motor de Automação (Semana 2)

- Análise profunda do `WorkerBase` e ciclo de vida dos workers.

- Customização do `SkillWorker` para novas classes (ex: Huntress).

- Exercício: Criar um worker simples para uso automático de poções de HP/MP.

 

### Fase 3: Infraestrutura e Backend (Semana 3)

- Estudo do RavenDB e modelagem das entidades.

- Configuração e troubleshooting do Docker-in-Docker.

- Exercício: Adicionar um novo campo de configuração na `Instance` e persistir no DB.

 

### Fase 4: Frontend e UX (Semana 4)

- Integração de novos comandos no `socketService.ts`.

- Criação de novos componentes UI para monitoramento avançado.

- Exercício: Criar um gráfico de ganho de XP/Hora na interface.

 

---

 

## 6. Sugestões de Melhorias

- **M01**: Implementar um sistema de plugins para workers, permitindo carregar novas lógicas sem recompilar a SDK.

- **M02**: Adicionar suporte a múltiplos protocolos de VPN (Wireguard, Proxy HTTPS).

- **M03**: Criar uma API REST para consulta de status (além do WSS).

- **M04**: Implementar notificações via Telegram/Discord em caso de morte ou desconexão.

 

 

 
Editado por xaxa333
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.