Registrarse

Otra vez problema con hidesprite

Estado
Cerrado para nuevas respuestas.

Latenzo

Héroe de WaH
Siempre el mismo problema... No puede ser...T_TT_TT_TT_TT_TT_TT_T

tambien esta vez el fadescreen y el hide sprite no funciona.

'---------------
#org 0x801BDC
lock
faceplayer
trainerbattle 0x0 0xD 0x0 0x8801BFD 0x8801C54
setflag 0x220
msgbox 0x8801C62 MSG_NORMAL '"And now?"
fadescreen 0x1
hidesprite 0x15
fadescreen 0x0
release
end

'---------
' Strings
'---------
#org 0x801BFD
= What are you doing here?\nWe're working.\pYou can't stop us.\nWe want to those fossils!

#org 0x801C54
= I hate you!

#org 0x801C62
= And now?
Como l'otra vez el script se convierte en
'---------------
#org 0x801BDC
lock
faceplayer
trainerbattle 0x0 0xD 0x0 0x8801BFD 0x8801C54
setflag 0x220
msgbox 0x8801C62 MSG_NORMAL '"And now?"
fadescreen 0x1
hidesprite 0x15
fadescreen 0xD1

'---------
' Strings
'---------
#org 0x801BFD
= What are you doing here?\nWe're working.\pYou can't stop us.\nWe want to those fossils!

#org 0x801C54
= I hate you!

#org 0x801C62
= And now?
Esta vez que hice de mal?
A differecia de l'otra vez he utilizado un flag libre y entre el 200/2ff

Si sigo asi me van a odiar, lo se pero de verdad no entiendo.¿:.
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Si el script se convierte en eso seguramente es porque lo estás pisando con otra cosa que estás compilando.

Te fijaste que el texto no esté siendo compilado encima del script?

Hagamos esto... Bajate el HxD (o cualquier editor hexadecimal como por ejemplo thingy, pero HxD es muy bueno) y ve a la dirección 801BDC, que es donde está compilado en hexadecimal el script.

Lo que está con FF es espacio libre sin utilizar, el comando end en hex si no mal recuerdo es 02 y el comando release es 6C, por lo que deberías ver en hex un montón de numeros que representan al script y el mismo debería terminar con 6C02. Si por ejemplo aparece el texto (o cualquier otra cosa) sin haber FFs antes de que termine lo que sería el script, y por ende no aparece nunca 6C02, significa que primero se está compilando el script y enseguida se está compilando algo encima del script (como por ejemplo el texto), entonces el script se borra.

Haz este ejercicio que te ayudará a entender, la gente le tiene miedo a hex pero si lo entiendes te ahorrarás miles de dolores de cabeza :)
 

Latenzo

Héroe de WaH
Si el script se convierte en eso seguramente es porque lo estás pisando con otra cosa que estás compilando.

Te fijaste que el texto no esté siendo compilado encima del script?

Hagamos esto... Bajate el HxD (o cualquier editor hexadecimal como por ejemplo thingy, pero HxD es muy bueno) y ve a la dirección 801BDC, que es donde está compilado en hexadecimal el script.

Lo que está con FF es espacio libre sin utilizar, el comando end en hex si no mal recuerdo es 02 y el comando release es 6C, por lo que deberías ver en hex un montón de numeros que representan al script y el mismo debería terminar con 6C02. Si por ejemplo aparece el texto (o cualquier otra cosa) sin haber FFs antes de que termine lo que sería el script, y por ende no aparece nunca 6C02, significa que primero se está compilando el script y enseguida se está compilando algo encima del script (como por ejemplo el texto), entonces el script se borra.

Haz este ejercicio que te ayudará a entender, la gente le tiene miedo a hex pero si lo entiendes te ahorrarás miles de dolores de cabeza :)
He descargato HxD. Si pulso en "buscar" y hago pegar (801BDC) la herremienta no encuentra nada
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Estas buscando contenido o yendo a la dirección? Tienes que ir a esa dirección, creo quw puedes hacerlo con control + g (es decir, tecla control y tecla g a la vez) pero no estoy en casa para comprobarlo
 

