Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4064 miembros registrados.
El último usuario registrado es cesarseb233.

Nuestros miembros han publicado un total de 84111 mensajes en 11982 argumentos.

[XP] Clasificación de Mapas de Calayax

Ver el tema anterior Ver el tema siguiente Ir abajo

[XP] Clasificación de Mapas de Calayax

Mensaje por Calayax el 2017-08-12, 04:41

CLASIFICACIÓN DE MAPAS DE CALAYAX
RPG Maker XP




¿Qué es un Calayax? se preguntarán... pues un Enginer... o eso creo. Pero hoy les traigo algo así como el Primer Script en que trabajo y termino, tuve cierta ayuda pero... ¿Quién no? De todos modos me atrevería a decir que es "mi primer script"

Sobre el Script:

Ahora ¡Vamos al grano! ¿Qué hace? Es un "Facilitador de tareas tediosas" Lo que hace en sí es permitirnos colocar las ID de nuestros Mapas en sus clasificaciones. (Por defecto son 3) y así clasificarlos según lo que son.

Por ejemplo, si tengo un bosque y quiero que algo se replique en todos mis bosques si es que lo hago en un Engine me obligaría a usar una variable para reconocer el Id del mapa, y una cantidad de codicionales que me ayuden a definir que clase de mapa es.

Variable Mapa = ID MAPA
Si ID MAPA = 1
Variable TIPO MAPA = 1
Si ID MAPA = 2
Variable TIPO MAPA = 1
(etc)

Pero no se torna muy sencillo ni práctico cuando el número de mapas va creciendo exponencialmente con nuestro proyecto de manera que tengamos 20 o más ID de mapas distintos. Sin mencionar que a cada "Tipo Mapa" deberíamos añadir lo que queramos que ocurra en el Bosque y demás.

Seguramente muchos no le encuentren un valor práctico, pero en lo personal sé que le puedo encontrar muchísimos usos y espero que con un poco de creatividad quien quiera usarlo también.





Evento :
Para las imágenes anteriores lo que se requiere es simplemente esto :

Instrucciones:

Pegar sobre Main
INSTRUCCIONES EN EL SCRIPT


Código:

#==============================================================================
# CLASIFICACION DE MAPAS DE CALAYAX
#------------------------------------------------------------------------------
#==============================================================================
# Agradecimientos a Silvanash por la paciencia y ayuda con lo referente a los hash-array
#------------------------------------------------------------------------------
#==============================================================================
# Para que haya más tipos de mapas solo anañadir más lugares. Del modo
#==============================================================================
# :LUGAR => [Mapas] al interior de los [] deberán colocarse las ID de los mapas
#==============================================================================
# De ese modo los Mapas 1, 4 son bosque. El 2, 5 son desierto y el 3, 6 son pradera
# bastará con añadir las ID en el sitio respectivo para obtener el resultado esperado
# Para definir la ID del Map he utilizado "$game_variables[33]", es decir, la
# variable 33 de nuestra lista de variables.
# Luego de ello utilizo un llamar script con el siguiente contenido:
#==============================================================================            
# "@class_llamada = Map.new"
#==============================================================================
# finalmente definirá el valor de la variable según el tipo de mapa, de modo
# que sea selva = 1, desierto = 2, pradera = 3
# ¿De qué servirá? Pues simple. Si queremos que en un determinado tipo de mapa
# ocurra algo de manera fija, utilizando el valor anterior podremos hacerlo
# con cierta facilidad.
#==============================================================================

class Map  
def initialize
  
map = {
:selva =>[1, 4],    
:desierto => [2, 5],  
:pradera => [3, 6],  
}

 a = nil
 map.each_key {| k |
 if map[k].include?($game_variables[33])
 a = k
 break
 end
 }
 case a
 when :selva
 $game_variables[33] = 1
 when :desierto
 $game_variables[33] = 2
 when :pradera
 $game_variables[33] = 3
else
 $game_variables[33] = 0
 end
end
end


Créditos:

Credito 1: Silvanash por ayudarme a entender los elementos de Hash.
Credito 2 Wecoc por sus miles de scripts que uso día a día.
Credito 3 Ledai, por ser mi idola en lo que son los Engines y demostrarme en varias ocasiones que pequeños atajos de scripts no son malos.


