Registrarse

[pokeruby] Crear un nuevo mapa

Jason

PkPower déjame poner tildes en mi nick ¬¬
Tutorial Nuevo Mapa

Hola, hoy traigo un tutorial que venía queriendo hacer desde hace bastante tiempo: cómo crear un mapa 100% nuevo en pokéruby.

Requisitos:

Pasos:

1. data/maps/groups.inc
Añadimos un nuevo grupo vacío al final de todos y lo añadimos en gMapGroups

2. porymap: click derecho sobre el grupo > add new map to group

3. include/constants/region_map_sections.h
insertamos un nuevo #define, debe estar arriba de las bases secretas

4. src/data/region_map_names_en.h
agregamos el nombre que se mostrará al jugador

5. src/region_map.c
Añadimos a gRegionMapLocations[] en las posiciones que definimos en el paso 1 los nombres que creamos en el paso 4:

Primera posición: X en la grilla del worldmap
Segunda posición: Y en la grilla del worldmap
Tercera posición: ancho en la grilla del worldmap
Cuarta posición: alto en la grilla del worldmap

6. porymap (de nuevo):
en la pestaña de header cambiamos Location por el mapsec que le corresponda de los que creamos en el paso 3.

7. compilamos

8. lo probamos* (puede requerir más cosas, como hacer un warp especial, cambiar la localización inicial, crear una conexión, u otros) y funciona. YAY :D

No pongo capturas porque tienen que ver con mi proyecto y sería filtrar cosas. Ya alguien las pondrá en los comentarios.

Extra:

En un futuro traeré una herramienta para cambiar el nombre interno de los mapas, pero de momento les dejo las indicaciones de los archivos que deben modificar (es bastante):

  • data/maps/groups.inc
  • data/maps/headers.inc
  • data/maps/NewMap1/scripts.inc
  • data/maps/NewMap1/events.inc
  • data/maps/NewMap1/header.inc
  • data/maps/text.inc
  • data/maps/NewMap1 (la carpeta)
  • data/layouts/NewMap1/layout.inc
  • data/layouts/NewMap1 (la carpeta)
  • data/layouts.inc
  • data/layouts_table.inc
  • data/map_events.s
  • data/event_scripts.s
  • include/constants/maps.h
  • include/constants/heal_locations.h
  • src/data/heal_locations.h

Dependiendo de qué hayan hecho en los mapas, puede que algunos no necesiten ser modificados o requieran muchísimas modificaciones.
Para que el nombre aparezca en el worldmap del pokénav luego de haber movido el cursor... en otro tutorial.
 

JDreamMaker

To empepinao
Aporte para quienes tengan interés en hacer esto mismo en Emerald:

1. Esta paso no cambia.
1,5. Antes del paso 2 debéis incluir vuestros grupos vacíos en el archivo "data/maps/map_groups.json".

Este archivo termina así (exceptuando comentarios):

"gMapGroup_IndoorRoute119": [
"Route119_WeatherInstitute_1F",
"Route119_WeatherInstitute_2F",
"Route119_House"
], //Los grupos se separan por comas.
"gMapGroup_IndoorRoute124": [
"Route124_DivingTreasureHuntersHouse"
] //El último grupo no debe llevar coma.
} //Cierre del archivo .json

Debéis añadir los grupos vacíos aquí al final con las comas correspondientes y quedarían así:

"gMapGroup_IndoorRoute119": [
"Route119_WeatherInstitute_1F",
"Route119_WeatherInstitute_2F",
"Route119_House"
],
"gMapGroup_IndoorRoute124": [
"Route124_DivingTreasureHuntersHouse"
],
"gMapGroup_IndoorPuebloPaleta": [
],
"gMapGroup_IndoorAshKetpchumPeinate": [
]
}

2 y 3. No cambian.
4. Se hace lo de los pasos 4 y 5 sobre el archivo "src/data/region_map/region_map_entries.h".
5. Aquí creo que es necesario añadir la línea correspondiente a nuestro mapa en las funciones sMapHealLocations (línea 290) y GetMapsecType (línea 1179) pero lo que se indicaba en el paso 5 ya está hecho en el paso 4.
6, 7 y 8. No cambian.

Gracias a Jason por el post y espero que esto ayude a alguien (como mínimo me ayudará a mí en el futuro).
 
Última edición:
Arriba