Latenzo

Héroe de WaH
Estas buscando contenido o yendo a la dirección? Tienes que ir a esa dirección, creo quw puedes hacerlo con control g pero no estoy en casa para comprobarlo
La direccion.

Con control + g, he encuentrado este 00801bd0..... 6A
 
Última edición:

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
A ver, tienes que abrir HxD, cargar el rom, luego apretar control + g, y donde te pide el offset poner 801BDC, tiene que estar la opción hex activada.

Prueba con eso..


Edito: TIenes que ir a 801BDC, ahí no habrán FFs porque en teoría está el script compilado.
 

Latenzo

Héroe de WaH
A ver, tienes que abrir HxD, cargar el rom, luego apretar control + g, y donde te pide el offset poner 801BDC, tiene que estar la opción hex activada.

Prueba con eso..


Edito: TIenes que ir a 801BDC, ahí no habrán FFs porque en teoría está el script compilado.
Con control + g, he encuentrado este 00801bd0..... 6A
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Con control + g, he encuentrado este 00801bd0..... 6A
Bien, en realidad te tiene que haber llevado a la dirección exacta qunque no te la muestre.

Osea si bien dice 00801BD0, porque es donde empieza esa línea de código, no te puso el cursor en la dirección correcta? Si no simplemente cuenta, C en hexadecimal es 12 en decimal, sería el byte número 12 de esa fila (recuerda que los bytes están formados por dos carácteres, por ejemplo 0F, F0, etc.). Ahí es donde empieza el script
 

Latenzo

Héroe de WaH
Bien, en realidad te tiene que haber llevado a la dirección exacta qunque no te la muestre.

Osea si bien dice 00801BD0, porque es donde empieza esa línea de código, no te puso el cursor en la dirección correcta? Si no simplemente cuenta, C en hexadecimal es 12 en decimal, sería el byte número 12 de esa fila (recuerda que los bytes están formados por dos carácteres, por ejemplo 0F, F0, etc.). Ahí es donde empieza el script
https://photos.google.com/photo/AF1QipNcuw3wdgnfKQKlGsL3BJ09DeCNDeN0hH17XQVp

Y ahora? No entiendo nada de verdad
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
No me deja ver la imagen. Puedes subirla a otro servidor?

Tu sabes que en la dirección 801BFD empieza el texto. Hay un 6C02 antes que empiece ese texto? Si no lo hay, lo estas sobreescribiendo al script

Edito: Creo que en el coso de la derecha te muestra que significa cada byte, el script obviamente no entenderás nada pero del texto no te aparece el texto ahí? Así es más fácil de entender.
 

Latenzo

Héroe de WaH
No me deja ver la imagen. Puedes subirla a otro servidor?

Tu sabes que en la dirección 801BFD empieza el texto. Hay un 6C02 antes que empiece ese texto? Si no lo hay, lo estas sobreescribiendo al script

Edito: Creo que en el coso de la derecha te muestra que significa cada byte, el script obviamente no entenderás nada pero del texto no te aparece el texto ahí? Así es más fácil de entender.
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Bien, ahora ubica la dirección 801BFD, que es donde empieza el texto. Como puedes ver en esa dirección (que está bastante cerca se ve en esa imagen), empieza donde te aparece el D1.
Como recordarás, el script se te cambiaba por fadescreen 0xD1.

Entiendes que pasa?

Donde estaba el comando de fadescreen al lado tendría que ir un 00 para que aparezca el fadescreen 0x0, pero compilaste el texto "What are you doing here?\nWe're working.\pYou can't stop us.\nWe want to those fossils!" encima del script, entonces seguramente la letra W en hex sea D1, lo que causa esa mezcla.

