Registrarse

[Scripting] Tutorial sobre Scripts

C!ro

Click the circles!
lolicón~ dijo:
Una objeción
En el capítulo de YES/NO, ¿Para qué poner dos ifs y no solo uno?
Tú tienes esto
#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x5
compare LASTRESULT 0x1
if 0x1 goto @inicio2
if 0x0 goto @inicio3
release
end

#org @inicio2
msgbox @frase2 0x6
end

#org @inicio3
msgbox @frase3 0x6
end

#org @frase
Aquí iría el texto donde estaría la caja.

#org @frase2
Esto es si dices que Sí

#org @frase3
Esto si dices que No.
Yo normalmente pongo una condición, y si no sigue el script
Así vamos
#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x5
compare LASTRESULT 0x1
if 0x1 goto @inicio2
msgbox @frase3 0x6
release
end

#org @inicio2
msgbox @frase2 0x6
end


#org @frase
Aquí iría el texto donde estaría la caja.

#org @frase2
Esto es si dices que Sí

#org @frase3
Esto si dices que No.
Basicamente funciona igual y puede dar menos errores, un user de este foro usó con dos ifs, y no le iba, lo puso en dudas, lo puse a mi manerá y fue, no sé, habría que mirar como pone nintendo, por ejemplo en el script de si quieres y a conocer a May xD
Ya lo sé, otra opción es esta:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x5
compare LASTRESULT 0x1
if 0x1 goto @inicio2
else goto @inicio3
release
end

#org @inicio2
msgbox @frase2 0x6
end

#org @inicio3
msgbox @frase3 0x6
end

#org @frase
Aquí iría el texto donde estaría la caja.

#org @frase2
Esto es si dices que Sí

#org @frase3
Esto si dices que No.[/quote]

Alkaline dijo:
Hola Inés. Lo primero decir ¡qué gran tutorial estás haciendo! Yo no sabía nada de Scripts, NADA, y ahora se me está haciendo sorprendentemente fácil y divertido :heart:.

Eso sí, tengo un problemilla cuando añado un personaje nuevo en el mapa y pongo su respectivo script. Al hablar con él, el juego se congela T_T
Dos cosas:

1) Llámame Ciro, este nick es temporal =D

2) Pásame el script, y te digo en qué fallas.
 
Hola Ciro. Muchas gracias por este buenísimo tutorial. Ya llevo algún tiempo en esto de rom-hacking
y nunca me he atrevido con los scripts. Me costaba mucho entenderlos, pero con este tutorial los entiendo
perfectamente. Es bastante entretenido y divertido:heart: .
Muchas gracias :D
 
¿Ciro? Whoops! I'm sorry '^^

Pues bueno, aquí está el script extraído directamente de Advance map:

Código:
'---------------
#org 0x232740
lock
faceplayer
giveitem 0x5E 0x1 MSG_OBTAIN
release
end
 

rush

Usuario Habitual
usas xse? veo mas simple programar con dynamic ...

al margen: deberías ponerle una flag, sí es un objeto que coges del suelo.

checkflag 0x laquesea
.......
setflag 0xlaquesea

luego esa misma flag se la pones al sprite en AM.

luego, no se si el offset que tienes coincide con otro. buscaste el offset libre con algún programa?

edito: si es un objeto del suelo, no hace falta poner el faceplayer. y creo que el lock tampoco.
 
No es un objeto encontrado en el suelo, es un objeto que te lo da un personaje. Pero en vez de eso el juego se congela.


¡Niñaaa, dame lo que te pidoooo!:furia::furia::furia:
 

rush

Usuario Habitual
igual es el giveitem que usas.. .

prueba con 0x0 en lugar de 0x1, creo que el 1 era para pokeballs, si mal no recuerdo
 

Jumpjet

Viejo conocido...
Jolín, antes me fue y ahora vuelve a no ir, pongo este script:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
release
end

#org @frase
= Bueno vete ya, no hagas esperar a\ntu abuelo.

Pero no me dice nada, a veces funciona y otras no, la otra vez puse callstd 0x6 y funcionó.
 
C

Chuckles el Cerdito

Invitado
NeverSlim96 dijo:
Jolín, antes me fue y ahora vuelve a no ir, pongo este script:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
release
end

#org @frase
= Bueno vete ya, no hagas esperar a\ntu abuelo.

