eing: Bueno, el script una vez que lo has hecho sólo lo tienes que poner una vez, y después tienes que guardarte el offset donde se ha puesto. Ahora es tan simple como pegar el offset en todos los mapas donde quieras que aparezca el pokémon, en nuestro ejemplo serían 5 mapas: pueblo paleta, ciudad verde, rutas 1 2 y 3. El script lo que hace es asignar la posición cada vez que entres en el mapa, independientemente de si entras andando normal y corriente, usando vuelo, por una puerta, saliendo de una cueva, o lo que sea.
Creo que a lo que te refieres es que si usas vuelo el pokémon aparecerá en otro mapa aleatorio fuera de las rutas 1 2 y 3, ¿no? Eso no importa, porque tenemos guardada la posición "virtual" en la variable 0x5000 que puede valer desde 0 (se encuentra en pueblo paleta) hasta 4 (se encuentra en la ruta 3). Cuando vuelvas a entrar digamos en la ruta 1 se ejecutará el script, que mira el valor de la variable 0x5000 para saber dónde está el pokémon dentro de nuestro "mapa virtual". A continuación elige uno de los mapas vecinos aleatoriamente, guarda la nueva posición virtual en la variable 0x5000 y asigna la nueva posición real independientemente de la posición actual del pokémon.
Un ejemplo: imagina que pones un Zapdos errante que se mueva por las zonas del ejemplo, y que ahora mismo se encuentra en Ciudad Verde (0x5000 = 2). Cuando vueles a Ciudad Celeste, aparecerá en una ruta aleatoria, imagina que es la ruta 17. Pero cuando entres en la ruta 2 se ejecutará el script, verá que la variable vale 2 y a partir de ahí calculará una nueva posición, que podrá ser de forma aleatoria la ruta 1 o la ruta 2. Igualmente, pasará lo mismo si vuelas a pueblo paleta o a ciudad verde, o si entras en las rutas 1 y 3.
Espero haberte aclarado la duda.
Un saludo!
Jack Johnson: una idea genial! tendría que ver cómo ejecutar scripts o rutinas de ASM desde el menú de objetos. Gracias!