Última edición por Calayax el 2017-08-13, 02:56, editado 1 vez
avatar
Calayax
Soñador
Soñador

0/3

Créditos 570

Gracias : 30

Volver arriba Ir abajo

Re: [XP] Clasificación de Mapas de Calayax

Mensaje por Wecoc el 2017-08-12, 11:09

No está mal pero usaste poco lo que ya te da el maker por defecto para ese tipo de clasificaciones, así que te has complicado la vida más de la cuenta. Pero bueno, al menos has aprendido a usar los hash, eso está bien :)

Mira, si lo hubieras hecho en Game_Map dependiendo del ID de mapa directamente el script hubiera quedado algo así:

Código:
class Game_Map
  def map_zone
    case @map_id
    when 1, 4
      "Selva"
    when 2, 5
      "Desierto"
    when 3, 6
      "Pradera"
    else
      "-"
    end
  end
end

Y luego ésto puedes pasarlo a variable directamente (sí, se aceptan textos como variable)



O bien para hacerlo más parecido a como hiciste hubieras podido comprobar $game_map.map_zone en Condiciones y Efectos, de modo que te ahorras el uso de variables.



Hacerlo así tiene otra ventaja; hay algunos scripts de Location que muestran la zona o nombre actual del mapa ya sea en el menú o al entrar en ese mapa, en mi juego por ejemplo se ve el nombre del mapa al entrar en el menú. Con ésto se puede cambiar para usar nuestro sistema de zonas directamente, o incluso mostrar las dos cosas.

PD.- Otra cosa es que quieras la posibilidad de cambiar ese valor para un determinado mapa a medio juego, en ese caso hay que plantearlo distinto. En ese otro caso mi recomendación sería definir el nuevo "parámetro" en RPG::Map usado el script Data File Save.
avatar
Wecoc
Administrador
Administrador



Créditos 9129

Gracias : 471

Volver arriba Ir abajo

Re: [XP] Clasificación de Mapas de Calayax

Mensaje por Calayax el 2017-08-12, 11:22

@Wecoc escribió:No está mal pero usaste poco lo que ya te da el maker por defecto para ese tipo de clasificaciones, así que te has complicado la vida más de la cuenta. Pero bueno, al menos has aprendido a usar los hash, eso está bien :)

Mira, si lo hubieras hecho en Game_Map dependiendo del ID de mapa directamente el script hubiera quedado algo así:

Código:
class Game_Map
  def map_zone
    case @map_id
    when 1, 4
      "Selva"
    when 2, 5
      "Desierto"
    when 3, 6
      "Pradera"
    else
      "-"
    end
  end
end

Y luego ésto puedes pasarlo a variable directamente (sí, se aceptan textos como variable)



O bien para hacerlo más parecido a como hiciste hubieras podido comprobar $game_map.map_zone en Condiciones y Efectos, de modo que te ahorras el uso de variables.



Hacerlo así tiene otra ventaja; hay algunos scripts de Location que muestran la zona o nombre actual del mapa ya sea en el menú o al entrar en ese mapa, en mi juego por ejemplo se ve el nombre del mapa al entrar en el menú. Con ésto se puede cambiar para usar nuestro sistema de zonas directamente, o incluso mostrar las dos cosas.

PD.- Otra cosa es que quieras la posibilidad de cambiar ese valor para un determinado mapa a medio juego, en ese caso hay que plantearlo distinto. En ese otro caso mi recomendación sería definir el nuevo "parámetro" en RPG::Map usado el script Data File Save.

Interesante, muy interesante. De todos modos en el ejemplo lo uso para mostrar el mapa, la verdad la intención era obtener el número solamente. Sobre los hash... Tuve bastante ayuda de silva(mientras hacía unos de sus trabajos). Además de eso que añades en el PD.

Me llama la atención lo de scripts de localización que muestren el nombre del mapa. Me da algunas ideas...
avatar
Calayax
Soñador
Soñador

0/3

Créditos 570

Gracias : 30

Volver arriba Ir abajo

Re: [XP] Clasificación de Mapas de Calayax

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.