Te estoy haciendo mirar en hex para que entiendas un poco por que es que pasan esas cosas. Ya veo que en el panel de la derecha no te aparece la traducción :(, si usas thingy con las tablas baro (si es que todavía existen) si te aparecerá, pero aun así es suficeinte para entender.

Si tu haces un script chico y enseguida de ese script pones algo más, pero luego alargas el script, habrá problemas de superposición. En esos casos debes de mirar en hex cual es el espacio libre y a por ejemplo el texto cambiarlo de dirección.

Recuerda que en hex los espacios libres son FFs, es decir FFFFFFFFFFFFFFFFFFFFFFFFFFFFF indica que hay espacio libre ahí.
 

Latenzo

Héroe de WaH
Bien, ahora ubica la dirección 801BFD, que es donde empieza el texto. Como puedes ver en esa dirección (que está bastante cerca se ve en esa imagen), empieza donde te aparece el D1.
Como recordarás, el script se te cambiaba por fadescreen 0xD1.

Entiendes que pasa?

Donde estaba el comando de fadescreen al lado tendría que ir un 00 para que aparezca el fadescreen 0x0, pero compilaste el texto "What are you doing here?\nWe're working.\pYou can't stop us.\nWe want to those fossils!" encima del script, entonces seguramente la letra W en hex sea D1, lo que causa esa mezcla.

Te estoy haciendo mirar en hex para que entiendas un poco por que es que pasan esas cosas. Ya veo que en el panel de la derecha no te aparece la traducción :(, si usas thingy con las tablas baro (si es que todavía existen) si te aparecerá, pero aun así es suficeinte para entender.

Si tu haces un script chico y enseguida de ese script pones algo más, pero luego alargas el script, habrá problemas de superposición. En esos casos debes de mirar en hex cual es el espacio libre y a por ejemplo el texto cambiarlo de dirección.

Recuerda que en hex los espacios libres son FFs, es decir FFFFFFFFFFFFFFFFFFFFFFFFFFFFF indica que hay espacio libre ahí.
Entonces tengo que hacer de nuevo el script en un offset donde hay solo FFFFFF?
Si hago esto, todo se erregla?
 

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Entonces tengo que hacer de nuevo el script en un offset donde hay solo FFFFFF?
Si hago esto, todo se erregla?
Si. Igual ten cuidado con estar recompilando un script en muchas direcciones distintas ya que nunca los estas borrando, por ende muchas versiones de un mismo script te pueden gastar espacio. Esto es para que te vayas adentrando en el mundo del hex.

Tienes distintas alternativas:
1. Compilar el script en otra dirección y olvidarte del asunto. Donde ya compilaste se quedará la versión vieja del script para siempre y perderás espacio vacío.
2. Lo mismo que la 1 pero desde hex mismo suplantar todo lo que usaba el script por FF (tienes que tener conocimiento de hasta donde llega el script y eso).
3. Mover el texto a otro lugar y dejar al script en ese mismo lugar, pero también si el script llega a ser más corto que el texto en realidad una parte del texto quedará por ahí colgada en hex.


En definitiva, a medida que vayas adquiriedno más conocimiento te será más fácil no perder espacio libre y esas cosas, pero por ahora tienes que entender que es lo que causa ese error que tuviste, que espero hayas entendido, y si no no tengo problema de explicarte nuevamente.

Por eso no me gusta usar dynamic y esas cosas, porque la gente los usa sin conocer las consecuencias y pierde un poco el control de donde está compilando las cosas. Hay que usarlo a conciencia, yo hoy en día lo uso pero porque entiendo mucho, si no para mi es mejor buscar direcciones a mano desde hex :)
 

Latenzo

Héroe de WaH
Si. Igual ten cuidado con estar recompilando un script en muchas direcciones distintas ya que nunca los estas borrando, por ende muchas versiones de un mismo script te pueden gastar espacio. Esto es para que te vayas adentrando en el mundo del hex.

Tienes distintas alternativas:
1. Compilar el script en otra dirección y olvidarte del asunto. Donde ya compilaste se quedará la versión vieja del script para siempre y perderás espacio vacío.
2. Lo mismo que la 1 pero desde hex mismo suplantar todo lo que usaba el script por FF (tienes que tener conocimiento de hasta donde llega el script y eso).
3. Mover el texto a otro lugar y dejar al script en ese mismo lugar, pero también si el script llega a ser más corto que el texto en realidad una parte del texto quedará por ahí colgada en hex.


En definitiva, a medida que vayas adquiriedno más conocimiento te será más fácil no perder espacio libre y esas cosas, pero por ahora tienes que entender que es lo que causa ese error que tuviste, que espero hayas entendido, y si no no tengo problema de explicarte nuevamente.

Por eso no me gusta usar dynamic y esas cosas, porque la gente los usa sin conocer las consecuencias y pierde un poco el control de donde está compilando las cosas. Hay que usarlo a conciencia, yo hoy en día lo uso pero porque entiendo mucho, si no para mi es mejor buscar direcciones a mano desde hex :)
Creo que he entidido; yo he compilado un script en un espacio per el mismo se ha completado en un otro espacio. Y en el medio hay un otro script.
Verdad? Si no es as', me lo puede explicar (con palabras simples que no soy el maximo en espanol).

