Registrarse

Script Givepokemon con equipo lleno.

Estado
Cerrado para nuevas respuestas.

Kay_hack

Usuario mítico
Hola!, hace un tiempo me entro la duda de como poder tener un script de
Givepokemon, en el cual cuando tengas los 6 en tu equipo y quieras agregar otro más se valla directamente al PC, pero que de igual forma puedas darle el mote en el mismo acto.

Para ser más claro, en realidad es tener que tenga las mismas funcionalidades que en los juegos originales. He tratado de poder hacerlo, pero hay algo en que fallo. Logro poder hacer que llegue al PC, pero al momento de hacerlo y querer ponerle un mote, me aparece el Icono del ultimo Pokémon del Equipo.Y tambien querer añadir un texto cuando realmente este lleno el Equipo & cuando se pueda llevar...

Espero me puedan orientar un poco.


Les dejo el script el cual yo hice:

'---------------
#org 0x80456C
lock
faceplayer
textcolor 0x1
bufferpokemon 0x0 0x4
checkflag 0x8C6
if 0x1 goto 0x88045F8
goto 0x8804583

'---------------
#org 0x8045F8
msgbox 0x8804672 MSG_KEEPOPEN '"¡Hola!\n¿Qué tal lo hace CHARMANDE..."
closeonkeypress
release
end

'---------------
#org 0x804583
msgbox 0x880470A MSG_YESNO '"Hola. Lo siento pero no soy\nbueno..."
compare LASTRESULT 0x1
if 0x1 goto 0x880459F
if 0x0 goto 0x8804604
release
end

'---------------
#org 0x80459F
countpokemon
copyvar 0x8010 LASTRESULT
compare 0x8010 0x6
givepokemon 0x4 0xA 0x0 0x0 0x0 0x0
setflag 0x8C6
textcolor 0x2
preparemsg 0x880465E '"[player] obtiene a [buffer1]!"
waitmsg
fanfare 0x72
waitfanfare
closeonkeypress
msgbox 0x8804633 MSG_YESNO '"¿Quieres darle un mote a tu\n[buff..."
compare LASTRESULT 0x1
if 0x1 goto 0x880461C
textcolor 0x0
goto 0x88045EA

'---------------
#org 0x804604
msgbox 0x88047BD MSG_KEEPOPEN '"Oh... Será mejor liberarlo."
closeonkeypress
release
end

'---------------
#org 0x80461C
countpokemon
subvar LASTRESULT 0x1
copyvar 0x8004 LASTRESULT
fadescreen 0x1
special 0x9E
waitstate
goto 0x88045EA

'---------------
#org 0x8045EA
textcolor 0x1
msgbox 0x88047DF MSG_KEEPOPEN '"¡Cuida bien a CHARMANDER!"
closeonkeypress
release
end


'---------
' Strings
'---------
#org 0x804672
= ¡Hola!\n¿Qué tal lo hace CHARMANDER?

#org 0x80470A
= Hola. Lo siento pero no soy\nbueno como entrenador POKéMON.\pDebo liberar a mi CHARMANDER\nporque no lo he cuidado bien...\pSi prometes cuidarlo, es tuyo.

#org 0x80465E
= [player] obtiene a [buffer1]!

#org 0x804633
= ¿Quieres darle un mote a tu\n[buffer1]?

#org 0x8047BD
= Oh... Será mejor liberarlo.

#org 0x80469E
= ¡No tienes sitio para más POKéMON!\nMejor vuelve más tarde.

#org 0x8047DF
= ¡Cuida bien a CHARMANDER!
 

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
En primer lugar, estás usando mal cada uno de los compares que haces. No el comando en sí, claro, sino su objetivo. Si lo usas, es porque quieres plantear una estructura condicional [if (condición) jump/call (offset)].
Luego, la estructura de todo el script es algo confusa, saltas de offset en ocasiones innecesarias, por ejemplo al inicio.

En cuanto a la duda puntual, sí, puedes ponerle mote a un pokémon si va a la PC pero no es usando el special 0x9E, sino el 0x116. Entonces, tienes que plantear una condición por el estilo:
Código:
...
countpokemon
copyvar 0x4001 LASTRESULT
givepokemon 0x4 0xA 0x0 0x0 0x0 0x0
...
compare 0x4001 0x6
if 0x1 goto @lomandoalapc
...
special 0x9E
...

#org @lomandoalapc
...
special 0x116
...
 
Estado
Cerrado para nuevas respuestas.
Arriba