qna_rh
Thread Id: 27820
Thread Name: [DUDA] Combates estilo torre batalla? en FR
#0
J.com 12785
Haber zagalees, necesito help.
Estoy reformando el script del Faro batalla (los que jugaron la beta 3 de mi hack sabrán lo que es). Para los que no lo sepan, es una especie de "liga pokémon", te enfrentas a 5 tipos seguidos en 5 niveles, y solo puedes entrar al torneo con 3 pokémon.

El caso es que en la beta 3 lo hice a lo cutre, la tia que te deja pasar comprueba si tienes 3 pokes en tu equipo, si tienes mas o menos de 3 no te deja, si tienes 3 si. He cambiado el script y e puesto el special que te da a elegir 3 pokémon de tu equipo, y despues de elegirlos solo se quedan esos 3 (como enel frente de batalla, torre batalla, etc..)

Pero ahora mi problema es que, si pierdo algún combate, aparezco obiamente en el CP de la ciudad, pero en mi equipo siguen estando solo los 3 pokemon que elegí, los de demás no están.

Quiero saber cómo se hace para que al perder un combate, Mi equipo vuleva a estar completo y, preferiblemente, aparecer en la entrada del Faro Batalla en vez de en el CP.

Eso es toh'
#1
Dani_SR_17 28493
Nunca he usado esos comandos pero bueno, supongo que los datos de dichos Pokes se guardaran en algún punto de la memoria, ¿Cuando ganas, como se "rellena" tu euipo con dichos Pokes?¿Con algún comando en concreto?, que teng una idea, pero sin saber como va... xD


PD: Si, una gran idea lo del faro, cuando lo jugué me gusto :D
#2
J.com 12785
Iniciado por Dani_SR_17
Nunca he usado esos comandos pero bueno, supongo que los datos de dichos Pokes se guardaran en algún punto de la memoria, ¿Cuando ganas, como se "rellena" tu euipo con dichos Pokes?¿Con algún comando en concreto?, que teng una idea, pero sin saber como va... xD


PD: Si, una gran idea lo del faro, cuando lo jugué me gusto :D

Pues no se exactamente cómo va, ahora mismo estoy mirando los scripts de la torre batalla de Ruby (ya que en fr solo está la torre esa de la isla 7, y las normas son distintas) pero hay tantos comandos que no se cual hace cada cosa. Estoy probando algunos pero de momento no lo encuentro.

Supongo que si, habrá algún comando para restaurarlos, lo cual si gano lo uso y ya está pero si pierdo, ¿cómo haria para comprobar si pierdo el trainerbattle, y si lo pierdo pasa X cosa en vez de enviarte al CP?
#3
Dani_SR_17 28493
Iniciado por The Jo7a
Pues no se exactamente cómo va, ahora mismo estoy mirando los scripts de la torre batalla de Ruby (ya que en fr solo está la torre esa de la isla 7, y las normas son distintas) pero hay tantos comandos que no se cual hace cada cosa. Estoy probando algunos pero de momento no lo encuentro.

Supongo que si, habrá algún comando para restaurarlos, lo cual si gano lo uso y ya está pero si pierdo, ¿cómo haria para comprobar si pierdo el trainerbattle, y si lo pierdo pasa X cosa en vez de enviarte al CP?


Lo que podrías hacer, es al entrar a combatir en el faro, cambiar el punto de cura. Que te envie a la entrada del faro por ejmplo, pones alguna variable en determinado valor y haces saltar un script de nivel.
En ese script "restauras" tu equipo y ya está.

En caos de que ganes al acabar el faro vuelves a poner el puno de cura anterior y ya esta.
#4
J.com 12785
Iniciado por Dani_SR_17
Lo que podrías hacer, es al entrar a combatir en el faro, cambiar el punto de cura. Que te envie a la entrada del faro por ejmplo, pones alguna variable en determinado valor y haces saltar un script de nivel.
En ese script "restauras" tu equipo y ya está.

En caos de que ganes al acabar el faro vuelves a poner el puno de cura anterior y ya esta.


El problema de esa idea es que creo que los puntos de cura no son ilimitados, y ya hay puesto 1 en el CP de la ciudad donde está el faro, no quiero malgastarlos.
#5
Dani_SR_17 28493
Iniciado por The Jo7a
El problema de esa idea es que creo que los puntos de cura no son ilimitados, y ya hay puesto 1 en el CP de la ciudad donde está el faro, no quiero malgastarlos.


Mmmm, bueno, pues podrías hacer esto:
-Después de seleccionar los 3 Pokes, pones una variable en un determinado valor.
-Si pierdes vuelves al CP y con ese valor de la variable, activas un script de nivel que te restaure el equipo y te suete alguna textbox por ejemplo.
-Si completas el faro pues simplemente pones esa variable en el valor inicial.

PD: Sobre los puntos de cura, creo que se como hacerlos "ilimitados", si quieres te lo comento.
#6
J.com 12785
Vale haber, probando specials a lo loco (de los que hay en los scripts de la torre batalla de ruby) e encontrado el special que te restaura los pokes, es el special 0x28.

Ahora me gustaría saber, ¿cómo hago para comprobar si gano/pierdo un trainerbattle para que pase una cosa u otra según gane o pierda?

PD: Toda ayuda es bienvenida, si sabes alguna manera de hacerlos ilimitados, aunque sea una idea, te agradezco que la expongas.
#7
RedMort 26611
Activas una variable o flag antes de la batalla.
Si ganas, desactivala siguiendo el script para que pase cierta cosa.
Si pierdes, se queda activada, y ya en el mapa donde vuelvas tras perder dejale un script de nivel que se active al tener la var activada.

