Registrarse

GBA | LASTRESULT, el ojo que todo lo ve

Estado
Cerrado para nuevas respuestas.

Gut_Bro

Mega desarrollador
[css-p=font: 25px Calibri; text-align: center; border-bottom: 1px dotted silver; margin: 0 30px]LASTRESULT, el ojo que todo lo ve.[/css-p]

Para estrenar este subforo, les voy a explicar un par de cositas que aprendí en mis 9 meses offline xD, y que pueden ser muy útiles para sus Scripts. La variable LASTRESULT.

¿Qué es LASTRESULT? No es nada más que una variable del montón, en realidad es la 0x800D, pero tiene algo muy especial y es que es la variable más cambiante de todas. Con casi cada Script cambia su valor, incluso con rutinas ASM, y de ahi su nombre: Ultimo Resultado.

Esta variable es muy útil, y les voy a dar un ejemplo de como utilizarla en Scripts para hacerlos Dinámicos y que la trama se lleve a cabo de la manera más correcta:

Supongamos que tenemos un Script de Wildbattle, y que queremos saber si al final de cuentas, se capturó al Pokémon o se eligió la opción "huir". Para esto comparamos la variable LASTRESULT con alguno de estos valores:

04 - Si se Huyó.
07 - Si se capturó.


¿De qué me sirve esto? Bueno, es sencillo, supongamos que estás en la punta del monte más alto del mundo, con tus amigos y de pronto aparece un Pokémon legendario (típico) entonces tus amigos te dicen que luches contra el y lo haces. Al finalizar la lucha comparas "qué fué lo que hiciste" para que tus amigos te digan una cosa u otra. ¿Eso no es dinámica?


Ahora pongamos otro ejemplo, una batalla contra entrenador. Al final de la batalla, comparamos con alguno de estos valores:

01 - Ganar.
02 - Perder.


De igual forma, comparamos la variable y si ganamos mostramos un mensaje, pero al perder te vas corriendo al Centro Pokémon xD

En el Centro Pokémon, en el Script de la enfermera puedes hacer un Script para comparar LASTRESULT con "02" (haber perdido contra el entrenador) y que la enfermera te diga "Y si luchas contra otros entrenadores, asegurate de <inserteunconsejoaqui>".

Supongo que al perder contra un Pokémon (Wildbattle) también cambia el valor, pero como yo soy pro (?) y no pierdo nunca, no lo he investigado aún.

[css-p=text-align: right; border-top: 1px dotted silver;]Copyright 2011 (?) Gut_Bro[/css-p]
 

eing

Miembro de honor
Miembro de honor
RE: LASTRESULT, el ojo que todo lo ve.

Muy completo, te faltó decir que la variable LASTRESULT, es una variable que recoge todo lo enviado anteriormente, y que machaca lo anterior.
Es decir, no se puede guardar dos datos en el mismo LASTRESULT.

Por ende, si te refieres a perder en batallas, en FR hay un special -que es el que se usa en el combate con gary- pero estoy pensando, que para rubí, podría ser posible eso tambien ¿no?
Código:
#org 0x
blalbalblabla
setvar 0xvar 0x1 
trainerbattle 0x3 0x 0x 0x 0x
setvar 0xvar 0x2
blalblalbla
Y en el CP al que estés redirigido por el sethealingplace, hacer un warp a la batalla de nuevo -con un script de nivel comprobando dicha variable- que siga con el script. (en caso de haber sido derrotado, se sabrá porque la variable está en "0x1" y no en "0x2" al haber ganado.

Sería interesante saber que pasa en caso de "empate" (explosion en el ultimo turno poke 1 vs 1)
 

C!ro

Click the circles!
RE: LASTRESULT, el ojo que todo lo ve.

eing dijo:
Muy completo, te faltó decir que la variable LASTRESULT, es una variable que recoge todo lo enviado anteriormente, y que machaca lo anterior.
Es decir, no se puede guardar dos datos en el mismo LASTRESULT.

Por ende, si te refieres a perder en batallas, en FR hay un special -que es el que se usa en el combate con gary- pero estoy pensando, que para rubí, podría ser posible eso tambien ¿no?
Código:
#org 0x
blalbalblabla
setvar 0xvar 0x1 
trainerbattle 0x3 0x 0x 0x 0x
setvar 0xvar 0x2
blalblalbla
Y en el CP al que estés redirigido por el sethealingplace, hacer un warp a la batalla de nuevo -con un script de nivel comprobando dicha variable- que siga con el script. (en caso de haber sido derrotado, se sabrá porque la variable está en "0x1" y no en "0x2" al haber ganado.

Sería interesante saber que pasa en caso de "empate" (explosion en el ultimo turno poke 1 vs 1)
Respondo a lo marcado en negrita.

Me ocurrió a mi algo parecido contra Steven, que supongo que sería algo parecido a usar explosión en el último turno.
Yo tenía un Sharpedo (piel tosca) y él un Armaldo, a ambos nos quedaba poca vida... En realidad, a él le quedaba mucha, pero en ese mismo turno usé un ataque y se la quité xD.
Bueno, estábamos ambos con la vida en rojo, y él me mató a Sharpedo (era 1vs1). Piel tosca hirió a Armaldo y se murió. FIN. Me volví al centro pokemon y me quitó mi amado dinero.

Supongo que usando explosión, autodestrucción, teniendo una vidasfera, usando mismodestino y demás ocurriría lo mismo, así que no os esforcéis, empate = derrota por tu parte.
 
Estado
Cerrado para nuevas respuestas.
Arriba