Cambiar la moneda en medio de la partida. (VX ACE)

Ver el tema anterior Ver el tema siguiente Ir abajo

Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por MCarlos15 el Miér Ago 23, 2017 3:50 pm

¡Buenas! Llevo un tiempo utilizando RPG Maker VX ACE, pero todavía hay cosas que no domino, como el tema de los Scripts.
Mi pregunta es, ¿existe alguno que permita cambiar el nombre de la moneda en medio del juego? (En el RPG que estoy haciendo, los personajes viajan a otros países, y sería un buen detalle que la moneda cambiase)

MCarlos15
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 4
Monedas : 10
Reputación : 0

Volver arriba Ir abajo

usa call script

Mensaje por KRiZaLiD el Miér Ago 23, 2017 5:28 pm

Puedes usar un call script para cambiar eso.

Por ejemplo si vas a USA usas dólares. Deberías escribir esto:
$data_system.currency_unit = "Dolares"

Pero si vas a Chile usas Pesos. Deberías escribir esto:
$data_system.currency_unit = "Pesos"

Ese call script se escribe en la opción llamar scrip. Si tienes dudas con respecto a los call script pasa a la sección tutoriales y ahí encontraras 3 tutoriales míos en donde enseño a usar varios call scripts.
Espero haber solucionado tu duda. Saludos.

Kriz

_________________
Mi Proyecto:


KRiZaLiD apoya:
avatar
KRiZaLiD
Moderador
Moderador

Masculino
Chile
RPG Maker : Vx
Mensajes : 699
Monedas : 3707
Reputación : 88
Edad : 32
Localización : Florida (pueblo fantasma), Chile

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por Pokefanmati el Miér Ago 23, 2017 5:48 pm

Yaps, a ver, creo que debería funciona.
Lo primero (Y más fácil) es que hagas un evento que convierta las monedas.
Osea que si 100 chelines valen 2 smiqukes. que tome los chelines, los divida por 100 y los multiplique por 2 (Si vas a usar más de 3 monedas, quizás quieras usar eventos comunes)

En cuanto a la unidad utilizada...
Código:
module Vocab
  VARIABLE_ORO = 2 #El numero de la variable
  def self.currency_unit
    if $game_variables[VARIABLE_ORO] == 0
    return "$"
    end
    if $game_variables[VARIABLE_ORO] == 1
    return "G"
    end
    # Y con el mismo formato sigues agregando
  end

end
Pegalo debajo de "materials", no debería ser incompatible, pero si pasa algo, pruébalo dejándolo de los primeros.
Si no te anda, me avisas, yo lo hice, los créditos no son necesarios

Edito: 
Si usas
$data_system.currency_unit = "algo"
No va a funcionar cuando leas la partida. (El valor se reinicia)
avatar
Pokefanmati
PJ Secundario
PJ Secundario

Masculino
Chile
RPG Maker : Ace
Mensajes : 134
Monedas : 305
Reputación : 13
Edad : 20
Localización : En el cuarto del boss

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por KRiZaLiD el Miér Ago 23, 2017 6:30 pm

Pokefanmati escribió:
Edito: 
Si usas
$data_system.currency_unit = "algo"
No va a funcionar cuando leas la partida. (El valor se reinicia)

Ignoraba que se reinicia el valor. Gracias por ese dato, Pokefan. Pero eso yo lo soluciono editando el "Scene_Load". Te diriges a la linea 39 y escribes por ejemplo $game_switches[69] = true.
De esa manera cada vez que cargas unas partida se ejecutará 1 vez el interruptor 69.

Con ese interruptor activas un evento común en proceso paralelo en donde obviamente debes crear un engine que revise en que zona te encuentras y dependiendo de la zona cambia el tipo de "moneda". Luego apaga el interruptor 69.
Y cada vez que cargues la partida volverá a revisar y cambiará la moneda que corresponda.

Si no se te ocurre como crear ese engine pues pregunta. Pero sería ideal que lo intentaras, pues es un engine divertido.
Saludos

KriZ

_________________
Mi Proyecto:


KRiZaLiD apoya:
avatar
KRiZaLiD
Moderador
Moderador

Masculino
Chile
RPG Maker : Vx
Mensajes : 699
Monedas : 3707
Reputación : 88
Edad : 32
Localización : Florida (pueblo fantasma), Chile

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por Pokefanmati el Miér Ago 23, 2017 7:06 pm

Es una buena opción. Pero recuerda siempre que no es muy recomendable tener muchos procesos paralelos corriendo :s

Oh, MCarlos15. creo que puedo mejorar un poco el script, lo veo en la tarde, que ahora estoy en la U

Edito:
Listo ;3
Código:
module Vocab
  VARIABLE_ORO = 2 # El numero de la variable
  UNIDADES_DEL_JUEGO = ["$","G","Hola"] # Separados por coma y entre comillas
  def self.currency_unit
    return "" if VARIABLE_ORO == 0
    return UNIDADES_DEL_JUEGO[$game_variables[VARIABLE_ORO]]
  end
end

Eso, cualquier duda me preguntas. Los créditos no son necesarios.
avatar
Pokefanmati
PJ Secundario
PJ Secundario

Masculino
Chile
RPG Maker : Ace
Mensajes : 134
Monedas : 305
Reputación : 13
Edad : 20
Localización : En el cuarto del boss

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por MCarlos15 el Miér Ago 23, 2017 10:13 pm

Gracias. Pero estoy un poco confunso...
Copio el script de la primera respuesta y funciona. Si salgo del juego con la opción "volver al título" y vuelvo a entrar en la partida en la que he activado el script el nombre de la moneda sigue cambiado, pero si cierro del todo la ventana del juego y vuelvo a entrar, sí que vuelve a su nombre original (€)
Entonces, ¿se supone que tengo que activar un proceso paralelo en todas las zonas del juego en las que quiero que la moneda esté cambiada? No tengo experiencia con ese tipo de eventos, así que tengo muchas dudas.

EDITO: Vale, creo que ya lo he entendido. Tengo que poner un evento automático en cada zona del RPG en la que quiero que el nombre de la moneda cambie, para que incluso al abandonar el juego, si se vuelve a iniciar en una de dichas zonas, el nombre siga siendo otro. O al menos esta es una de las maneras de que esto funcione, ¿no?

MCarlos15
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 4
Monedas : 10
Reputación : 0

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por Pokefanmati el Jue Ago 24, 2017 5:21 pm

MCarlos, usa el mío, el este caso cuando queras cambiar la moneda sólo cambia la variable del juego numero 2 (Puedes configurarlo desde el script).

Código:
module Vocab

  #Variable del oro: Cambia este número por el numero de la variable que quieras
  # usar para cambiar la moneda, en este caso, 0 es "$" y 1 es "G"
  VARIABLE_UNIDAD = 2

  # Las monedas: para agregar más, pone comas y las escribes entre comillas
  UNIDADES_DEL_JUEGO = ["$","G","Hola"]
# --------------------------------------------------------------  
  def self.currency_unit
    return "" if VARIABLE_UNIDAD == 0
    return UNIDADES_DEL_JUEGO[$game_variables[VARIABLE_UNIDAD]]
  end
end

Tienes que pegarlo en la parte de scripts (F11 desde el maker) debajo de donde dice "materials"

La razón por la que el otro no funciona es porque sencillamente el juego no guarda la variable $data_system.currency_unit. Pero si guarda la variables del juego.

Repito, No llames a este código desde un script call, guárdalo como un script.

PD: Añadir muchos eventos paralelos puede ralentizar tu juego, además crearlos todos será un lío. Con este método sólo tienes que cambiar el valor de la variable una vez (Por defecto 2) cada vez que los personajes viajen
avatar
Pokefanmati
PJ Secundario
PJ Secundario

Masculino
Chile
RPG Maker : Ace
Mensajes : 134
Monedas : 305
Reputación : 13
Edad : 20
Localización : En el cuarto del boss

Volver arriba Ir abajo

Re: Cambiar la moneda en medio de la partida. (VX ACE)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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