Todavia, al final yo puedo hacer el script en cualiquier de estos offset?



Utilisando el primero arriba no tengo errores en el compilar pero el sprite no se va. tengo que salir del mapa y regresar de nuevo

Ademas usted antes de usar dynamic que utilisaba?
 
Última edición:

Xiros

¡Pokémon Omega con actualización del 30/8!
Miembro de honor
Creo que he entidido; yo he compilado un script en un espacio per el mismo se ha completado en un otro espacio. Y en el medio hay un otro script.
Verdad? Si no es as', me lo puede explicar (con palabras simples que no soy el maximo en espanol).

Todavia, al final yo puedo hacer el script en cualiquier de estos offset?



Utilisando el primero arriba no tengo errores en el compilar pero el sprite no se va. tengo que salir del mapa y regresar de nuevo

Ademas usted antes de usar dynamic que utilisaba?
El tema es este, el compilador va compilando en orden, entonces primero compila en una dirección al primer script, pero uno solo indica donde empieza el script, y como el script es largo llega hasta determinado punto. Luego compila el texto, pero este lo compila en una parte donde en realidad ya compiló el script, borrando una parte del script.

Es decir, compila el texto encima de una parte del script, por lo que la última parte del script se borra.

En lo más castellano posible, quieres ingresar dos cosas en el mismo espacio y obviamente no es posible.

Si puedes usar otra dirección, también luego más adelante puedes utilizar "goto" y otras cosas para "dividir" el script en 2 y así si lo editas no tener que recompilarlo en otro lugar.

Dynamic lo unico que hace es buscar espacio libre desde la dirección que le indiques para ahorrarte tener que buscar la dirección de forma manual. Yo antes de usar eso (y muchas veces todavía lo hago), buscaba en hex la direcciones libres buscadno los espacios con FFFFFFFFFFFFFFFFF.


Pudiste con el tema del hidesprite? Cuando te vas del mapa y vuelves ya no está más?
 

Latenzo

Héroe de WaH
El tema es este, el compilador va compilando en orden, entonces primero compila en una dirección al primer script, pero uno solo indica donde empieza el script, y como el script es largo llega hasta determinado punto. Luego compila el texto, pero este lo compila en una parte donde en realidad ya compiló el script, borrando una parte del script.

Es decir, compila el texto encima de una parte del script, por lo que la última parte del script se borra.

En lo más castellano posible, quieres ingresar dos cosas en el mismo espacio y obviamente no es posible.

Si puedes usar otra dirección, también luego más adelante puedes utilizar "goto" y otras cosas para "dividir" el script en 2 y así si lo editas no tener que recompilarlo en otro lugar.

Dynamic lo unico que hace es buscar espacio libre desde la dirección que le indiques para ahorrarte tener que buscar la dirección de forma manual. Yo antes de usar eso (y muchas veces todavía lo hago), buscaba en hex la direcciones libres buscadno los espacios con FFFFFFFFFFFFFFFFF.


Pudiste con el tema del hidesprite? Cuando te vas del mapa y vuelves ya no está más?
Gracias por l'explicacion :D
Si cuando vuelvo en el mapa el sprite no esta mas..
https://www.youtube.com/watch?v=jxD3qcFwlUU

Edit:
Ahora funciona!!

He modificado el hidesprite 0x15 en ----> hidesprite 15
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba