Registrarse

[Scripts] Busco Script dectector de Pokemon

Estado
Cerrado para nuevas respuestas.

LagannTTGG

Rom, Rom... Rom Hackeando!
- Estoy trabajando en mi Hackrom, y soy mas o menos bueno en los Script pero en ningun tutorial que he visto he encontrado lo que quiero. Lo que necesito es un Script que solo se active al llevar a un Pokemon Determinado en el Equipo, que lo detecte o de lo contrario no se active.

Gracias de antemano. :)
 

Rubire4

Usuario mítico
- Estoy trabajando en mi Hackrom, y soy mas o menos bueno en los Script pero en ningun tutorial que he visto he encontrado lo que quiero. Lo que necesito es un Script que solo se active al llevar a un Pokemon Determinado en el Equipo, que lo detecte o de lo contrario no se active.

Gracias de antemano. :)
Me parece que había una rutina que te permitía hacer esto, pero no recuerdo cual.
Pero una pregunta, ¿como se obtiene ese Pokémon? Porque si en un script haces que te aparezca obligatoriamente se puede hacer simplemente con variables sin necesidad de insertar rutinas.
 

LagannTTGG

Rom, Rom... Rom Hackeando!
@Rubire4~ tengo pensado hacer un script que no te permita pasar si no tienes al pokemon inicial utilizando a los 3. Tambien quiero hacer otro con un Pokemon Obligatorio para las MO's
 

Katherine

Omnipresente
Miembro de honor
@Rubire4~ tengo pensado hacer un script que no te permita pasar si no tienes al pokemon inicial utilizando a los 3. Tambien quiero hacer otro con un Pokemon Obligatorio para las MO's
No sé, llámame loco o revolucionario... ¿Pero no sería más fácil si usaras flags para ello? xD

Cuando elijas el pokémon inicial usas un setflag y después para comprobar tan fácil como usar checkflag, igual para las MOs.
 

LagannTTGG

Rom, Rom... Rom Hackeando!
@Aarón ツ que yo sepa, las flag's son paa evitar que se repitan los script's, por favor dame un ejemplo de el uso que me intentas explicar. Perdona mi ignorancia.
 

Katherine

Omnipresente
Miembro de honor
@Aarón ツ que yo sepa, las flag's son paa evitar que se repitan los script's, por favor dame un ejemplo de el uso que me intentas explicar. Perdona mi ignorancia.
Te he dicho flags, pero también puedes usar variables (más recomendado ya que hay más disponibles y las flags son más valiosas y escasas). Ese es un uso que le puedes dar a las flags o vars, las puedes activar en un script para que después tenga consecuencias en el mismo. Pero también puedes hacerlo para que tenga repercusiones en otro, no tiene que tratarse del mismo script.

En el script a la hora de elegir el pokémon usas setvar y le das un valor a una variable, después en ese mismo script usas un compare al principio para comprobar que la variable haya o no sido modificada, y si lo ha sido entonces que evada el script de elegir el pokémon inicial. Después en el sitio donde quieras que comprueben si has elegido el pokémon inicial usas otro compare de la misma variable que has usado antes y ya está.
Y sí, se me da fatal explicarme pero con flags sería lo mismo cambiando el setvar por setflag y el compare por checkflag.

Si no sabes hacerlo te recomiendo leer algún tutorial de scripts, no te dejo un ejemplo porque me da palo (para que mentir).

PD: Quizá alguna alma caritativa te hará los dos scripts mostrándote como se hace...
 

Sayer301!

UnityLord!
Miembro de honor
Aarón ツ;378231 dijo:
Te he dicho flags, pero también puedes usar variables (más recomendado ya que hay más disponibles y las flags son más valiosas y escasas). Ese es un uso que le puedes dar a las flags o vars, las puedes activar en un script para que después tenga consecuencias en el mismo. Pero también puedes hacerlo para que tenga repercusiones en otro, no tiene que tratarse del mismo script.

En el script a la hora de elegir el pokémon usas setvar y le das un valor a una variable, después en ese mismo script usas un compare al principio para comprobar que la variable haya o no sido modificada, y si lo ha sido entonces que evada el script de elegir el pokémon inicial. Después en el sitio donde quieras que comprueben si has elegido el pokémon inicial usas otro compare de la misma variable que has usado antes y ya está.
Y sí, se me da fatal explicarme pero con flags sería lo mismo cambiando el setvar por setflag y el compare por checkflag.

Si no sabes hacerlo te recomiendo leer algún tutorial de scripts, no te dejo un ejemplo porque me da palo (para que mentir).

PD: Quizá alguna alma caritativa te hará los dos scripts mostrándote como se hace...
Y si yo dejo al pokemon en la caja?? A la mierda toda la teoría, porque podría ir al evento con la flag activada y sin tener a mi pokemon de verdad encima.

