Registrarse

[Scripting] Tutorial sobre Scripts

Muy gran tuto ,trato de aprender cuando no estoy luchando contra mi hack.
saludos y como dijo Venganza. sigue actualizando para que sigamos aprendiendo.
saludos
 

C!ro

Click the circles!
@crasybob: Con esa información poco puedo hacer.

Bueno, vengo a notificar una cosa. He resubido la descarga del capítulo 1, ahora ya no es necesario bajarse el zip, es directamente un pdf, y añadí la descarga del segundo capítulo. ¡Saludos!
 
C

Chuckles el Cerdito

Invitado
no entiendo los scripts de gatillo con variables, ¿alguien me lo podria explicar? y quizas poner un codigo de ejemplo ( he elido muchos tutoriales) :OMG:
 
es por ahora el tutorial de scripts mejor explicado y completo que vi, ya sabia hacer algunos scripts pero otros no. :blush:
gracias! seguro que le va a servir mucho a otras personas! :D
 

Telius

Trabajo en secreto.
ayuda a mi el XSE l tuerca no me deja compilar la cliko puse todo bien del tex message y no me deja compilar ayuda :furia:
 

Javi4315

Babyface
Miembro de honor
Adrizel dijo:
ayuda a mi el XSE l tuerca no me deja compilar la cliko puse todo bien del tex message y no me deja compilar ayuda :furia:
¿Has cargado el rom? Porque lo primero para poder compilar es decirle al programa dónde tiene que compilar, es decir, dónde está el rom xD
 

Telius

Trabajo en secreto.
Javi4315? dijo:
Adrizel dijo:
ayuda a mi el XSE l tuerca no me deja compilar la cliko puse todo bien del tex message y no me deja compilar ayuda :furia:
¿Has cargado el rom? Porque lo primero para poder compilar es decirle al programa dónde tiene que compilar, es decir, dónde está el rom xD
como lo ago.
 
Adrizel dijo:
Javi4315? dijo:
Adrizel dijo:
ayuda a mi el XSE l tuerca no me deja compilar la cliko puse todo bien del tex message y no me deja compilar ayuda :furia:
¿Has cargado el rom? Porque lo primero para poder compilar es decirle al programa dónde tiene que compilar, es decir, dónde está el rom xD
como lo ago.
Seguramente no lo vas a hacer con spam y mensajes innecesarios; y cargar el ROM se hace con el botón Archivo --> Abrir.
 

rush

Usuario Habitual
Tengo una duda bastante sencilla:

Estoy empezando con los scripts, y ya muevo con soltura lo simple. msgbox, givepokemon, givemoney, special 0x0, algo de battletrainer (con alguna duda menor que pondré después) etc...

el caso, es que estoy haciendo un script (el mas sencillo de todos), un giveitem, sobre una ball.

Es decir, eso que vas caminando, te encuentras una ball en el suelo, y felicidades, objeto encontrado, y adios muy buenas. Pues justo ahi esta el fallo. consigo el objeto, desaparece la ball, doy un paso, y vuelve a aparecer, toda llena de objeto como antes.... pudiendo conseguir infinitos objetos, del que haya dentro de la ball.

En un principio pensé en lo que señalas en tu tutorial, que habría que poner una flag, pero no me quedo claro de si eso era solo con las personas, o también con las balls del suelo.

Aquí dejo el script que estoy haciendo:

#dynamic 0x80000
#org @inicio
giveitem 0xD0 0x1 0x1
end


(el objeto, es un imán)

me he fijado en scripts de otras balls del juego y son exactamente iguales que el mio, es decir, sin locks ni flags ni nada, solo eso, a pelo, y las balls, puestas como GENTE con No. de Sprite: 59, igual que yo.. Por que no desaparecen las mias??

intente lo de ponerle la flag, pero no me quedo claro. Es decir,

pondría el checkflag 2100
pero despues, el if 0x1 goto

y ahí tengo la duda, no se que puntero poner, ya que no tengo un @inicio2, no hay otro cuadro de dialogo, simplemente, desaparecería la ball.

P.D: La ball la saco, desde el Advance Map, como GENTE, con el No. de SPRITE: 59

alguien me echa un cable porfavor?

saludos!!


P.D: Muy buenos los tutoriales, de los mejores explicados que he conseguido en la red

Edito: Duda solucionada, explico lo que hice:

-Puse un killscript al final, y puse bien la flag. dicha flag, correspondía con la de el objeto en el juego, tal que así:

Código:
#dynamic 0x80000
#org @inicio

setflag 1250
giveitem 0xD0 0x1 0x1
clearflag 1250
killscript
end


a cada objeto nuevo que ponía, tenía que asignarle una nueva flag.

Se que no es la manera más apropiada de hacerlo (o eso creo) por que se usan muchas flags, pero bueno, al menos esta el consuelo de que si lo coges, la flag se deja de usar con el clearflag...
 
Hola, disculpen por la molestia, pero soy nuevo en esto. Quise seguir el tutorial, seguí lo primero, paso a paso, pero al crear el primer script, no me sale el mensaje en el juego. Intento poner las demás cosas ( para dar pokémon y eso) pero en ninguna me sale el texto. ¿Alguien podría ayudarme con este problema? Se lo agradecería mucho.
 

rush

Usuario Habitual
Escribe por aquí el script que estas usando, tal y como lo compilas, y dime como lo estas metiendo
 
Bueno, yo abro el AdvanceMap, y abro el juego de Fire Red. Desde ese programa agrego el XSE.
Abro el XSE y abro el juego desde ahí. Luego ingreso lo siguiente.

