Como trasladar personajes a otros modulos
Hola a todos: Tengo una pequeña curiosidad, he creado varios modulos y me gustaria que mi personaje pudiese cambiar de modulo medinte una puerta o una caverna o algo similar. Lo unico que he conseguido es que dentro del mismo modulo aparecer en un punto concreto, pero no que atraves de una puerta aparecer en otro modulo creado y distinto del que ha comenzado a jugar mi personaje. Como cuando en un juego al pasar una puerta aparaces en otra area ,pues me gustaria saber si se puede hacer lo mismo pero entre modulos diferentes. Gracias y un saludo. Espero haberme explicado bien.
Activos en NWN
Los más activos en Aurora Toolset
Subforos
Neverwinter Nights
Prueba con un script ke añadiera alguno de estos comandos, creo ke estos serian los propios pa lo que quieres :
StartNewModule(string sModuleName)
GetModule()
El segundo no creo que sea es mas propio el primero, puesto que el primero creo que es para asignar el string o para cambiar modulos en un server
nu se haz pruebas.
[color=red:e997198526]El resultado que consiguas (o cualquier otra duda) podrias ponerlo aqui ??? acias[/color:e997198526]
Un saludo a todos q este es mi primer mensaje
. Bueno a lo q voy, yo q no tengo ni idea de programar, ¿dnd pondría ese script para pasar de un modulo a otro?
PD[color=cyan:2e77ebde8f][/color:2e77ebde8f]Felicidades por la web, ha sido un acierto poner todas esas utilidades en español
Bien pongamos un ejemplo
En “ La Caida “ (vease news) he echo el final del modulo cuando abres una puerta de la ciudad, en el futuro updateare el modulo con bugs ke vea la gente y pondre ke esa puerta al usarla “OnUsed” cargue el otro modulo. Facil no ??
Si fuera al llegar a un area, pues OnEnter, o matar a antonio pos OnDeath, etc … todo depende de cuando kieras ke pase.
A mí también me interesaría saber cómo puedo hacer que un personaje jugador se mueva entre módulos. Estoy haciendo uno, y no sé que tamaño tendrá cuando lo acabe, pero me he dado cuenta de que en cuanto un módulo es grande, tarda mucho en cargar en el editor, así que he pensado en dividir mi módulo en varios, como la campaña oficial. Pero claro: no sólo el jugador debe cambiar de módulo en un momento dado. Si lleva henchmen, ellos también deben pasar. Además, al cambiar el módulo deberían guardarse las variables y todo lo que se hizo en el anterior módulo, para continuar con la historia y tal. ¡Ayuda, please!
Haber pongamos que tenemos dos modulos, la ciudad de Sulka (esto es un ejemplo solamente) y las tierras de labranza de sulka.
Queremos que cuando el pj se dirija a la ciudad pues eso cambie de modulo, pues bien en el modulo “Tierras de labranza” hacemos la puerta de entrada de la ciudad, editamos la puerta y en el OnAreaTransition ponemos :
[code:1:121f6964df]
void main()
{
// establecemos el valordel modulo a cargar.
string sModule = GetModule("NombreModulo");
// damos la orden de cargar el modulo, dando 2 segundos antes de cambiar.
DelayCommand(2.0f, StartNewModule(sModule));
}
[/code:1:121f6964df]
Ahora seguimos en la propiedades de la puerta, vamos a area transition, marcamos la casilla waypoint y arriba donde se puede escribir ponemos wp_cambiomodulo1, y aceptamos para que se guarden los cambios echos.
Ahora solo nos falta crear un waypoint en este mismo area cuyo tag sea wp_cambiomodulo1.
APLICACION EN JUEGO :
Cuando el jugador clicke en la puerta para cambiar de area, sera transportado al wp (recomiendo ponerlo al lado de la puerta) y automaticamente 2 segundos despues cargara el otro modulo.
Espero que esto os sirva.
Gonar repasando tu script veo un errorel cual se puede arreglar asi:
[code:1:f3f9fdc48e]
object oModule=GetModule();
string sModule=GetName(oModule);
StartNewModule(sModule);
//Fallo de este script: GetName() devuelve el nombre del modulo no del fichero del modulo, asi que el ordenador se quedaria colgado con la pantalla en negro o simplemente no iniciaria nada en absoluto.
[/code:1:f3f9fdc48e]
StartNewModule(string sName); debe contener el nombre del fichero del modulo no el nombre del modulo en si.
En el evento onUsed se ha de incluir el script que contenga unicamente la funcion StartNewModule(“nombre del fichero”); y al usarlo cargara el nuevo modulo. Es muy util sobre todo para probar nuevos scripts ya que si te equivocas tendrias que cerrar la partida y volver a abrir el modulo para ver los arreglos de esta manera todo solucionado mas rapidamente, y sobre todo usar esto siendo master para poder saltar de area en area.