# Monster Scout para Evony (servidor 1939) — Guia rapida

Script de ejemplo: `evony_monster_scout.py`

## Por que este enfoque

Existen tres formas de hacer un "iScout":

1. **Vision por computadora sobre la pantalla** — el script lee pixeles, no toca el cliente ni el trafico de red. Es lo que hace este ejemplo. **Bajo riesgo.**
2. **Sniffing de paquetes** (mitmproxy + parseo del protocolo). Funciona pero implica romper TLS pinning y se considera ya zona gris.
3. **Memoria del proceso / cliente parcheado**. Es lo rapido y lo que mas detecciones produce — y lo que mas cuentas banea.

Empieza por (1). Si despues quieres mas precision, escala con cuidado.

## Setup (Mac)

```bash
# Emulador para Evony en Mac (elige uno)
# - BlueStacks Air (Apple Silicon)
# - LDPlayer (Intel)
# - MuMu Player

# Dependencias Python
python3 -m pip install mss opencv-python numpy pillow pytesseract

# Tesseract OCR (opcional, para leer niveles)
brew install tesseract
```

## Preparar plantillas

1. Abre Evony en el emulador, ve al mapa del reino (servidor 1939).
2. Haz captura de pantalla con un monstruo visible (Cmd+Shift+4 en Mac).
3. Recorta **solo el icono del monstruo**, lo mas limpio posible, y guardalo en `./templates/` con un nombre descriptivo:
   - `templates/oso.png`
   - `templates/bestia.png`
   - `templates/serpiente.png`
   - etc.

Cuanto mas limpio y consistente el recorte, mejor el match. Si el icono se anima, guarda 2-3 variantes (`oso_a.png`, `oso_b.png`).

## Ajustar la region de captura

Abre `evony_monster_scout.py` y edita `GAME_REGION`:

```python
GAME_REGION = {"top": 100, "left": 100, "width": 1280, "height": 720}
```

Esto debe coincidir con la ventana del emulador en tu pantalla. Truco: arrastra el emulador a la esquina superior izquierda y mide con una captura.

## Ejecutar

```bash
cd "/Users/danicosta/Desktop/Evony"
python3 evony_monster_scout.py
```

Veras en consola algo asi:

```
[+] 3 plantillas cargadas: ['oso', 'bestia', 'dragon']
[+] Escaneando cada 5s. Ctrl+C para detener.
[14:22:17]             oso @ ( 480, 312) score=0.87 lvl=5
[14:22:17]         bestia @ ( 612, 244) score=0.81 lvl=3
[14:22:22] sin hallazgos en este scan
```

Y un CSV `monster_log.csv` con el historico.

## Que NO hace este script

- No mueve el raton.
- No envia rallies.
- No abre menus.
- No habla con la red.

Si quieres dar el salto a "auto-rally", entras en territorio claramente prohibido por los TOS. Mi consejo: usa el log como ayuda visual y manda las tropas tu mismo.

## Mejoras posibles

- **Multi-escala**: el mapa cambia de zoom. Itera el `matchTemplate` con varias escalas (`cv2.resize`).
- **HSV mask**: filtrar por color antes del match reduce falsos positivos.
- **Tracking entre frames**: si un monstruo se mueve, deduplicar por proximidad temporal.
- **Notificacion**: webhook a Discord o sonido cuando aparezca un monstruo de nivel alto.
- **Overlay**: dibujar rectangulos sobre los matches y mostrarlos en una ventana de OpenCV con `cv2.imshow` para verificar visualmente.

## Aviso

Los TOS de Evony prohiben "software de terceros que automatice el juego". Una herramienta que solo lee tu pantalla y registra informacion para que tu decidas es una zona gris baja, pero NO es zero risk. Usalo bajo tu responsabilidad y nunca con cuentas que no estes dispuesto a perder.
