Registrarse

[Scripting] Solucionar bloqueos en scripts de nivel 02

Xabier2012

Usuario mítico
El script de nivel 02 (playback) algunas veces nos puede salir defectuoso.
Si eres scripter, seguro que alguna vez te ha pasado que al entrar en el mapa tu personaje se bloqueaba, y si se ejecutaba el script también se quedaba bloqueado. Esto no tiene nada que ver con no poner un release o con poner mal un setvar, y es fácil de solucionar:


1:
En configuración (A.M.) ponemos el profesional header view

2:
En cabezal nos vamos a map options, y copiamos el offset que pone en "map script offset"

3:
Abrimos el XSE, y teniendo la casilla "script de nivel" marcada, descompilamos.

4:
Nos aparecerá algo como esto:
Código:
---------------
#org 0x71D3B4
#raw 0x3
#raw pointer 0x8165465
#raw 0x2
#raw pointer 0x81654CE
#raw 0x0

'---------------
#org 0x1654CE
#raw word 0x4013
#raw word 0x2
#raw pointer 0x880443F
#raw word 0xFFFF
Y los scripts que tengamos también nos aparecerán. Pues bien, buscamos la parte que configura nuestro script de nivel, es decir, la parte que tiene los parámetros de nuestra var y valor. En mi caso es esta parte de aquí:

Código:
'---------------
#org 0x1654CE
#raw word 0x4013
#raw word 0x2
#raw pointer 0x880443F
#raw word 0xFFFF

Puesto que yo utilizo la var 4013 y el valor para que se ejecute el script de 2.

5:
Ahora nos vamos al ultimo comando, el cual es:
Código:
#raw word 0xFFFF
Tenemos que cambiar FFFF por 0, tal que así:
Código:
#raw word 0x0
Ya que lo que quiere decir este comando es que se han finalizado los scripts de nivel tipo 02.

Una vez cambiado volvemos a compilar y el problema debería estar solucionado.
 

BandeDollio

Extintor-Sama
Respuesta: [Tutorial] Solucionar bloqueos en scripts de nivel 02

Tengo alguna duda.
Esto es bastante obvio pero... En el paso 3 hay que abrir el código ya compilado del script de nivel no? Porque desde el modo profesional no me deja abrirlo o más bien no se como ya compilado.
Luego al descompilar no me sale nada parecido a lo que te sale a ti, al código solo se me añaden estas 3 líneas:
Código:
#raw 0x2
#raw pointer 0x2800FF53
#raw 0x0
Y nada de word 0xFFFF
 

Inferno

Miembro insignia
Miembro insignia
Respuesta: [Tutorial] Solucionar bloqueos en scripts de nivel 02

Tengo alguna duda.
Esto es bastante obvio pero... En el paso 3 hay que abrir el código ya compilado del script de nivel no? Porque desde el modo profesional no me deja abrirlo o más bien no se como ya compilado.
Luego al descompilar no me sale nada parecido a lo que te sale a ti, al código solo se me añaden estas 3 líneas:
Código:
#raw 0x2
#raw pointer 0x2800FF53
#raw 0x0
Y nada de word 0xFFFF
Solo tienes que copiar el offset que te aparezca en map script offset (Para abrir modo profesional Control+H), te vas a XSE con la ROM abierta, lo pegas donde pone Direc. 0x y, antes de darle a descompilar, asegúrate de tener marcada la casilla script de nivel, sino no te lo descompilara como tal.
 

H.B.P

Emperador Kaktiácero
Miembro de honor
Respuesta: [Tutorial] Solucionar bloqueos en scripts de nivel 02

Curioso, creo que llegué a crear un tema acerca de este error o quizás sólo fue una respuesta en un tema de Dudas. De todas formas, llegué a descubrir cómo solucionar este error desde la Edad de Piedra y grabé un vídeo explicando el proceso, así que os lo traigo por si os pudiera ser de utilidad. Hacen ya seis años de esto, ¡cómo pasa el tiempo!



Buen tutorial.
 

C_Cris

Pequeño saltamontes
El script de nivel 02 (playback) algunas veces nos puede salir defectuoso.
Si eres scripter, seguro que alguna vez te ha pasado que al entrar en el mapa tu personaje se bloqueaba, y si se ejecutaba el script también se quedaba bloqueado. Esto no tiene nada que ver con no poner un release o con poner mal un setvar, y es fácil de solucionar:


1:
En configuración (A.M.) ponemos el profesional header view

2:
En cabezal nos vamos a map options, y copiamos el offset que pone en "map script offset"

3:
Abrimos el XSE, y teniendo la casilla "script de nivel" marcada, descompilamos.

4:
Nos aparecerá algo como esto:
Código:
---------------
#org 0x71D3B4
#raw 0x3
#raw pointer 0x8165465
#raw 0x2
#raw pointer 0x81654CE
#raw 0x0

'---------------
#org 0x1654CE
#raw word 0x4013
#raw word 0x2
#raw pointer 0x880443F
#raw word 0xFFFF
Y los scripts que tengamos también nos aparecerán. Pues bien, buscamos la parte que configura nuestro script de nivel, es decir, la parte que tiene los parámetros de nuestra var y valor. En mi caso es esta parte de aquí:

Código:
'---------------
#org 0x1654CE
#raw word 0x4013
#raw word 0x2
#raw pointer 0x880443F
#raw word 0xFFFF

Puesto que yo utilizo la var 4013 y el valor para que se ejecute el script de 2.

5:
Ahora nos vamos al ultimo comando, el cual es:
Código:
#raw word 0xFFFF
Tenemos que cambiar FFFF por 0, tal que así:
Código:
#raw word 0x0
Ya que lo que quiere decir este comando es que se han finalizado los scripts de nivel tipo 02.

Una vez cambiado volvemos a compilar y el problema debería estar solucionado.
No me funcionó, hice todos los pasos al pie de la letra, cambié el 0xFFFF por 0x0 y lo que hace es como si no tuviese el script es decir, no me lo ejecuta, ayuda!
 
Arriba