#dynamic 0x800000

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

#org @frase

Agrego mi dialogo, y sigo los demás pasos.
Tomo el código, y lo agrego a un nuevo personaje en el mapa de Pueblo Paleta.
Cuando pruebo mi juego, no sale la caja de dialogo. ¿Qué paso estoy haciendo mal?
 

rush

Usuario Habitual
bueno, un par de correcciones.

Primera:

tienes puesto:

#dynamic 0x800000

fallo, tienes un 0 demás, lo correcto sería

#dynamic 0x80000

este primer comando, significa, que el XSE va a buscar un offset vacío (un hueco libre donde quepa tu script) a partir del offset 80.000 (te pongo el punto para que te fijes, pero en el xse no va), por eso, cada vez que hagas un script nuevo, las dos primeras líneas serán iguales, mientras uses el XSE

segundo, al agregar la frase, no la agregues normal, pulsa CTRL+T. se te abrirá un cuadro de diálogo, donde si que escribirás la frase. Cuando acabes, pulsas en convertir, y luego en insertar. Cierras el cuadro. Esto es para que encaje bien tu texto en el cuadro de diálogo del juego.

el script te quedaría:

Código:
#dynamic 0x80000
#org @inicio 

lock 
faceplayer 
msgbox @frase 0x6 
release
end 

#org @frase
Das un enter despues/lde @frase, y en esta línea/npulsas CTRL+T
más o menos algo así. Los /l y /n los inserta el propio programa, son saltos de línea, o seguir el dialogo desde arriba de nuevo (como un punto y aparte)
 
El de applymovement no funciona ¿:.

Muchas gracias por el tutorial,Me ayudo demasiado :D

Una pregunta? El de applymovement no me da cuando trato de hacerle en las tuerquitas me dice:Error13 "Type mismatch" sobre la linea 7.Falta etiqueta dinamica...

Ago todo lo que dice en el tuto y lo repito varias veces reviso y reviso y nada T_T


Codigo

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
applymovement 0x12 @mov1
waitmovement 0x12
release
end

#org @frase
= Debo irme rapido de aca,rapido!!

#org @mov
#raw 0x1F
#raw 0x1E
#raw 0x1E
#raw 0x1E
#raw 0xFE

release
end

Help my x:(
 

rush

Usuario Habitual
prueba quitar el segundo 'release end' por que no van ahí.[hr]
prueba quitar el segundo 'release end' por que no van ahí.

edito: Ya es de día, y ya no estoy empanao jajajajaja, el fallo esta clarísimo:

cito tu script, y te digo los fallos:

#dynamic 0x80000

#org @inicio
lock
faceplayer
msgbox @frase 0x6
applymovement 0x12 @mov1
waitmovement 0x12
release
end

#org @frase
= Debo irme rapido de aca,rapido!!

#org @mov
#raw 0x1F
#raw 0x1E
#raw 0x1E
#raw 0x1E
#raw 0xFE

release
end
Arriba, has nombrado el puntero del applymovement, como "MOV1"

luego, abajo, lo has definido como "MOV" (sin el "1")

obviamente, el script se ejecuta por orden, y cuando va a buscar la información dentro del puntero "MOV1", se encuentra con que no existe nada ahí dentro, y te devuelve error.

lo segundo, como te dije antes, no hay que poner por segunda vez el "Release/End", te explico porqué:

el cuerpo del script, es @inicio. Dentro de ese script, tienes @mov1, que tienes que definir abajo. y el script, se sigue ejecutando en @inicio. Lo único que hace, sería buscar la información de @mov abajo, para luego seguirse ejecutando en @inicio. un esquema de la ejecución del script sería esta:

1º#dynamic 0x80000

2º#org @inicio

3º lock

4º Faceplayer

5º Msgbox 0x6 @frase

6º #org @frase = blablablablablabla (busca el significado de @frase abajo)

7º Applymovement 0x12 @mov1

8º #org @mov1 (Busca abajo el significado de @mov)

9º Waitmovement

10º Release

11º End

Al poner Release/end, por segunda vez, aunque físicamente en tu script esté al final, realmente, estarías acabando el script entre el paso 8 y el 9, faltando cosas por ejecutarse en tu script, y probablemente generando errores)





El script correcto, sería el siguiente:

Código:
#dynamic 0x80000
#org @inicio

lock
faceplayer
msgbox @frase 0x6
applymovement 0xC @mov1
waitmovement 0xC
release
end

#org @frase
= Debo irme rapido de aca,rapido!!

#org @mov1
#raw 0x1F
#raw 0x1E
#raw 0x1E
#raw 0x1E
#raw 0xFE

Espero que este "minituto improvisado" te haya sido de ayuda a tí, y a cualquier otro que lo vea ^^

Edito el post, para colocar correctamente el applymovement en Hexadecimal.
 

rush

Usuario Habitual
dime que rom estas usando, y que movimientos quieres hacer. igual esta ahí el fallo.

sino, fijate en el numero del sprite que es el correcto. Recuerda, que el numero, en Advance Map, es el "Numero de Sprite", y NO el "Numero de Evento".

A y si, fallo mío, el numero del sprite, va en Hexadecimal, así que en lugar de 12, iría C. Pruebalo así, creo que ese es el otro fallo (no me fije antes)
 
Dios Mio Muchas Gracias Yo tampoco me fije se me olvido :shy:

Por toda tu ayuda y por solucionar problemas te doy reputacion :D

Gracias men :awesome:
 

Jaizu

Usuario mítico
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
 
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
 
Arriba