A ver, no hay un metodo 100% exacto, pero hace mucho se hizo un tutorial sobre dar un pokemon y la comprobacion de que pokemon era segun la seleccion que hacias. Podrías hacerlo, solo que la seleccion la haces automatica, primero guardas el slot1, luego el slot2, etc... Con el countpokemon sabes el numero de slots.
 

Javi4315

Babyface
Miembro de honor
Como esta tarde me sentía inspirado, te he escrito la rutina:

Código:
.align 2
.thumb

push {r0-r2,r5,lr}
mov r5, #0x0

start:
cmp r5, #0x6
beq end
ldr r0, .pkmn_party
mov r1, #0x64
mul r1, r5, r1
add r0, r1, r0
ldrh r1, [r0]
cmp r1, #0x0
beq end
mov r1, #0xB
ldr r2, .decrypt
bl call_decrypt
ldr r1, .var_8000
ldrh r1, [r1]
cmp r0, r1
beq match
add r5, #0x1
b start

match:
ldr r0, .var_8000
mov r1, #0x1
strh r1, [r0,#0x2]

end:
pop {r0-r2,r5,pc}

call_decrypt:
bx r2

.decrypt: .word 0x0803FBE9
.var_8000: .word 0x020370B8
.pkmn_party: .word 0x02024284
Y funciona de la siguiente manera:

Código:
setvar 0x8000 0x(pokemon necesario)
setvar 0x8001 0x0 (siempre 0, para limpiarla)
callasm 0x(offset de la rutina + 1)
Lo que hace es que comprueba si llevas en el equipo el pokémon que especifiques en la variable 0x8000. Y, si lo llevas, la variable 0x8001 pasará a tener el valor 1. Es decir, que luego sólo tendrías que hacer un compare:

Código:
compare 0x8001 0x1
if 0x1 goto @(pointer donde sigue el script cuando tienes el poke)
Y para ahorrarte las molestias de compilar, te dejo la rutina ya compilada:

Código:
27 B5 00 25 06 2D 13 D0 0C 48 64 21 69 43 08 18 01 88 00 29 0C D0 0B 21 06 4A 00 F0 0A F8 06 49 09 88 88 42 01 D0 01 35 EC E7 03 48 01 21 41 80 27 BD 10 47 E9 FB 03 08 B8 70 03 02 84 42 02 02
 

Sayer301!

UnityLord!
Miembro de honor
Javi4315♪;378299 dijo:
Como esta tarde me sentía inspirado, te he escrito la rutina:

Código:
.align 2
.thumb

push {r0-r2,r5,lr}
mov r5, #0x0

start:
cmp r5, #0x6
beq end
ldr r0, .pkmn_party
mov r1, #0x64
mul r1, r5, r1
add r0, r1, r0
ldrh r1, [r0]
cmp r1, #0x0
beq end
mov r1, #0xB
ldr r2, .decrypt
bl call_decrypt
ldr r1, .var_8000
ldrh r1, [r1]
cmp r0, r1
beq match
add r5, #0x1
b start

match:
ldr r0, .var_8000
mov r1, #0x1
strh r1, [r0,#0x2]

end:
pop {r0-r2,r5,pc}

call_decrypt:
bx r2

.decrypt: .word 0x0803FBE9
.var_8000: .word 0x020370B8
.pkmn_party: .word 0x02024284
Y funciona de la siguiente manera:

Código:
setvar 0x8000 0x(pokemon necesario)
setvar 0x8001 0x0 (siempre 0, para limpiarla)
callasm 0x(offset de la rutina + 1)
Lo que hace es que comprueba si llevas en el equipo el pokémon que especifiques en la variable 0x8000. Y, si lo llevas, la variable 0x8001 pasará a tener el valor 1. Es decir, que luego sólo tendrías que hacer un compare:

Código:
compare 0x8001 0x1
if 0x1 goto @(pointer donde sigue el script cuando tienes el poke)
Y para ahorrarte las molestias de compilar, te dejo la rutina ya compilada:

Código:
27 B5 00 25 06 2D 13 D0 0C 48 64 21 69 43 08 18 01 88 00 29 0C D0 0B 21 06 4A 00 F0 0A F8 06 49 09 88 88 42 01 D0 01 35 EC E7 03 48 01 21 41 80 27 BD 10 47 E9 FB 03 08 B8 70 03 02 84 42 02 02
Maaaadre de dios, esto es dar una solución inmediata!! Like a boss. No tengo nada que aportar pero no podía resistirme a halagar semejante respuestón.
 

Dani_SR_17

¡Pokémon LionHeart!
Hay un special en la rom que comprueba si llevas un determinado Pokémon en el equipo.

Código:
setvar 0x8004 0x(nº en HEX del Pokémon en cuestión)
special2 LASTRESULT 0x17C
compare LASTRESULT 0x1 
if 0x1 goto @LlevasAlPokemon
 
Estado
Cerrado para nuevas respuestas.
Arriba