This shows you the differences between the selected revision and the current
version of the page.
es:faq 2009/05/19 01:58 | es:faq 2010/03/17 14:11 current | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== **FAQ** ===== | + | ===== Preguntas y respuestas ===== |
- | ==== P: ¿Cómo configuro la primera escena del juego? ==== | ||
- | R: Encuentra la línea en data/scripts/game.script que comienza con Game.ChangeScene. Cambia esta línea para mostrar la escena correcta. | + | ===== P: ¿Cómo configuro la primera escena del juego? ===== |
- | ==== P: Mi escena trabaja en Project Manager pero no en modo compilado ==== | + | R: Busca la línea en data/scripts/game.script que comienza con Game.ChangeScene. Cambia esta línea para mostrar la escena correcta. |
- | R: | ||
- | ==== P: ¿Cómo desactivo el inventorio en una escena? ==== | + | ===== P: Mi escena funciona en Project Manager pero no una vez compilado ==== |
- | R: Normalmente es suficiente con configurar ame.InventoryVisible = false; pero la demo de WME tiene un inventorio móvil, entonces necesitaremos hacer un poco más que eso. | + | R: Probablemente sea un problema de rutas. Recuerda que debes usar rutas relativas en los paquetes. Si en la demo incluída en WME tienes un paquete llamado **data**, no incluyas **data** en la ruta de los archivos. Por ejemplo, usa la instrucción |
+ | <code script> | ||
+ | Game.ChangeScene("scenes\room\room.scene"); | ||
+ | </code> | ||
+ | y no | ||
+ | <code script> | ||
+ | Game.ChangeScene("data\scenes\room\room.scene"); | ||
+ | </code> | ||
+ | Otros problemas pueden ocurrir al mover escenas a carpetas anidadas. Tienes que comprobar el archivo de escena que has movido y, además de que la ruta sea correcta, asegurarte de que la variable **$EDITOR_PROJECT_ROOT_DIR$** apunte realmente al directorio raíz. | ||
+ | |||
+ | También es importante saber que todos tus efectos, música, etc. deben estar presentes en la carpeta del proyecto o no se incluirán en los paquetes compilados. | ||
+ | |||
+ | |||
+ | |||
+ | ===== P: ¿Cómo desactivo el inventario en una escena? ===== | ||
+ | |||
+ | R: Normalmente es suficiente con configurar Game.InventoryVisible = false; pero la demo de WME tiene un inventario móvil, entonces necesitaremos hacer algo más. | ||
Ve a la siguiente línea en data/scripts/game_daemon.script: | Ve a la siguiente línea en data/scripts/game_daemon.script: | ||
Line 25: | Line 39: | ||
</code> | </code> | ||
- | Añade la línea global InventoryActive en data/scripts/base.inc; y para finalizar inserta en el comienzo de data/scripts/game.script la línea InventoryActive = true; | + | Añade la línea global InventoryActive en data/scripts/base.inc; y para finalizar inserta al principio de data/scripts/game.script la línea InventoryActive = true; |
+ | Desde ahora puedes activar/desactivar fácilmente el inventario con la variable InventoryActive en tus archivos scene_init.script. | ||
+ | |||
+ | ===== P: ¿Cómo se ajustan las líneas de string.tab? ===== | ||
+ | |||
+ | R: Sólo pon | en el sitio que quieras dividir el texto. | ||
+ | Ejemplo: | ||
+ | TXT000001[TAB]Hola, me gustaría hablar contigo sobre | algunacosarealmenteextrañaeincomprensible. | ||
+ | |||
+ | |||
+ | ===== P: ¿Cómo funcionan los scripts con el texto de string.tab? ===== | ||
+ | |||
+ | R: Si necesitas asignar un texto a una variable, tienes que llamar a la función Game.ExpandString(). | ||
+ | Por ejemplo: | ||
+ | |||
+ | <code script>var txt = Game.ExpandString("/TXT000001/"); | ||
+ | Game.Msg(txt);</code> | ||
+ | |||
+ | |||
+ | ===== P: ¿Cómo funcionan los archivos automáticos de diálogo? ===== | ||
+ | |||
+ | R: WME tiene la capacidad de reproducir automáticamente archivos de sonido asociados a los códigos de string.tab. Aunque hay algunos detalles que debes evitar. | ||
+ | |||
+ | |||
+ | Primero, debes decirle a WME dónde están esos archivos (por defecto, se buscan en la carpeta speech). | ||
+ | Esto se hace de la siguiente manera: | ||
+ | |||
+ | <code script>Game.AddSpeechDir("Ciudad");</code> | ||
+ | |||
+ | Tus archivos de sonido deben nombrarse igual que los códigos del archivo string.tab, por ejemplo, si tienes la siguiente línea: | ||
+ | CIUDAD0010001 Hola, ¡Me llamo Armitage! | ||
+ | tu archivo de sonido se llamará ciudad0010001.ogg | ||
+ | |||
+ | Lo último a tener en cuenta es que, si usas las propiedades avanzadas de Talk, debes indicar **null** como segundo parámetro. Por ejemplo, una línea compleja podría ser: | ||
+ | |||
+ | <code script>actor.Talk("/CIUDAD0010001/", null, 0, "", this.talign);</code> | ||
+ | |||
+ | (donde this.talign es una variable que almacena el alineamiento del texto) | ||
+ | |||
+ | |||
+ | ===== P: ¿Cómo se escriben caracteres especiales en las cadenas de texto de WME? ===== | ||
+ | |||
+ | R: para escribir dobles comillas " usa los siguientes caracteres ~" | ||
+ | para escribir una nueva línea usa los siguientes caracteres ~n | ||
+ | |||
+ | <code script>actor.Talk("Hola, persona ~"rara~".~n¿Cómo te va?");</code> | ||
+ | |||
+ | |||
+ | ===== P: ¿Cómo funcionan los Arrays como clase miembro de un objeto propio? ===== | ||
+ | |||
+ | R: Debido a la limitación de un nivel de la notación con puntos, necesitas un truco con una variable temporal. Aquí tienes un ejemplo: | ||
+ | |||
+ | file Arrayclass.script? | ||
- | //(sin terminar)// | + | <code script>#include "scripts\base.inc" |
+ | |||
+ | this.Field = new Array(10); | ||
+ | |||
+ | method SetNumber(position,number) | ||
+ | { | ||
+ | var tmp = this.Field; | ||
+ | tmp[position] = number; | ||
+ | this.Field = tmp; | ||
+ | }</code> | ||