Preguntas para un módulo (semi) Persistente.
Acabo de mercarme el jueguecito de marras (lo tengo una semana) y me he metido de cabeza al editor a diseñar modulos (soy un viejo rolero que al fin ve el principio de una nueva era en los juegos de rol por ordenador, con lo que no he podido sustraerme a pillarme este, ya que el de Vampiro era algo más dificil diseñar modulos). No puedo dedicarle todo el tiempo que me gustaría, por lo que avanzo muy despacio, y además ahora que estoy empezando empleo la mayor parte del tiempo leyendo los foros de un sitio y otro para aprender las peculiaridades del NwnScript este que trae, los tutoriales, guias y las dudas resueltas. Pero hay cosas tan obvias (para los que ya lleváis algún tiempo más que yo) que no se explican. Por ejemplo, si el modulo se puede jugar en multiplayer y pretende tener ciertas trazas de Mundo Persistente (PW) con búsquedas por ahí para seguir si se desea: 1.-) ¿Cómo controlo fácilmente si una búsqueda está hecha o no, o en qué estado de progreso se encuentra? Yo pensaba inicialmente hacerlo con el Diario (Journal) del Personaje, pero si hay varios PJ’s unos pueden haber iniciado la búsqueda y otros no. ¿La solución es crear un objeto o PNJ marcado con Trama (Plot) y guardar ahí las variables que indiquen el estado de la búsqueda? Es la solución que a mi se me ocurre, pero a ver si estoy haciendo el primo y hay alguna más sencilla. 2.-) ¿Es posible hacer un área en la que hay varios PNJ’s que estarán en un sitio u otro de la posada (o incluso no estarán) según sea de día o de noche, se halla completado una búsqueda o la misma esté en cierta fase de desarrollo? Es que he hecho una posada para el módulo y claro, si te encuentras a todas horas a los mismos en el mismo sitio durante varios días… Lo de los Puntos de Ruta (Waypoints) diurnos y nocturnos me ha servido para ciertas cosas de ubicación, pero lo de hacer que ciertos PNJ’s no estén en el área a ciertas horas no sé cómo hacerlo. He visto un Script que cierra puertas según sea de día o de noche, pero no he sabido adaptarlo para que haga lo que yo quiero. De momento ya está. Porque supongo que lo echar el cerrojo de nuevo a los objetos sigue sin arreglarse. Hoy he actualizado a la versión 1.24 y me decía que los eventos OnLock y OnUnlock ya funcionan… pero no consigo cerrar una puerta que tengo marcada como que se puede volver a cerrar con la llave pertinente. A menos que el PJ tenga la habilidad de Abrir Cerraduras (Pick Lock). Supongo que esos eventos no controlan si se cierra o no el cerrojo de la puerta… sino lo que pasa en el momento en que se cierra o se abre dicho cerrojo. ¿Estoy en lo cierto o vuelvo a meter la gamba? En fin, iluminadme con vuestra sabiduría que estoy que no me entero con algunas cosas. Gracias.
Neverwinter Nights
Hola Escoprión. Soy Beldar y yo también estoy haciendo lo mismo que tu, un mundo semi persistente, y tus preguntas me parecen muy interesantes, unque veo que todavía no te las han respusto
. Esto explicarlo es un lio no se si te habras enterado de algo
pero bueno, esa es mi idea, espero que propongais más ideas!
por otro lado, en el tema de las Quest, yo tambien tengo una duda parecida, y hablandolo con un amigo que es el que me esta ayudando a diseñar las areas y con las ideas, hemos llegado a la conclusión que lo mejor es diseñar el mundo, y en distintas areas, colocar dungeons, que serán las quest para ganar exp, oro y objetos, que serán el único lugar donde se puedan conseguir, haciendo así que los PJ busquen dungeons a lo largo y ancho del mundo, y el principal problema era: ¿Que pasa cuando terminen esas Quest los primeros jugadores que lleguen? al cabo de unos días el mundo parecerá estar vació y sin quests… y no es plan de hacer tropecientas mil quest porque tampoco damos para tanto. Y al final hemos decidido en que al cabo del rato, imaginate a la hora o media hora todo se vuelva a formar. Todavía no lo hemos probado pero supongo que se podrá hacer con una opcion de las propiedades. De esta forma si un grupo de PJ entra en un dungeon y habla con el de la puerta y lo matan, el siguiente grupo de aventureros si entra mientras los otros esten dentro, tendrán que entarse por medio de los jugadores, en vez de por el de la puerta… esto es un ejemplo. Y si pasa una hora, todo volverá a estar en su sutio, y así si llegan otros PJs se encontrarán cop el tio de la puerta y hablarán con él y arán el dungeon. Quizas los que esten dentro, al salir del dungeon les cueste más por haber tardado tanto y volverán a encontrarse con los enemigos de antes
Respecto a lo de la cerradura, a mi me pasa lo mismo
Hasta otra!
A la pregunta 1) ya le he encontrado solución, y es guardar variables “globales” en el módulo en lugar de guardar sólamente variables “locales” en el PJ. Es decir, usando GetModule() para que las variables se guarden en el objeto módulo en lugar de en un objeto PJ concreto. De esta forma puedo consultar cómo anda determinada misión preguntando por determinada variable sin que dependa de ningún PJ o PNJ. Usaré variables dependientes de PJ o PNJ para cosas relativas a ellos, como ¿qué sabe este sobre tal cosa? o ¿es la primera vez que se encuentra con esto?. En cuanto a los diarios los voy actualizando según se va completanco la busqueda… si es que el PJ está al tanto de ella, para lo cual tengo que comprobar dos cosas: el estado global de la búsqueda (consultando la “variable global”) y si el PJ está al tanto de ella (consultando la “variable local”).
Con la pregunta 2) todavía no me he puesto en serio, pero ya voy aprendiendo más cosas del Script este y poco a poco voy siendo capaz de programar decentemente, por lo que seguramente no tardaré en resolverlo. Pondré aquí cómo lo he hecho (que seguro será una chorrada).
En cuanto al problema con cerrar con llave objetos… los eventos OnLock y OnUnLock en efecto no controlan si se cierra o no el cerrojo de la puerta… sino lo que pasa en el momento en que se cierra o se abre dicho cerrojo. Y el error consistente en que no se pueda cerrar con llave un objeto si no se tiene la habilidad de Abrir Cerraduras persiste… incluso en el reciente parche v1.25 así que esperemos que en breve los de BioWare lo solucione.