Pero no me dice nada, a veces funciona y otras no, la otra vez puse callstd 0x6 y funcionó.
Debe ser porque tienes el XSE 1.0 actualizalo a la 1.1 en WAH hay muchois links de descargas, si no es eso, no se que es :/

Y ahora del tuto: Me gsuto, me a ayudado mucho, si no fuera por este tuto no sabria hacer scripts
 

Jumpjet

Viejo conocido...
Muchas gracias a Korbo y a Inés, gracias a vosotros ya he podido hacer los scripts, os devo la vida.
 
Compile y todo,estoy viendo por que no me funciona el script de obtener un Pokemon (Tocando un objeto en este caso una Pokeball),alguien me puede ayudar a hacer un script que no me deje salir de la habitacion hasta que tenga 1 Pokemon?
 

Casi~

Trabajo general
Hola a todos,
lo primero:

Gracias Ines/Ciro por este gran tutorial.

Ahora,mi duda:

Sigo los pasos,hago este script:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox
#org @frase 0x6
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
release
end


Le doy al botón de los dos engranajes y me dice esto: "Los parámetros son demasiado bajos
sobre la línea 6. El número correcto es 2 ."

¿A qué se debe esto?

Saludoss
 

Shiro~

*Scripter*
Casix dijo:
Hola a todos,
lo primero:

Gracias Ines/Ciro por este gran tutorial.

Ahora,mi duda:

Sigo los pasos,hago este script:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox
#org @frase 0x6
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
release
end


Le doy al botón de los dos engranajes y me dice esto: "Los parámetros son demasiado bajos
sobre la línea 6. El número correcto es 2 ."

¿A qué se debe esto?

Saludoss
Pues eso, faltan parámetros en el msgbox:
Sus parámetros son:
Msgbox 0xoffset 0xtipo
En script quedaría así:


#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
#org @frase
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
release
end
 

rush

Usuario Habitual
Kira~ dijo:
Casix dijo:
Hola a todos,
lo primero:

Gracias Ines/Ciro por este gran tutorial.

Ahora,mi duda:

Sigo los pasos,hago este script:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox
#org @frase 0x6
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
release
end


Le doy al botón de los dos engranajes y me dice esto: "Los parámetros son demasiado bajos
sobre la línea 6. El número correcto es 2 ."

¿A qué se debe esto?

Saludoss
Pues eso, faltan parámetros en el msgbox:
Sus parámetros son:
Msgbox 0xoffset 0xtipo
En script quedaría así:


#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
#org @frase
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
release
end
te dejas algo:

hay que definir el offset @frase fuera del script principal. Quedaría así:

Código:
#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
release
end 

#org @frase
= Hola¿Buscas al profesor?\nHace nada le vi paseando\lpor la ruta 4.
 
Este es el script de una "Pokeball" que no se borra al terminar el texto y tampoco se muestra el menu POKEMON en el menu:

Código:
#dynamic 0x800000

'---------------
#org @start
lock
faceplayer
msgbox @string1 MSG_NORMAL '"(He encontrado mi Pikachu,me sera\..."
givepokemon 0x19 0x5 0xCA 0x0 0x0 0x0
release
end


'---------
' Strings
'---------
#org @string1
= (He encontrado mi Pikachu,me sera\nutil para luchar contra Pokemon\lSalvaje)
Hay que ponerle otra cosa mas despues de givepokemon?
Yo creo que quizas tenga que borrar el "lock","faceplayer" y "release" para que se elimine la "Pokeball" pero hay una forma de añadir el menu Pokemon?
 

Caeles

Midnight Melody
SSBBW dijo:
Este es el script de una "Pokeball" que no se borra al terminar el texto y tampoco se muestra el menu POKEMON en el menu:
Código:
#dynamic 0x800000

'---------------
#org @start
lock
faceplayer
msgbox @string1 MSG_NORMAL '"(He encontrado mi Pikachu,me sera\..."
givepokemon 0x19 0x5 0xCA 0x0 0x0 0x0
release
end


'---------
' Strings
'---------
#org @string1
= (He encontrado mi Pikachu,me sera\nutil para luchar contra Pokemon\lSalvaje)
Hay que ponerle otra cosa mas despues de givepokemon?
Yo creo que quizas tenga que borrar el "lock","faceplayer" y "release" para que se elimine la "Pokeball" pero hay una forma de añadir el menu Pokemon?
Bueno, yo tuve la misma duda respecto a añadir el menú pokémon, te cito lo que me respondió
lolicón:

Usa setflag 0x828 para que aparezca la opción en el menú
Pues eso mismo, no tienes que borrar nada. Pones en el script setflag 0x828 y aparecerá. Respecto a desaparecer la ball, yo aún soy nuv, pero creo que lo puedes hacer siguiendo este tutorial de la wiki.

¡Saludos!
 

rush

Usuario Habitual
para desaparecer la ball, ponle una flag. Añade en el script principal "setflag 2500" (2500 por decir un numero, ponle la flag que quieras)

luego en a-map, en la pestaña de eventos, haz click sobre la ball, y en la lista de opciones de la derecha, en la última de abajo, ponle el mismo numero de flag. Como consecuencia, cuando ejecutes el script, todos los minis que tengan esa flag (en tu caso solo la pokeball) desaparecerán.
 
Night dijo:
SSBBW dijo:
Este es el script de una "Pokeball" que no se borra al terminar el texto y tampoco se muestra el menu POKEMON en el menu:
Código:
#dynamic 0x800000

'---------------
#org @start
lock
faceplayer
msgbox @string1 MSG_NORMAL '"(He encontrado mi Pikachu,me sera\..."
givepokemon 0x19 0x5 0xCA 0x0 0x0 0x0
release
end


'---------
' Strings
'---------
#org @string1
= (He encontrado mi Pikachu,me sera\nutil para luchar contra Pokemon\lSalvaje)
Hay que ponerle otra cosa mas despues de givepokemon?
Yo creo que quizas tenga que borrar el "lock","faceplayer" y "release" para que se elimine la "Pokeball" pero hay una forma de añadir el menu Pokemon?
Bueno, yo tuve la misma duda respecto a añadir el menú pokémon, te cito lo que me respondió
lolicón:

Usa setflag 0x828 para que aparezca la opción en el menú
Pues eso mismo, no tienes que borrar nada. Pones en el script setflag 0x828 y aparecerá. Respecto a desaparecer la ball, yo aún soy nuv, pero creo que lo puedes hacer siguiendo este tutorial de la wiki.

¡Saludos!
No me funciona,quizas por que sea Fire Red del que me estas hablando,yo estoy usando ruby_ing

rush dijo:
para desaparecer la ball, ponle una flag. Añade en el script principal "setflag 2500" (2500 por decir un numero, ponle la flag que quieras)

luego en a-map, en la pestaña de eventos, haz click sobre la ball, y en la lista de opciones de la derecha, en la última de abajo, ponle el mismo numero de flag. Como consecuencia, cuando ejecutes el script, todos los minis que tengan esa flag (en tu caso solo la pokeball) desaparecerán.
Voy a probar asdf
 

Dragonite

But where's your heart
SSBBW dijo:
Este es el script de una "Pokeball" que no se borra al terminar el texto y tampoco se muestra el menu POKEMON en el menu:

Código:
#dynamic 0x800000

'---------------
#org @start
lock
faceplayer
msgbox @string1 MSG_NORMAL '"(He encontrado mi Pikachu,me sera\..."
givepokemon 0x19 0x5 0xCA 0x0 0x0 0x0
release
end


'---------
' Strings
'---------
#org @string1
= (He encontrado mi Pikachu,me sera\nutil para luchar contra Pokemon\lSalvaje)
Hay que ponerle otra cosa mas despues de givepokemon?
Yo creo que quizas tenga que borrar el "lock","faceplayer" y "release" para que se elimine la "Pokeball" pero hay una forma de añadir el menu Pokemon?
Tenés que ponerle un checkflag y una condición IF.

checkflag 0xflag
if 0x1 goto @inicio2

El 0x1 es para checkear que el resultado sea positivo. Si lo es ejecutará el comando a su derecha (goto @inicio2) que no es ni más ni menos que el texto que te dice algo/alguien cuando ya has cogido el item. Si le pones 0x0 hará la acción pero sólo si la flag está desactivada. Podés hacer la misma comparativa pero de dos formas inversas. Es decir: si usas

if 0x1 goto blablabla

Debes usar un setflag pero si usas

if 0x0 goto blablabla

Debes usar un clearflag.

Eso sirve más que nada cuando querés reutilizar una flag que ya ha sido usada en otro script.
 
Arriba