Checksum del cliente
Este documento explica cómo hacer que el juego no abra si un jugador cambió o borró archivos del cliente. Por ejemplo, texturas transparentes, un player.bmd modificado o tablas .bmd cambiadas.
Para el Encoder y sus carpetas, ver 08_CLIENTE_PC_Y_ENCODER.md. Para proteger archivos con cifrado, ver 19_CIFRADO.md.
Qué hace
- Tú eliges qué archivos del cliente se revisan.
- Al abrir, el juego compara cada uno de esos archivos con la lista
Data\Checksum.igk. - Si un archivo falta o es distinto, el juego no abre y muestra: "Client Corrupted, please reinstall" (en español: "Cliente dañado, por favor reinstálalo").
- Se detiene en el primer archivo que no coincide: no sigue revisando los demás.
- El mensaje no dice qué archivo fue. Ese dato queda en
MuError.log(si el log está activo), en una línea como esta:> Checksum: Data\Player\player.bmd was modified - Si alguien borra o edita
Data\Checksum.igk, el juego tampoco abre. - Funciona igual en PC, Android y el navegador.
- No necesita licencia con plugin ni conexión al servidor.
Paso a paso
- Pon los archivos a proteger.
- La primera vez que abres el Encoder se crea la carpeta
MainInfo\Checksum\. - Copia ahí los archivos que quieras proteger, con la misma ruta que en el cliente. Por ejemplo:
Checksum\Data\Player\player.bmdoChecksum\Data\Local\Eng\Item.bmd. - Tienen que ser exactamente los mismos archivos que van en el cliente que bajan los jugadores.
- La primera vez que abres el Encoder se crea la carpeta
- Abre
Encoder.exe. Además de los.igkde siempre, creaData\Checksum.igken la carpeta del cliente (PathExport). EnEncoder.logdice cuántos archivos tiene la lista. - Sube al patcher el cliente con estos 2 archivos nuevos:
Data\Checksum.igkyData\MainInfo.igk. Luego arma lo de siempre: eldata.zipde Android y la web (WebPacker).
Archivos cifrados
Si quieres proteger un archivo cifrado, pon en Checksum\ el archivo ya cifrado (el de Encrypt\Output), porque ese es el que llega al jugador. El Encoder toma los archivos de Checksum\ tal cual: no los busca en otra carpeta.
Cuando cambias un archivo protegido
- Cambia el archivo en el cliente y en
Checksum\. - Abre el Encoder.
- Sube juntos el archivo nuevo,
Data\Checksum.igkyData\MainInfo.igk.
Si te olvidas de un paso, los jugadores verán "Client Corrupted, please reinstall". Mira Log\MuError.log (arrástralo sobre Encoder.exe para leerlo: sale MuError.txt) para saber qué archivo no coincide.
Qué no va en la lista
El Encoder no deja entrar en la lista los archivos que cambian en cada PC, o que el propio Encoder vuelve a crear en cada ejecución. Si los pones en Checksum\, los salta y lo avisa en Encoder.log:
config.ini(las opciones del jugador);- los logs (
.log) y los volcados de errores (.dmp); - los
.igk(MainInfo.igk,Connect.igk,TextInfo.igk,Checksum.igk).
Quitar el control
Vacía la carpeta Checksum\ y abre el Encoder. Se borra Data\Checksum.igk y el nuevo MainInfo.igk ya no pide la lista. Sube ese MainInfo.igk.
Tiempo de arranque
El juego solo lee los archivos de la lista, una vez al abrir. En una PC normal tarda alrededor de 0,8 segundos cada 200 MB. Lo normal es proteger solo los archivos que suelen modificar los tramposos (personajes, ítems, efectos, tablas), que pesan mucho menos.
Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
| Todos los jugadores ven "Client Corrupted, please reinstall" después de una actualización | Se subió un archivo nuevo sin volver a crear la lista, o falta Checksum.igk / MainInfo.igk en el patcher | Abre el Encoder y sube juntos el archivo, Data\Checksum.igk y Data\MainInfo.igk |
| Solo algunos jugadores ven el mensaje | Cambiaron un archivo, o su cliente está incompleto | Que reinstalen o pasen el patcher. MuError.log dice qué archivo es |
| El mensaje sale con un archivo cifrado | En Checksum\ está el original y en el cliente el cifrado | Pon en Checksum\ el archivo de Encrypt\Output y abre el Encoder |
Encoder.log: "no va en la lista" | Pusiste config.ini, un log o un .igk | Quítalo de Checksum\: esos archivos no se pueden revisar |