Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3766 miembros registrados.
El último usuario registrado es stranger2525.

Nuestros miembros han publicado un total de 85800 mensajes en 12217 argumentos.

[Guía] Pasos para solucionar errores incomprensibles en scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

[Guía] Pasos para solucionar errores incomprensibles en scripts

Mensaje por Wecoc el 2012-07-14, 21:43

Primero de todo quiero dejar claro que esta guía no la he hecho yo sino que la ha hecho Dawson, yo solo la he traducido con su permiso.

------

Supongamos que ponemos un script en nuestro proyecto y sin tocar nada de él, nos da error y no sabemos por qué.
Si es así seguiremos una serie de pasos según qué tipo de error nos salga.
Conviene seguir el recorrido entre [].

[Empezamos por el paso A1]

Paso A1) Miramos la línea donde da error.
Si entendemos por qué da error, por ejemplo si falta un paréntesis o hay algo mal escrito, lo solucionamos y ya está. Aún así este tipo de errores no son muy comunes en scripts que haya publicado otro scripter, porque normalmente se habrá esmerado en corregir este tipo de cosas. Es bueno mirarlo igualmente. Hay quien pone # a esa línea y vuelve a probar, pero eso suele llevar a males peores si esa línea era importante. Aún así sí que hay una pequeña posibilidad de que se solucione con # así que también lo podemos probar. Si al poner # nos da error en otra línea mejor no poner mas # o acabaremos cargándonos medio script.

En todo caso:
[Si no entendemos por qué falla el script allí, paso A2, si la línea que da error empieza por 'require' o si el mensaje de error dice algo como "file not found" paso E]

Paso A2) Probamos el mismo script en un proyecto nuevo sin ningún script y miramos si funciona bien allí.

[Si en el nuevo proyecto funciona bien ve al paso A3, si no funciona igualmente, al paso B]

Paso A3) Que funcione en un proyecto y en el otro no sin tocar nada de ése script es que se trata de un problema de incompatibilidad.
Prueba copiando diferentes scripts de tu juego en ese nuevo proyecto y ve probando combinaciones hasta que encuentres con cual es que da fallo.
Normalmente el script que de problemas a parte del que acabas de poner tendrá algo que ver, por ejemplo si los dos son de batalla, o los dos de menú. Es bueno comprobarlos todos igualmente.

[Cuando encuentres el script con el que da problemas a parte de este, ve al paso A4, si no se da el caso con ninguno ve al paso F]

Paso A4) Mira las class y los modules a ver si alguno coincide en los dos, por ejemplo si en los dos hay class Scene_Battle

[Si alguna coincide y parece que tienen nombre de class o module igual por casualidad (como class Prueba), cosa muy extraña, ve al paso D
Si no tienen nombres iguales por casualidad (y por lo tanto es realmente es una class importante) ve al paso
A5
Si no hay ninguna class similar ve al paso
C]

Paso A5) No solo has detectado el script incompatible sino que ya has detectado la parte del script que lo hace incompatible con el otro. Mira dentro de los dos scripts e intenta descubrir por qué. Muchas veces será porque algunos def (como por ejemplo initialize, update o refresh) están en los dos y hacen cosas diferentes. Muchas veces poniendo las dos cosas de ese def en uno solo de manera que no se pierda nada se solucionará. También puede ser que el error venga de que el número de *args (lo que sale entre paréntesis) no coincida entre uno y el otro, en ese caso se añadirán al que tiene menos los del que necesita más.

[Si no se soluciona por mas que lo pruebes, paso F]

Paso B) Puede que se trate de un script múltiple, un script que por si solo no va sinó que requiere otro script. Hay algunos scripts que usan este tipo de cosas, como por ejemplo el SDK.
En este caso lo mejor es encontrar una demo que use el script para mirar si realmente usa solo ése script o usa algún otro.

[Si funciona la demo y realmente usa otros scripts cópialos también al proyecto, si no hay demo, en la demo solo usa un script o si en la demo también te da error; paso F]