EDITO: Al entrar a un CP se activa esa zona para reaparecer tras la derrota, no sé si tu lo tienes, pero se me ocurre que antes de entrar a la torre pases por uno, tipo Liga Pokémon, y así volverías a él.
#8
J.com 12785
Iniciado por RedMort
Activas una variable o flag antes de la batalla.
Si ganas, desactivala siguiendo el script para que pase cierta cosa.
Si pierdes, se queda activada, y ya en el mapa donde vuelvas tras perder dejale un script de nivel que se active al tener la var activada.


Pero esa es la manera "chapuzera" de hacerlo, ya que al perder aparecería en el CP y eso no es lo que quiero, quiero aparecer en el faro batalla. Además estoy pensando en hacer los combates estilo torre batalla, que no puedas usar objetos, pro tampoco se como va eso.. :/
#9
RedMort 26611
Entonces, no había un script de nivel que se activaba tras un combate?
No estoy muy seguro pero creo que lo vi por algun post de Dudas.
A lo que voy es a que si existe (lo voy a mirar ahora mismo), podrías ponerle un warpmuted que te lleve a la puerta al perder.
#10
Dani_SR_17 28493
Iniciado por The Jo7a
Vale haber, probando specials a lo loco (de los que hay en los scripts de la torre batalla de ruby) e encontrado el special que te restaura los pokes, es el special 0x28.

Ahora me gustaría saber, ¿cómo hago para comprobar si gano/pierdo un trainerbattle para que pase una cosa u otra según gane o pierda?

PD: Toda ayuda es bienvenida, si sabes alguna manera de hacerlos ilimitados, aunque sea una idea, te agradezco que la expongas.


Bueno voy por partes.

Sobre las trainerbattle: No hace falta que sepas si ganas o pierdes la trainerbattle, que si alguien sabe como, perfecto.

Sencillamente puedes hcaer lo que te he dicho, con un script de nivel en el CP, que se active solo si pierdes, es decir, cuando entras en el faro pones una variable en valor 1, por ejempo.
Si pierdes vas al CP (Como ya lo tenias de punto de cura poz eso), y ahí tienes el script de nivel, que como la variable tiene el valor 1, pues se ejecuta.

Si llegás a ganar el faro, pues simplemente entre medio de los script, pones la variable en 0, y ya esta.


Sobre los puntos de cura:
Pues mira se me ocurrio hace tiempo para implementarlo a mi hack.
Es más en mi opinión, quizás el propio juego realmente realize esto.

Es tan sencillo como solo tener 1 punto de cura, sí, se que es contradictorio, pero he aquí el secreto.

En dicho punto de cura, el cual será una habitación en negro o como queraís, tenemos un precioso script de nivel el cual tendrá una presiosísima lista de:
- Checkfalg 0x...
Ó
- Compare 0x(Variable) 0x...

¿Qué es lo que hace?
Pues muy sencillo, cada vez que hablas con la del CP por ejempo, desactivas todas las flags que tengas para los puntos de cura y activas la de ese punto de cura o cambias el valor de la variable en cuestión.

Ahora simplemente, según la flag o el valor de la variable, ponemos un warpmuted y ya taaaa.

Sé que puede parecer un poco chapuzer, pero si funciona es perfecto.


PD: Jota, si pudieras probarlo te lo agradecería, tengo el portatil con todas las cosas de los hacks y ahora mismo lo tengo jodio...
#11
Cheve_X 15014
Puedes fijarte en un rom de Fire Red en Limpio en la batalla de Gary, la que es como un "Tutorial", si pierdes en esa te quedas en ese mismo lugar, y no es un lugar de "SetHealingPlace" .)
#12
G0LD_ZTHVARD0X! 27515
Aun no estoy tan avanzado en scripts, pero igual.

Creo que de la manera que debaten queda muy cutre, lo mejor seria basarte como cheve dice en el script de la primera pelea con Azul, donde si te das cuenta en vez de ir al ultimo punto de cura el script sigue.

Entonces, tras perder el script deberia continuar en vez de irte al punto de cura, lo mejor es que al perder llegue la tia de la entrada diciendo X cosa, devolverte tu equipo y regresando al lobby del faro y no como una batalla comun y corriente.

Y sobre los pokemon, pues no estoy seguro pero eso queda en la memoria, lo mas logico seria resetear la memoria donde se almacena ese dato al final del script, dejandola como cuando tenias 6, pero ni idea de en donde se almacena eso (Si fuera GBC modificaria la funcion ASM del Special, pero como no lo ss xD)
#13
BLAx/Atlas 26580
Si mal no recuerdo, hay un tutorial de Juanjo en el que explica "El Maravilloso comando SetMapFooter". Creo que te podría servir.

El juego te llevará realmente al CP, pero el CP ahora será el Faro Batalla, porque al entrar se activa el setmpafooter. No se si me explico, pero no puedo hacerlo mejor ya que no lo he probado nunca.

De todos modos, en algún sitio leí que hay dos tipos de trainerbattles que no cortan la ejecución de un script, una de ellas es la de Gary (la de tutorial) y la otra no lo recuerdo. Si lo encuentro te aviso
#14
Javi4315♪ 13374
Para lo de aparecer en ese lugar puedes añadir un punto de cura y lo activas con el sethealingplace. Estoy trabajando en una herramienta para añadir y editar puntos de cura y puntos de vuelo. Ya está prácticamente terminada, así que si te interesa, no tardará mucho.