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: 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
Game.ChangeScene("scenes\room\room.scene");
y no
Game.ChangeScene("data\scenes\room\room.scene");
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.
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:
if(Game.Interactive && Game.MouseY < 45 &&! Game.ResponsesVisible &&! WinMenu.Visible) Game.InventoryVisible = true;
y cambialo por:
if(Game.Interactive && Game.MouseY < 45 &&! Game.ResponsesVisible &&! WinMenu.Visible && InventoryActive) Game.InventoryVisible = 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.
R: Sólo pon | en el sitio que quieras dividir el texto.
Ejemplo:
TXT000001[TAB]Hola, me gustaría hablar contigo sobre | algunacosarealmenteextrañaeincomprensible.
R: Si necesitas asignar un texto a una variable, tienes que llamar a la función Game.ExpandString().
Por ejemplo:
var txt = Game.ExpandString("/TXT000001/"); Game.Msg(txt);
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:
Game.AddSpeechDir("Ciudad");
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:
actor.Talk("/CIUDAD0010001/", null, 0, "", this.talign);
(donde this.talign es una variable que almacena el alineamiento del texto)
R: para escribir dobles comillas " usa los siguientes caracteres ~"
para escribir una nueva línea usa los siguientes caracteres ~n
actor.Talk("Hola, persona ~"rara~".~n¿Cómo te va?");
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?
#include "scripts\base.inc" this.Field = new Array(10); method SetNumber(position,number) { var tmp = this.Field; tmp[position] = number; this.Field = tmp; }