tuts_gba
Thread Id: 12113
Thread Name: GBA | Scripting | Comando "Random"
#0
Zik 12278
Que tal gente de WAH, unos me conocen otros no...
Pero bueno eso no importa. Hoy vengo con este tutorial para usar ente fabuloso comando. ¿A cual me refiero?
Me refiero al comando "RANDOM"

Empecemos:

¿Que es el comando random 0x0?
Es un comando que genera un numero al azar entre 0 y el numero que asignemos menos 1. Luego dicho valor generado es guardado en LASTRESULT.
NOTA: El numero maximo que podemos asignar es 0xFFFF

¿En que lo podemos usar?
Bueno, eso depende de que tan creativo eres, puedes darles muchos usos y convinarlos con otros comandos(giveitem, giveegg, givepokemon, etc.).
Eso depende de ti.


Bueno yo explicare 3 formas de usarlo(aunque yo les recomiendo usar la segunda y la tercera).Usare el comando giveitem, para los ejemplos.

1º Forma de uso(Nivel Facil) no recomendado:
La primera es simple, esta forma se basa en obtener cualquier objeto de la lista de items desde la 0x0(ITEM_NONE) hasta el 0x15A(ITEM_HM8)
NOTA: Para saber los codigos de los items pueden revisar el "stditems.rbh" que viene en la carpeta de su XSE, ahí vienen todos los items.

Bueno asi debe de ir nuestro script con nuestro comando random:



Simple no, bueno la verdad esto no tiene sentido, ya que estamos generando que te den un item de toda la lista, eso icluye desde un pokeball hasta una masterball o incluso un ?????????. Pero esto nomas sirve para que entiendan el uso de random, ok.

2º Forma de usar(Nivel: Medio):
La segunda obviamente es mas difícil, es como hacer para obtener un item al azar, pero de una lista asignada o mas bien dicho dentro de un rango para que se entienda mejor, en este ejemplo usar las piedras evolutivas, que estan desde 0x5D a 0x62, o sea 6 objetos(0x5D, 0x5E, 0x5F, 0x60, 0x61 y 0x62).
Ok, empecemos:

Esta es la estructura de como debe ir el script:



¿Mas elaborado no creen?, bueno esto esta mejor hecho, ya que ahora solo vamos a entregar un item de un rango especificado, este caso las piedras evolutivas.

SUNSTONE (0x5D)
MOONSTONE (0x5E)
FIRESTONE (0x5F)
THUNDERSTONE (0x60)
WATERSTONE (0x61)
LEAFSTONE (0x62)

En este punto se deben de estar preguntando, ¿Pero si lo items que quiero poner al azar, no estan consecutivamente uno despues del otro?
Bueno, asi de largo no creo, pero parecido debe de estar xD

3º Forma de usar(Nivel: Medio):
Ahora la estructura del script sera mas dificil, ya que escojeremos 3 objetos que no estan uno despues de otro, en este caso:

FULLRESTORE 0x13
MOOMOOMILK 0x1D
PROTEIN 0x40

Como pueden ver no estan en un rango.

Asi debe ir el script para que funcione:



Algo confuso, pero bueno vamos a explicar lo que hice:

Lo que hago con el copyvar es copiar el valor que se genero con random y asignarlo a nuestra variable, que puede ser 0, 1, 2, ¿porque solo asta el dos si escojimos 3 como valor maximo a escojer?, eso es simple, si leyeron desde el principio random genera un numero al azar menos uno(osea, si genero 1 se resta 1 y obtenemos 0 y asi secesivamente(2-1=1, 3-1=2, 4-1=3.....).

Bueno luego de que se copio ese valor "x" a nuestra variable, los compare compararan si nuestra variable tiene el valor que se esta comparando, en este caso el valor 0, 1 y 2
por eso los compares van asi:

compare 0xVar1 0x0(compara si el valor de la variable es 0)
compare 0xVar1 0x1(compara si el valor de la variable es 1)
compare 0xVar1 0x2(compara si el valor de la variable es 2)

Si el valor es igual al valor que se esta comparando, aqui es donde entran los if 0x1 call 0x(una direccion que escojamos), ya que estos irán a la dirección asignada donde esta nuestro giveitem si nuestra variable cumplio con un valor a comparar.

Talvez me explique mal o nose, pero asi es como entiendo que funciona.

NOTA: Si te preguntas que variables estan disponibles
Pues...
RUBY 5000- 6FFF (segun tengo entendido)
FIRERED (la verdad no se)
ESMERALDA (tampoco se)
En cuanto aprenda cuales son edito.

Y tambien recuerden que manejamos HEX, lo que significa que cuando queramos asignar por ejemplo, 10 objetos, no pondremos 10 sino que pondremos A.Para saber que valor pondran en hex, usen la calculadora de windows en modo cientifica.

Una ultima cosa, las tres formar de usar sirven para el giveitem, si lo quieren usar para otros comandos(givepokemon, giveegg, msgbox...) tienen que usar la tercera forma.

Bueno creo que hasta aqui llego mi tutorial, quiero agradecer a RIBON22X que no se de donde rayos saque un tutorial de como usar este comando.

Espero y se entienda, para la proxima talvez haga uno sobre como hacer eventos diarios.

Si tienen dudas mandeme un MP o comenten.
#1
Javi4315♪ 13374
Buen tutorial y muy buen explicado, te felicito ;D

La verdad es que este comando es bastante bueno para algunas cosas. Yo lo usé en el primer gym de mi hack para que salieran preguntas al azar xD.

Bueno, eso muy bueno :D
#2
Zaux 12266
Se entiende a la perfección, espero algún día utilizarlo en el Mysteries.
Se le puede dar varias funciones, es muy interesante.

Nos Vemos!
#3
IceKiller 22680
bro gran tuto, me ayuda mucho are la intro de mi hack y que te regalen cualquier pokemon (si tenes suerte un legendario) XD
graacias y +gracias
#4
Cheve_X 15014
Jajá! Justo ayer me estaba preguntando sobre como era para hacer éstas cosas xD

Muchas Gracias, sin tí me habría costado un poco recordarlo D:

Bueno, el Tutorial está bien Explicado y escrito.
Sigue aportando ^^v
Salu2!
#5
fm~ 16648
Muchas Gracias!

Estube piensando en hacer un script de givepokemon aleatorio, y ahora, gracias a ti, puedo hacerlo!
Esta muy bien escrito y detallado, es un exelente tuto, servirá mucho a todos.

Gracias, +Gracias & Repu +1.
Me despido.