Paso C) Mira la línea donde te daba error el script y busca alguna relación entre esa línea y los class y def del script incompatible. Por ejemplo si en esa línea pone animation(chara, true) busca en el otro script algún def animation

[Si encuentras ese lazo en común entre la línea y el otro script ve al paso A5, si por mas que lo mires no hay nada ve al paso F]

Paso D) Según parece el error está en que los dos usan lo mismo de forma diferente por una casualidad. Si ese es el caso lo que hay que hacer es editar uno de los scripts haciendo que en todos los sitios donde salga eso que estaba repetido sea otra palabra. Por ejemplo si en los dos scripts había una class Prueba, en uno de los dos lo cambias por class Prueba_T por ejemplo y luego si en el script sale muchas veces Prueba::Algo, lo cambias por Prueba_T::Algo

[Si has seguido bien los pasos y el error estaba realmente ahí, haciendo este tienes que haberlo arreglado casi obligatoriamente. Pero si el error sigue saliendo, ve al paso F]

Paso E) A veces los scripts usan datos externos. En ese caso normalmente saldrá en el mensaje de error cual es el archivo que falta.
Si es un archivo de audio editaremos el nombre del archivo faltante en la línea que da error por uno de audio que realmente tengamos en la carpeta.
Si es un archivo gráfico podemos crear una imagen vacía en la carpeta con ése nombre y volver a probar el juego
Si es un archivo .rb como por ejemplo fileutils convendrá buscar el sitio de donde has sacado el script para ver si hay algún link a parte para descargar ese archivo.

[Si es un archivo .rb y en el post de donde sacaste el script no hay nada, paso F]

Paso F) Llegados a este paso no podemos hacer mucho mas que comunicar al autor del script el fallo o rendirnos y buscar otro script parecido que nos funcione.
avatar
Wecoc
Administrador
Administrador



Créditos 9371

Gracias : 517

Volver arriba Ir abajo

Re: [Guía] Pasos para solucionar errores incomprensibles en scripts

Mensaje por Mukadelheid el 2012-07-14, 22:13

Muchas veces el error se encuentra arriba de la linea impresa.

Puede haber sido un Array o algo similar sin su ultima "baliza"
Código:
 a = [ "a", "b", "c", "d", "e"
,
entonces el "interprete" leerá aquel Array .pero , continuara hasta encontrar la "baliza"
faltante para cerrar.
En este caso el interprete puede recorrer muchas lineas en busca de la "baliza" ,
en ese recorrido si encuentra algo que no debería estar dentro del Array envía el error,
por el contrario si encuentra la "baliza" faltante y luego la encuentra otra vez enviara nuevamente error.
Estos errores pueden confundir ya que se imprime la linea en la que encuentra "un"
error y no necesariamente donde esta el Array incompleto.


Son bastantes los errores , los mas comunes para mi son ; " ", " faltante , " ) " faltante , etc...
avatar
Mukadelheid
Principiante
Principiante

0/3

Créditos 334

Gracias : 28

Volver arriba Ir abajo

Re: [Guía] Pasos para solucionar errores incomprensibles en scripts

Mensaje por Aarl el 2012-07-15, 00:20

Es una guía un tanto curiosa pero igual pinta útil, pero por fortuna para mí los scripts que he probado nunca me han dado ninguna clase de error... La suerte del que descarga poco xD
Pero si un día llego a tener un problema con algún script, miraré aquí.

No sería beneficioso marcarlo como Post-It para que la gente se pispe de que existe? Lo digo por si lleva mucho tiempo en el foro, que luego es casi imposible de encontrarlo.

Saludos~
avatar
Aarl
Veterano
Veterano

0/3

Créditos 147

Gracias : 38

Volver arriba Ir abajo

Re: [Guía] Pasos para solucionar errores incomprensibles en scripts

Mensaje por carlos55 el 2012-07-15, 01:17

Lo pongo como Post-It para que sea facil encontrarlo
Por cierto buena guia Wecoc
avatar
carlos55
Moderador
Moderador

0/3

Créditos 1131

Gracias : 10

Volver arriba Ir abajo

Re: [Guía] Pasos para solucionar errores incomprensibles en scripts

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.