Rivi
It was me, Rivi!
¡Muy buenas, gentecilla!
He visto varios tutoriales en el foro sobre las Etiquetas de Terreno (o también conocidas como Terrain Tags), pero en cada uno se explica una cosa, está desactualizado o las imágenes están caídas. Por eso me he propuesto hacer un tutorial completo explicando estos puntos:
- Terrain Tags, ¿qué son y para que sirven?
- ¿Qué función tiene cada una?
- Cómo asignar Terrain Tags a un Tileset.
- Cómo crear una Terrain Tag básica.
- Cómo crear una Terrain Tag avanzada.
NOTA: En este tutorial se hablará de las versiones 16.X y 17.X.
¿Estáis listos?
Terrain Tags, ¿qué son y para qué sirven?
Empecemos explicando qué son las Etiquetas de Terreno...
Rivi, ¿qué son las...? Ah, vale...
Las Etiquetas de Terreno o "Terrain Tags" son unas características que se le pueden agregar a un tile. Estas características son representadas por números, por lo tanto, dependiendo del tile que sea, deberíamos darle un valor u otro; más adelante vamos a ver esto.
Dependiendo de la versión de Essentials que utilices encontraremos varias por defecto:
- En Essentials 16.X encontraremos números del 0 al 15.
- En la base de Pira (16.3) creo que podemos encontrar 2 Terrain Tags más.
- En Essentials 17.X encontraremos números del 0 al 16.
¿Qué función tiene cada una?
Ahora veremos las características que corresponden a cada etiqueta y en la versión que aparece. También podemos consultar la tabla aquí.
Etiqueta de Terreno | Versión de Essentials | Efecto |
---|---|---|
0. Default | 16.X / 17.X | Esta etiqueta será la que viene por defecto en cada tile al crear por primera vez un Tileset. La usaremos para las zonas donde el personaje puede caminar. |
1. Ledge | 16.X / 17.X | Esta etiqueta se la asignaremos a los bloques que queremos saltar, como por ejemplo los barrancos de Pokémon. El personaje saltará 2 bloques hacia la dirección deseada. |
2. Grass | 16.X / 17.X | Esta etiqueta contiene toda la información sobre la hierba alta, incluidas las animaciones. Se la tenemos que agregar a los tiles de hierba para que aparezcan Pokémon Salvajes. |
3. Sand | 16.X / 17.X | Esta etiqueta se la tenemos que agregar a la arena o caminos arenosos. Podemos agregarle un script de "footprints" para que quede más realista. |
4. Rock | 16.X / 17.X | Es como la etiqueta 2, pero se usa en cuevas. |
5. Deepwater | 16.X / 17.X | Usada en zonas de agua, donde se puede usar la MO Buceo. Recomendable usarla en mares con zonas profundas. |
6. Stillwater | 16.X / 17.X | Usada en zonas de agua, donde el personaje se verá reflejado en el agua. Recomendable usarla en lagos y estanques (donde el agua está tranquila). |
7. Water | 16.X / 17.X | Usada en zonas de agua. A diferencia de las otras el personaje no se verá reflejado ni podrá bucear. |
8. Waterfall | 16.X / 17.X | Etiqueta usada para el cuerpo de una cascada. Si está frente a una y usa la MO Cascada, el personaje ascenderá automáticamente por esta. |
9. Waterfall Crest | 16.X / 17.X | Etiqueta usada para la parte superior de una cascada. Si el personaje se acerca a ella, éste descendera por la cascada automáticamente. |
10. TallGrass | 16.X / 17.X | Correspondiente a la hierba muy alta de la 3ra Gen. Para configurar las prioridades de esta hierba, échale un ojo a la Wiki de Pokémon Essentials | Terrain Tags |
11. Underwater Grass | 16.X / 17.X | Lo mismo que la etiqueta 2, pero bajo el agua. |
12. Ice | 16.X / 17.X | Usada para los bloques deslizantes, como el hielo. |
13. Neutral | 16.X / 17.X | No tienen ningún efecto, pero podemos usarlos para configurar uno (lo veremos más adelante...). |
14. SootGrass | 16.X / 17.X | Es como la zona de hierba con ceniza de la 3ra Gen. Si tenemos el Saco Hollín, se añadirá +1 a la variable "$PokemonGlobal.sootsack". |
15. Bridge | 16.X / 17.X | Usado para los puentes. Hay un vídeo de Fastbit que explica muy bien cómo hacer funcionar un puente. --- |
16. Puddle | 16.3 / 17.X | Usada para Charcos. Para que funcione esta etiqueta de terreno tenemos que usar 2 capas. En la Capa 1 colocamos un par de tiles con transparencia por dentro, como por ejemplo: En la Capa 2 colocamos el tile donde el personaje se reflejará (este llevará la etiqueta 16 mientras que el otro lleva la etiqueta de terreno 0). |
17. Desert | 16.3 | No he investigado mucho sobre este terreno, pero puede que sea para un tipo de tierra desértica, posiblemente con encuentros de Pokémon salvajes. |
Con esto ya deberíamos saber qué etiqueta ponerle a cada tile. Se pueden crear más etiquetas y añadirles efectos, pero esto lo veremos más adelante. Pasemos al siguiente apartado.
Cómo asignar Terrain Tags en un Tileset
No voy a explicar lo que es un Tileset, todo el mundo aquí debería saberlo.
Rivi, ¿qué es u...? UN TILESET ES UN CONJUNTO DE TILES. CÁLLATE YA, POR FAVOR.
Hay 2 maneras de asignar una etiqueta a un Tile:
- Desde el propio RPG Maker: Con esta opción es muy fácil agregar etiquetas, pero sólo podremos hacerlo de la 0 a la 7.
- Desde el Editor.exe / Menú de Debug: Con esta opción es más complicado agregar etiquetas, pero podemos agregarlas todas (de la 0 hasta las que tengamos).
Voy a explicar las 2 maneras.
Abrimos RPG Maker XP con nuestro Proyecto y vamos a la Base de Datos (o pulsamos F9). En la pestaña Tilesets tendremos un panel a la
derecha con un botón llamado Elegir Terreno.
Haciendo clic en las casillas aumentaremos +1 el número dentro de ellas hasta llegar a 7. Si le sumamos un clic al 7, éste volverá a 0.
Esto sería todo desde el programa.
derecha con un botón llamado Elegir Terreno.
Haciendo clic en las casillas aumentaremos +1 el número dentro de ellas hasta llegar a 7. Si le sumamos un clic al 7, éste volverá a 0.
Esto sería todo desde el programa.
En la 16.X tendremos un archivo en la carpeta del proyecto llamado Editor.exe. Desde ahí podremos entrar directamente.
En la 17.X tendremos que acceder desde Probar Juego en RPG Maker (F12). Posteriormente, en la pantalla donde aparece la partida guardada o Nueva Partida, nos dirigimos hacia abajo y seleccionamos Debug.
Los controles del menú de Debug son iguales que los del juego | C = Aceptar; X = Cancelar.
Cuando ya estamos en el menú de Debug, nos dirigimos al apartado Editor de información y, posteriormente, a Editar etiquetas de terreno. (Puede que esto último en la 16.X sea diferente, pero igualmente está por ahí...)
Nos aparecerá un mensaje, le diremos que sí y cuando nos aparezca el primer Tileset que tenemos en nuestro proyecto podremos empezar. Para cambiar a otro Tileset tendremos que pulsar la Z y luego en Cambiar Tileset.
Para asignar etiquetas de terreno nos colocaremos encima de un Tile y apretaremos la C. A continuación podremos asignarle el número que queramos.
IMPORTANTE:
Para guardar los cambios desde el Debug guardaremos al salir del editor y deberemos cerrar el RPG Maker SIN GUARDAR. Al entrar de nuevo en RPG Maker y abrir el apartado de los tileset, las etiquetas de terreno superiores a 7 deberían aparecer sin número, así:
En la 17.X tendremos que acceder desde Probar Juego en RPG Maker (F12). Posteriormente, en la pantalla donde aparece la partida guardada o Nueva Partida, nos dirigimos hacia abajo y seleccionamos Debug.
Los controles del menú de Debug son iguales que los del juego | C = Aceptar; X = Cancelar.
Cuando ya estamos en el menú de Debug, nos dirigimos al apartado Editor de información y, posteriormente, a Editar etiquetas de terreno. (Puede que esto último en la 16.X sea diferente, pero igualmente está por ahí...)
Nos aparecerá un mensaje, le diremos que sí y cuando nos aparezca el primer Tileset que tenemos en nuestro proyecto podremos empezar. Para cambiar a otro Tileset tendremos que pulsar la Z y luego en Cambiar Tileset.
Para asignar etiquetas de terreno nos colocaremos encima de un Tile y apretaremos la C. A continuación podremos asignarle el número que queramos.
IMPORTANTE:
Para guardar los cambios desde el Debug guardaremos al salir del editor y deberemos cerrar el RPG Maker SIN GUARDAR. Al entrar de nuevo en RPG Maker y abrir el apartado de los tileset, las etiquetas de terreno superiores a 7 deberían aparecer sin número, así:
Cómo crear una Terrain Tag básica
Como antes he dicho, voy a explicar cómo hacerlo tanto para la versión 16.X como para la versión 17.X, a si que estad atentos por si aviso, ya que entre distintas versiones algunos de los scripts suelen cambiar ligeramente.
La Terrain Tag que vamos a crear ahora no tendrá nada configurado, a si que va a ser igual para ambas versiones. Empecemos...
Abrimos el editor de scripts en RPG Maker (o F11) y buscamos en el panel izquierdo la sección PBTerrain. Para crear una etiqueta de terreno vamos a necesitar añadir 2 cosas en esta sección:
- La primera es una etiqueta con un número asignado. En este caso he creado una etiqueta llamada WaH, y le he asignado el número 18. De este manera, cuando coloque el número 18 a un tile en el editor, estaré pisando la etiqueta de terreno WaH.
- La segunda cosa que haremos será copiar un par de líneas más abajo y pegarlas. Luego sustituiremos el nombre de las etiquetas copiadas en las líneas nuevas.
Cómo crear una Terrain Tag Avanzada
Como ya sabemos, algunas Terrain Tags tienen efectos y características, como por ejemplo la 2: Animación de la hierba y encuentros salvajes. Lo que vamos a hacer en nuestra etiqueta de terreno nueva es agregarle un par de cosas.
Digamos que a nuestra etiqueta WaH vamos a agregarle la posibilidad de encuentros salvajes y que ese tile en especial refleje su imagen, como un charco.
En la sección PBTerrain, tenemos un par de características y entre ellas podemos encontrar def PBTerrain.hasReflections?(tag). Con este método podemos hacer que el evento que esté encima del tile con una etiqueta específica se refleje. Para añadir el reflejo a nuestra Terrain Tag tenemos que colocarla dentro de esta función, mirad como debería quedar el código:
Cambiamos de sección a PField_Encounters, que está un poco más abajo.
Primero debemos crear una nueva entrada en el módulo EncounterTypes, que aparece en las primeras líneas de esta sección. Vamos a crear uno llamado WaH para poder diferenciarlo.
Justo debajo de la imagen anterior tenemos el apartado EnctypeChances, EnctypeDensities y EnctypeCompileDens. Os explicaré para qué sirve cada uno:
- EnctypeChances es usado para la probabilidad (en %) de aparición de cada Pokémon que escribiremos en el archivo encounters.txt, de nuestra carpeta PBS. Como podéis ver hay 12 números, por lo tanto puede haber 12 Pokémon. Depende del orden que escribamos los Pokémon, tendrán un ratio de aparición distinto. También fijaos en que si sumamos los números de cada línea siempre van a dar 100%.
- EnctypeDensities es usado para la densidad de encuentros. Cuanta menos densidad, menos Pokémon aparecerán. A mayor densidad, más encuentros salvajes habrán. Es como cuando entras a una cueva plagada de Zubats, que a cada paso te atacan 20.
- EnctypeCompileDens es un número usado a la hora de editar el PBS para editar las densidades manualmente, porque si no, no serviría de nada la anterior. Estos dos últimos os podrán resultar algo confusos, pero más adelante lo veréis.
Es hora de agregar a WaH cada uno de estos valores.
Si queremos hacerlo de manera fácil podemos copiar y pegar cada valor, pero vamos a hacerlo por nosotros mismos para que veáis a lo que me refiero.
Vamos con los EnctypeChances:
La cantidad de Pokémon que podrán aparecer en nuestra etiqueta de terreno serán 7 con esas probabilidades.
Ahora es el turno de los EnctypeDensities:
En realidad este número da igual, se podrá editar manualmente más adelante, puedes escribir el que quieras.
Por último, acabamos con EnctypeCompileDens.
Este último es importante, ya que nos servirá para editar el EnctypeDensities más adelante. Siempre tendremos que poner un número más alto para usarlo más tarde. Como aquí el número más alto era un 3, he puesto un 4.
También fijaos en que he puesto todas esas líneas en la última parte de cada sección. Esto es porque he escrito WaH como último EncounterType. Cada posición hace referencia a uno, según el número que tengan.
Okey, queda muy poquito para acabar. Ahora prestad atención porque se viene lo más complicado, aunque yo lo explicaré bien
Primero vamos a crear una función para los encuentros. Nos dirigimos a la línea 73 aprox y copiamos el contenido que sería este. Lo editamos como lo hicimos antes, pero esta vez colocaremos el tipo de encuentro que hemos creado.
Ahora tenemos que encontrar el método def pbEncounterType, que estará por la línea 100 aprox.
Vamos a escribir esta línea debajo de return EncounterTypes::Cave y encima de elsif self.isGrass?. Atención aquí, eh.
Enriquecido (Código BB):
def pbEncounterType
if $PokemonGlobal && $PokemonGlobal.surfing
return EncounterTypes::Water
elsif self.isCave?
return EncounterTypes::Cave
elsif PBTerrain.isTU ETIQUETA DE TERRENO?(pbGetTerrainTag($game_player))
return EncounterTypes::TU ENCOUNTERTYPE
elsif self.isGrass?
time=pbGetTimeNow
enctype=EncounterTypes::Land
enctype=EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype=EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype=EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype=EncounterTypes::BugContest
end
return enctype
end
return -1
end
TU ENCOUNTERTYPE es la que creamos arriba del todo, en la sección PField_Encounters.
En mi caso las 2 se llamaban WaH, a si que me resulta fácil escribirlas.
Enriquecido (Código BB):
def pbEncounterType
if $PokemonGlobal && $PokemonGlobal.surfing
return EncounterTypes::Water
elsif self.isCave?
return EncounterTypes::Cave
elsif PBTerrain.isWaH?(pbGetTerrainTag($game_player))
return EncounterTypes::WaH
elsif self.isGrass?
time=pbGetTimeNow
enctype=EncounterTypes::Land
enctype=EncounterTypes::LandNight if self.hasEncounter?(EncounterTypes::LandNight) && PBDayNight.isNight?(time)
enctype=EncounterTypes::LandDay if self.hasEncounter?(EncounterTypes::LandDay) && PBDayNight.isDay?(time)
enctype=EncounterTypes::LandMorning if self.hasEncounter?(EncounterTypes::LandMorning) && PBDayNight.isMorning?(time)
if pbInBugContest? && self.hasEncounter?(EncounterTypes::BugContest)
enctype=EncounterTypes::BugContest
end
return enctype
end
return -1
end
Justo debajo del método anterior, encontramos otro método llamado def isEncounterPossibleHere?, que aproximadamente estará por la línea 126.
Vamos a copiar las líneas 129 y 130 y luego las pegamos debajo, así:
Enriquecido (Código BB):
def isEncounterPossibleHere?
if $PokemonGlobal && $PokemonGlobal.surfing
return true
elsif PBTerrain.isIce?(pbGetTerrainTag($game_player))
return false
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
end
return false
end
Enriquecido (Código BB):
def isEncounterPossibleHere?
if $PokemonGlobal && $PokemonGlobal.surfing
return true
elsif PBTerrain.isIce?(pbGetTerrainTag($game_player))
return false
elsif PBTerrain.isIce?(pbGetTerrainTag($game_player))
return false
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
end
return false
end
Con esto copiado sólo falta editar 2 valores. Sustituimos PBTerrain.isIce? por PBTerrain.isTU ETIQUETA DE TERRENO? y return false por return true, así:
Enriquecido (Código BB):
def isEncounterPossibleHere?
if $PokemonGlobal && $PokemonGlobal.surfing
return true
elsif PBTerrain.isIce?(pbGetTerrainTag($game_player))
return false
elsif PBTerrain.isWaH?(pbGetTerrainTag($game_player))
return true
elsif self.isCave?
return true
elsif self.isGrass?
return PBTerrain.isGrass?($game_map.terrain_tag($game_player.x,$game_player.y))
end
return false
end
ATENCIÓN: Llega el cambio entre las diferentes versiones.
Falta lo último, pero no por ello menos importante. Si os acordáis estuvimos editando una cosa llamada EnctypeCompileDens, ¿no? Pues es hora de introducirlo.
Aquí es donde encontramos las diferencias entre las versiones.
Nos dirigimos a la sección Editor, que estará por abajo, cerca de Main. Tenemos que ir a la línea 2317 aprox. para encontrar este código.
A continuación mirad lo que añadí. Podéis copiar y pegar si lo deseáis, pero fijaos bien.
Para quien no lo vea he añadido este código entre
Por último, al final de ese método he añadido
Código:
def pbEncounterEditorDensity(enc)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Land])
enc[0][EncounterTypes::Land]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en tierra (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Land]),params)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Cave])
enc[0][EncounterTypes::Cave]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en cuevas (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Cave]),params)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Water])
enc[0][EncounterTypes::Water]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en agua (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
for i in 0...EncounterTypes::EnctypeCompileDens.length
t=EncounterTypes::EnctypeCompileDens[i]
next if !t || t==0
enc[0][i]=enc[0][EncounterTypes::Land] if t==1
enc[0][i]=enc[0][EncounterTypes::Cave] if t==2
enc[0][i]=enc[0][EncounterTypes::Water] if t==3
end
end
A continuación mirad lo que añadí. Podéis copiar y pegar si lo deseáis, pero fijaos bien.
Código:
def pbEncounterEditorDensity(enc)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Land])
enc[0][EncounterTypes::Land]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en tierra (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Land]),params)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Cave])
enc[0][EncounterTypes::Cave]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en cuevas (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Cave]),params)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Water])
enc[0][EncounterTypes::Water]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en agua (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::WaH])
enc[0][EncounterTypes::WaH]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en WaH (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::WaH]),params)
for i in 0...EncounterTypes::EnctypeCompileDens.length
t=EncounterTypes::EnctypeCompileDens[i]
next if !t || t==0
enc[0][i]=enc[0][EncounterTypes::Land] if t==1
enc[0][i]=enc[0][EncounterTypes::Cave] if t==2
enc[0][i]=enc[0][EncounterTypes::Water] if t==3
enc[0][i]=enc[0][EncounterTypes::WaH] if t==4
end
end
Para quien no lo vea he añadido este código entre
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
y for i in 0...EncounterTypes::EnctypeCompileDens.length
. He cambiado Water por mi EncounterType, que era WaH.
Código:
params=ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Water])
enc[0][EncounterTypes::Water]=Kernel.pbMessageChooseNumber(
_INTL("Establecer la densidad de Pokémon en agua (por defecto {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
Por último, al final de ese método he añadido
enc[0][i]=enc[0][EncounterTypes::WaH] if t==4
. El 4 hace referencia al número que escribimos en EnctypeCompileDens.Esto sería todo en la 16.X
Nos dirigimos a la sección Editor_Screens. Nos dirigimos al principio y sobre la línea 9 sustituimos esto...
...por esto.
Ahora bajamos hasta la línea 149 aprox. Encontraremos esto:
Copiamos esto y lo pegamos antes de
Por último, debajo de
Sustituimos todos los "TU ENCOUNTERTYPE" por el vuestro, o en mi caso WaH y quedaría así.
Código:
commands.push(_INTL("Density: {1},{2},{3}",
enc[0][EncounterTypes::Land],
enc[0][EncounterTypes::Cave],
enc[0][EncounterTypes::Water]))
...por esto.
Código:
commands.push(_INTL("Density: {1},{2},{3},{4}",
enc[0][EncounterTypes::Land],
enc[0][EncounterTypes::Cave],
enc[0][EncounterTypes::Water],
enc[0][EncounterTypes::WaH]))
Ahora bajamos hasta la línea 149 aprox. Encontraremos esto:
Código:
def pbEncounterEditorDensity(enc)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Land])
enc[0][EncounterTypes::Land] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en la hierba (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Land]),params)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Cave])
enc[0][EncounterTypes::Cave] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en cuevas (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Cave]),params)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Water])
enc[0][EncounterTypes::Water] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en el agua (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
for i in 0...EncounterTypes::EnctypeCompileDens.length
t = EncounterTypes::EnctypeCompileDens[i]
next if !t || t==0
enc[0][i] = enc[0][EncounterTypes::Land] if t==1
enc[0][i] = enc[0][EncounterTypes::Cave] if t==2
enc[0][i] = enc[0][EncounterTypes::Water] if t==3
end
end
Copiamos esto y lo pegamos antes de
for i in 0...EncounterTypes::EnctypeCompileDens.length
Código:
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::TU ENCOUNTERTYPE])
enc[0][EncounterTypes::TU ENCOUNTERTYPE] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en la TU ENCOUNTERTYPE (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::TU ENCOUNTERTYPE]),params)
Por último, debajo de
enc[0][i] = enc[0][EncounterTypes::Water] if t==3
añadimos:
Código:
enc[0][i] = enc[0][EncounterTypes::TU ENCOUNTERTYPE] if t==4
Sustituimos todos los "TU ENCOUNTERTYPE" por el vuestro, o en mi caso WaH y quedaría así.
Código:
def pbEncounterEditorDensity(enc)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Land])
enc[0][EncounterTypes::Land] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en la hierba (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Land]),params)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Cave])
enc[0][EncounterTypes::Cave] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en cuevas (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Cave]),params)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::Water])
enc[0][EncounterTypes::Water] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en el agua (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::Water]),params)
params = ChooseNumberParams.new
params.setRange(0,100)
params.setDefaultValue(enc[0][EncounterTypes::WaH])
enc[0][EncounterTypes::WaH] = Kernel.pbMessageChooseNumber(
_INTL("Introduce la densidad en WaH (default {1}).",
EncounterTypes::EnctypeDensities[EncounterTypes::WaH]),params)
for i in 0...EncounterTypes::EnctypeCompileDens.length
t = EncounterTypes::EnctypeCompileDens[i]
next if !t || t==0
enc[0][i] = enc[0][EncounterTypes::Land] if t==1
enc[0][i] = enc[0][EncounterTypes::Cave] if t==2
enc[0][i] = enc[0][EncounterTypes::Water] if t==3
enc[0][i] = enc[0][EncounterTypes::WaH] if t==4
end
end
Esto sería todo en la 17.X
Pues con todo ya cambiado, estará lista nuestra nueva etiqueta de terreno.
Cabe destacar que para esta en especial necesitaréis configurarla como la terrain tag 16 (Puddle). En la Capa 1 ponéis un gráfico con transparencia por dentro y en la Capa 2 el tile donde se reflejará.
Si queremos configurar bien los encuentros, podemos hacerlo a través del Editor / Menú de Debug. Para guardar todos los cambios al editar los encuentros, después de editarlos tenemos que compilar los datos en el editor.
Pues nada, esto ha sido todo el tutorial. Espero haberos ayudado y si tenéis alguna duda podéis dejarla aquí o mandarme un mensaje privado. Incluso podéis hablarme por redes si no respondo.
¡Nos vemos!
¡Nos vemos!
Última edición: