29/05/2024

¿Necesito Desproteger un mapa?

5

Parece que hay muchos conceptos erróneos sobre lo que la desprotección puede hacer por ti y cuándo solicitarla. Pensé en escribir esto para ayudar a la gente a entender lo inútil que es en la mayoría de los casos.

Comprender los mapas de WC3
Los mapas WC3 son un archivo .w3x o .w3m. Sin embargo, independientemente de la extensión, estos archivos se denominan “MPQ”. Un MPQ es un tipo de archivo que inventó Blizzard, y es básicamente un archivo que contiene otros archivos: imagina un archivo .zip en tu computadora*.

Cuando inicia el WORLD EDIT y guarda su mapa, el WORLD EDIT genera un Archivo MPQ para usted y luego agrega los archivos que WC3 debe tener para reproducir el mapa. Por ejemplo, el archivo de scripts (war3map.j), el archivo de unidades (war3map.w3u), etc.

También agrega ciertos archivos “WORLD EDIT” que se usan para abrir el mapa en el Editor mundial, pero que no se usan para reproducir el mapa.

¿Qué hace la protección?
Para mantener esto en un nivel muy básico, la protección elimina esos archivos exclusivos del World Edit. Estas son cosas como: datos del editor de disparadores, datos de unidades precolocadas, información de nivel, etc. También codifica el script del mapa para que sea muy difícil de leer para un humano.

¿Estos efectos no se pueden revertir?
Los datos que se usaron para construir el mapa se han ido de forma permanente. No hay nada que puedas hacer al respecto. Entonces, si cree que vamos a desproteger un mapa y lo abrirá en un mapa completamente funcional con disparadores de GUI, lo siento, pero no va a suceder.

Lo que realmente hace la desprotección: restaura algunos archivos de plantilla básicos en el mapa para que se abra. También combina todo el script del mapa en un gran disparador. Intenta guardar las variables como datos del editor wc3. No hace nada de esto particularmente bien, pero hace que se pueda abrir.

Su mapa desprotegido probablemente no se podrá guardar. No vas a desproteger y editar un mapa.

¿Por qué la desprotección es tan mala e inutilizable?
Bueno, básicamente, nadie escribió una buena herramienta para ello. Porque nadie realmente necesita depotección. Los rusos escribieron xdep, que es la mejor (pero aún pobre) herramienta y nunca la mejoraron. Probablemente porque no lo necesitaban.

Puedes hacer casi todo sin desprotegerte

Puede editar los scripts (war3map.j)
Puede editar los datos del objeto (war3map.u,t,b,etc) importándolos a un mapa en blanco, editándolos y exportándolos
Puede editar las importaciones importando/eliminando del archivo
Puedes editar las opciones del jugador en el .w3i
Puede editar el nombre del mapa directamente en el encabezado del archivo mpq

Usos de la desprotección
Aunque es inútil en el 99% de los casos, hay un caso en el que la desprotección es útil: la edición del terreno. Los archivos de terreno se encuentran en el archivo war3map.w3e. Se conocen las especificaciones de este archivo, pero es bastante intimidante y no tengo ningún interés en codificar una herramienta para modificarlo en este momento. Y supongo que nadie más lo hace tampoco. Entonces, si desea editar el terreno de un mapa protegido, es mejor que lo desproteja, modifique el terreno y vuelva a importar todos los scripts de trabajo y los datos de los objetos en el mapa.

Restauración de mapas

Vale la pena señalar que hay una forma de restaurar activadores legibles, variables y demás en un mapa desprotegido. Se llama restauración de mapas.

Para restaurar un mapa, debe leer el script war3map.j usted mismo. Aprenda lo que hace cada función y corrija los nombres para que sean legibles nuevamente. Agregue comentarios a cada función a medida que avanza para que no se olvide. Ahora encuentre todos los disparadores en el mapa y organice el mapa por disparador. Después de dividir cada función en una sección de activación, ahora las categoriza de forma lógica. Estas categorizaciones serán sus carpetas en el Trigger Editor.

Luego ingresa al editor de disparadores, elimina el script existente, restaura manualmente las variables de la sección globals -> endglobals si es necesario, luego crea categorías de disparadores y crea cada disparador que encontró en el script JASS (excepto para la función principal; mueva el funciones principales a un activador de inicialización). Copie cada una de sus funciones junto con un inicializador en el equivalente principal de la función para configurar sus disparadores, agregar eventos/acciones/etc.

Ahora tiene un mapa restaurado que funciona.

Este esfuerzo puede llevar varios meses para mapas complejos. No encontrará a nadie que haga esto por usted, y solo es realmente posible si es un experto en JASS. No hay ninguna herramienta para esto y nunca la habrá. Si hay interés en esto, puedo hacer un tutorial completo sobre cómo restaurar un mapa. Pero en mi experiencia, nadie quiere hacer el esfuerzo de hacer esto.

  • Los archivos MPQ procesan internamente el archivo utilizando una búsqueda de colisión baja. Hashing es un algoritmo unidireccional. La fuerza bruta de esta búsqueda de hash no es realista, por lo que usamos un archivo de lista con un montón de archivos que creemos que pueden existir para encontrar lo que existe en el mapa. Esto no descubre todo, sin embargo, PODEMOS descubrir todo mediante análisis estático. Pregunta si quieres más información.

5 thoughts on “¿Necesito Desproteger un mapa?

  1. Hola amigo donde puedo descargar las herramientas que usas en el video no logro encontrarlos

  2. bueno hay muchas formas actualmente de desproteger un mapa, la mas simple es usando una herramienta que yo mismo ya publique en esta pagina y podras usar tranquilamente gratis.
    Luego existen otros metodos para lograr desproteger un mapa para que puedas usarlo con WorldEdit es muuucho mas dificil pero funciona.
    El problema que si armo un tutorial tendra que ser mas o menos en un video de 30min o 40min aproximadamente, vere si en estos dias armo uno tutorial de como hacerlo.

    Gracias por comentar Timi y bienvenido a la comunidad ♥

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *