Registrarse

[RH - Otros] Cambiar precio ítems decoración

Estado
Cerrado para nuevas respuestas.

Ryurs

Usuario de oro
Buenas noches, me encuentro con un par de dudas:

1. ¿Sabéis alguna forma de cambiar el precio de los ítems de decoración para las bases secretas (muñecos, sillas, mesas, plantas, etc)?
Con el "Item Editor" se puede cambiar el precio de un montón de elementos (básicamente todos los objetos que van a la mochila), pero para estos elementos de decoración no se como podría hacerlo.

2. ¿Se podría mediante un script o con otra forma que se os ocurra comprar pokécuartos (el dinero del juego) con Puntos de Batalla (Battle Points: PB)?
Supongo que con algo parecido al script que se encuentra en los casinos que te cambian dinero por fichas, pero es que no se si el dinero del juego o los battle points tienen un código para ello (como lo tienen los ítems por ejemplo).

Gracias de antemanooo :)
 

Eaas

Profesional de WaH
Buenas noches, me encuentro con un par de dudas:

1. ¿Sabéis alguna forma de cambiar el precio de los ítems de decoración para las bases secretas (muñecos, sillas, mesas, plantas, etc)?
Con el "Item Editor" se puede cambiar el precio de un montón de elementos (básicamente todos los objetos que van a la mochila), pero para estos elementos de decoración no se como podría hacerlo.

2. ¿Se podría mediante un script o con otra forma que se os ocurra comprar pokécuartos (el dinero del juego) con Puntos de Batalla (Battle Points: PB)?
Supongo que con algo parecido al script que se encuentra en los casinos que te cambian dinero por fichas, pero es que no se si el dinero del juego o los battle points tienen un código para ello (como lo tienen los ítems por ejemplo).

Gracias de antemanooo :)
Busca una tool de edicion de item y arregla eso.
Puede ser item manager o gen3tool
 

Eaas

Profesional de WaH
Ninguna de esas herramientas modifican nada que tenga que ver con ítems de decoración.
Ahh decoracion, es ruby o emerald entonces.
Mira yo no uso esos item. Puedes habrir el script de la pc de la base secreta y ven coml funsiona pero eso es una rutina.
Tinees que temer conociminetos asm para entender lo que hace.
 

Ryurs

Usuario de oro
Ahh decoracion, es ruby o emerald entonces.
Mira yo no uso esos item. Puedes habrir el script de la pc de la base secreta y ven coml funsiona pero eso es una rutina.
Tinees que temer conociminetos asm para entender lo que hace.
Scripts como tal no hay en el pc de las bases secretas (me refiero a poder abrirlos desde el advance map).

En realidad muy difícil como tal no debería ser, sería localizar el ítem en cuestión y modificar con un editor hexadecimal donde se encuentra el apartado que le asigna un precio dentro del juego.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Scripts como tal no hay en el pc de las bases secretas (me refiero a poder abrirlos desde el advance map).

En realidad muy difícil como tal no debería ser, sería localizar el ítem en cuestión y modificar con un editor hexadecimal donde se encuentra el apartado que le asigna un precio dentro del juego.
Asumiendo que estás trabajando con Pokémon Emerald y si no estoy leyendo mal yo, la tabla que contiene los distintos objetos de decoración empieza en el offset 0x680868 y termina en 0x681788.
 

Eaas

Profesional de WaH
Asumiendo que estás trabajando con Pokémon Emerald y si no estoy leyendo mal yo, la tabla que contiene los distintos objetos de decoración empieza en el offset 0x680868 y termina en 0x681788.
La verdad interesante el dato, peeo tu deduccion esta rara. Donde el dice que es emarald?
La verdad expesifica en que base es chaval para que te puedan ayudar mejor.
Aunque estoy en mi trabajo por lo que no puedo ayudar mucho.
 

Lunos

Enfrentando a La Organización
Miembro insignia
peeo tu deduccion esta rara. Donde el dice que es emarald?
Mi deduccción no es rara en lo absoluto.
El usuario no especificó la base con la que trabaja (hay 3 juegos principales de Pokémon para la GBA con un sistema de decoraciones, y 2 de ellos tienen 3 versiones de juego diferentes cada uno en Ingles), por lo que asumí que está usando el mejor juego base de los 3 que pudo elegir, que es Emerald.
Aun así, en el caso de que Ryurs este usando Ruby o Sapphire, probablemente podré postear los offsets de la tabla en esos juegos tambien.

Pero sí, idealmente cuando un usuario pide ayuda, deberia ofrecer toda la información basica necesaria para que otros les puedan ayudar.
Cuando no es el caso, no queda otra mas que averiguarlo a la antiguita; haciendo preguntas y deducciones.
 

Ryurs

Usuario de oro
En realidad la base que uso es el Pokémon Esmeralda en español.

Encontré la solución, asique procedo a explicarla por si a alguien le sirve de ayuda:

Indagando un poco las descripciones de algún objeto de decoración y el offset donde se encuentran estas descripciones, busqué el puntero que lleva a esa descripción y ahí encontré lo que buscaba. Busqué luego alguna parte del código que diera un precio del juego, por ejemplo, el primer objeto que hay de la lista de ítems de decoración es la "SILLA PEQUEÑA", con un precio predeterminado en el juego de 2000.

2000 en hexadecimal es 07 D0, por lo que intercambiando los bytes nos queda D0 07, que será lo que debemos cambiar. Si por ejemplo queremos que nuestra "SILLA PEQUEÑA" tenga un precio de 100, como 100 en hexadecimal es 00 64, intercambiamos los bytes y nos queda 64 00; pues cambiaremos nuestro D0 07 de antes por 64 00, y se cambiará el precio en el juego. Así para el resto de ítems que queramos cambiar.

Asumiendo que estás trabajando con Pokémon Emerald y si no estoy leyendo mal yo, la tabla que contiene los distintos objetos de decoración empieza en el offset 0x680868 y termina en 0x681788.
Por curiosidad miré esos offsets en una rom de emerald y no eran los correctos para cambiar este tipo de cosas del precio.

Buenas noches, me encuentro con un par de dudas:

1. ¿Sabéis alguna forma de cambiar el precio de los ítems de decoración para las bases secretas (muñecos, sillas, mesas, plantas, etc)?
Con el "Item Editor" se puede cambiar el precio de un montón de elementos (básicamente todos los objetos que van a la mochila), pero para estos elementos de decoración no se como podría hacerlo.

2. ¿Se podría mediante un script o con otra forma que se os ocurra comprar pokécuartos (el dinero del juego) con Puntos de Batalla (Battle Points: PB)?
Supongo que con algo parecido al script que se encuentra en los casinos que te cambian dinero por fichas, pero es que no se si el dinero del juego o los battle points tienen un código para ello (como lo tienen los ítems por ejemplo).

Gracias de antemanooo :)
@Lunos Para la segunda pregunta del post, ¿se te ocurre algo? :cry:
 

Eaas

Profesional de WaH
Bu
En realidad la base que uso es el Pokémon Esmeralda en español.

Encontré la solución, asique procedo a explicarla por si a alguien le sirve de ayuda:

Indagando un poco las descripciones de algún objeto de decoración y el offset donde se encuentran estas descripciones, busqué el puntero que lleva a esa descripción y ahí encontré lo que buscaba. Busqué luego alguna parte del código que diera un precio del juego, por ejemplo, el primer objeto que hay de la lista de ítems de decoración es la "SILLA PEQUEÑA", con un precio predeterminado en el juego de 2000.

2000 en hexadecimal es 07 D0, por lo que intercambiando los bytes nos queda D0 07, que será lo que debemos cambiar. Si por ejemplo queremos que nuestra "SILLA PEQUEÑA" tenga un precio de 100, como 100 en hexadecimal es 00 64, intercambiamos los bytes y nos queda 64 00; pues cambiaremos nuestro D0 07 de antes por 64 00, y se cambiará el precio en el juego. Así para el resto de ítems que queramos cambiar.



Por curiosidad miré esos offsets en una rom de emerald y no eran los correctos para cambiar este tipo de cosas del precio.



@Lunos Para la segunda pregunta del post, ¿se te ocurre algo? :cry:
Bueno ahora si ya c que es emerald.
Puew yo trabajo ruby x lo que no me socializo mucho con emerald.
Pero en el Battle Frontier de emrald hay especies de tiendas en las cuales te venden objetos por los PB.
Ahi puedes revosar de que manera es que funcionan estos script y appyarte en ese metodo.
Y comparar pokecuartos. Supongo wue te refieres a comparar en que base secreta estas, pues la verdad puedes ingeniartela y dar en script de nivel una variable y darle en cada base un valor a esa variable y en el script que usas comparar el valor de esa variable.
Aunque aun no me queda del todo claro a lo que te refieres, tal vez Lunos tenga una mejor idea ya que el trabaja en Emerald.
 

Lunos

Enfrentando a La Organización
Miembro insignia
Por curiosidad miré esos offsets en una rom de emerald y no eran los correctos para cambiar este tipo de cosas del precio.
Ya, como dije, los offsets que brindé son el punto inicial y el punto final de la tabla que contiene los datos de los objetos de decoración.
Esta tabla, basicamente: https://github.com/pret/pokeemerald/blob/master/src/data/decoration/header.h#L1

No es una tabla con precios, es una tabla que contiene los datos generales correspondientes a los objetos de decoración, incluidos los precios.
Pero bueh, como tú estás usando Esmeralda, pues naturalmente estará ubicada en otra parte de la ROM, y siempre existe la posibilidad de que esté estructurada de forma diferente internamente, comparado a la ROM Americana. No te sabria decir ya que jamas he modificado las ROMs en Español cuando hacia un poco de ROM Hacking binario.
@Lunos Para la segunda pregunta del post, ¿se te ocurre algo? :cry:
Nope. Jamas he hecho nada con los BPs, asi que no tengo ni idea.
Mirando un poco el script de las tiendas de BP en el Frente Batalla, tiene pinta de que los BPs se manejan de manera mixta, un poco mediante scripts en el overworld y otro poco en funciones de codigo dentro del juego.

El agujero empieza en estos lugares:

Como dijo Eaas por ahi arriba, es posible que necesites modificar algunas de estas cosas mediante ASM. No lo sé, no lo he revisado muy a fondo.
 

Versekr Dark

Usuario mítico
Para los PB, podrías hacer un script mediante la cuenta de una variable, cada vez que ganes aumentar el valor de la variable y cada vez que gastes lo mismo cuentas el valor de la variables y restas o aumentas dependiendo, no se si te refieras a eso.

Tengo entendido que la decoración se puede dar mediante un codigo de scripts, supongo que si se podra como tedigo.
 

Ryurs

Usuario de oro
Bu
Bueno ahora si ya c que es emerald.
Puew yo trabajo ruby x lo que no me socializo mucho con emerald.
Pero en el Battle Frontier de emrald hay especies de tiendas en las cuales te venden objetos por los PB.
Ahi puedes revosar de que manera es que funcionan estos script y appyarte en ese metodo.
Y comparar pokecuartos. Supongo wue te refieres a comparar en que base secreta estas, pues la verdad puedes ingeniartela y dar en script de nivel una variable y darle en cada base un valor a esa variable y en el script que usas comparar el valor de esa variable.
Aunque aun no me queda del todo claro a lo que te refieres, tal vez Lunos tenga una mejor idea ya que el trabaja en Emerald.
También pensé en esto para hacer lo de comprar pokécuartos mediante PB. Si los pokécuartos tuvieran un código como lo tienen los objetos (la pokeball por ejemplo se define mediante "0x4"), pues esto podría ser una opción, aunque solo se me ocurre que podría comprarlos de 1 en 1 de esta forma en el caso de que se pudiera, por lo que sería un engorro.

Con pokécuartos me refiero al dinero del juego XD (lo puse antes), no a las habitaciones de las bases secretas.


Ya, como dije, los offsets que brindé son el punto inicial y el punto final de la tabla que contiene los datos de los objetos de decoración.
Esta tabla, basicamente: https://github.com/pret/pokeemerald/blob/master/src/data/decoration/header.h#L1

No es una tabla con precios, es una tabla que contiene los datos generales correspondientes a los objetos de decoración, incluidos los precios.
Pero bueh, como tú estás usando Esmeralda, pues naturalmente estará ubicada en otra parte de la ROM, y siempre existe la posibilidad de que esté estructurada de forma diferente internamente, comparado a la ROM Americana. No te sabria decir ya que jamas he modificado las ROMs en Español cuando hacia un poco de ROM Hacking binario.
Haciendo el mismo procedimiento que usé para localizar los offsets de los ítems de decoración en el Esmeralda en español, lo hice para Emerald y me sale el offset 0x5A5C3C siendo este el precio del primer ítem de la lista de los elementos de decoración, luego solo habría que ir bajando y cambiando el precio de las demás cosas. Es por eso que te dije que los offsets que tú indicaste no eran los adecuados para cambiar estas cosas (a no ser que sean versiones diferentes de Emerald, que podría ser).


Nope. Jamas he hecho nada con los BPs, asi que no tengo ni idea.
Mirando un poco el script de las tiendas de BP en el Frente Batalla, tiene pinta de que los BPs se manejan de manera mixta, un poco mediante scripts en el overworld y otro poco en funciones de codigo dentro del juego.
Sí, revisando los scripts de estas tiendas se podría hacer algo. Ya los estuve mirando y se puede modificar los ítems que hay y su precio, aunque no sé como cambiar la imagen, porque además utiliza como una especie de multichoice pero que sin embargo multichoice como tal en el script de estas tiendas no hay, por lo que hay que cambiar los textos de la descripción y del precio del objeto (lo que se ve en pantalla) "a mano". Esto último no tiene que ver con la duda inicial pero bueno, me pareció interesante remarcarlo.

Voy a ver si le doy una vuelta a ver que se me ocurre y esté dentro de mis limitados conocimientos del rom hacking.


Para los PB, podrías hacer un script mediante la cuenta de una variable, cada vez que ganes aumentar el valor de la variable y cada vez que gastes lo mismo cuentas el valor de la variables y restas o aumentas dependiendo, no se si te refieras a eso.

Tengo entendido que la decoración se puede dar mediante un codigo de scripts, supongo que si se podra como tedigo.
Hmmm, no te acabo de entender del todo lo que quieres decir pero creo que no es lo que estoy preguntando. Resumiendo lo que busco yo es crear como un tipo de tienda/npc que te de pokécuartos (el npc) a cambio de PB (tuyos).
 

Eaas

Profesional de WaH
También pensé en esto para hacer lo de comprar pokécuartos mediante PB. Si los pokécuartos tuvieran un código como lo tienen los objetos (la pokeball por ejemplo se define mediante "0x4"), pues esto podría ser una opción, aunque solo se me ocurre que podría comprarlos de 1 en 1 de esta forma en el caso de que se pudiera, por lo que sería un engorro.

Con pokécuartos me refiero al dinero del juego XD (lo puse antes), no a las habitaciones de las bases secretas.




Haciendo el mismo procedimiento que usé para localizar los offsets de los ítems de decoración en el Esmeralda en español, lo hice para Emerald y me sale el offset 0x5A5C3C siendo este el precio del primer ítem de la lista de los elementos de decoración, luego solo habría que ir bajando y cambiando el precio de las demás cosas. Es por eso que te dije que los offsets que tú indicaste no eran los adecuados para cambiar estas cosas (a no ser que sean versiones diferentes de Emerald, que podría ser).




Sí, revisando los scripts de estas tiendas se podría hacer algo. Ya los estuve mirando y se puede modificar los ítems que hay y su precio, aunque no sé como cambiar la imagen, porque además utiliza como una especie de multichoice pero que sin embargo multichoice como tal en el script de estas tiendas no hay, por lo que hay que cambiar los textos de la descripción y del precio del objeto (lo que se ve en pantalla) "a mano". Esto último no tiene que ver con la duda inicial pero bueno, me pareció interesante remarcarlo.

Voy a ver si le doy una vuelta a ver que se me ocurre y esté dentro de mis limitados conocimientos del rom hacking.




Hmmm, no te acabo de entender del todo lo que quieres decir pero creo que no es lo que estoy preguntando. Resumiendo lo que busco yo es crear como un tipo de tienda/npc que te de pokécuartos (el npc) a cambio de PB (tuyos).
Bueno chaval, se me ocurre una sola cosa.
Ponte en un script en el que te den una cantidad exacta de pokecuartos como tu dices.
Ahora fijate en cuantos tienes.
Ahora ve a memory viewer en el vba.
Y guarda desde la direccion 00000000 hasta la
03000000 mas o menos.
Ahora el archivo guardado lo abres con HxD.
Y le das a buscar en valores hexadecimales.
Y buscas el valor equivalente a la cantidad de pokecuartos en hex.
Te deveria de llevar a un offset de la ram.
En fin empesaria con 02.
En esa direccion puedes usar el comando comparefarbytetobyte para comparar la cantidad de pokecuartos
 
Estado
Cerrado para nuevas respuestas.
Arriba