Neverwinter Nights
Menú
Gamersmafia es ahora un archivo de solo lectura.

Implementación de enfermedades y demás

Voy a hacer una pregunta. Soy novato en esto de hacer módulos, así que quizás sea una pregunta muy estúpida, pero allá va de todos modos: Quiero implementar un módulo donde la mayoría de personajes tengan una enfermedad que les reduce la FUE, la DES y la CON. Cada día han de tirar 1D6. El resultado se resta al valor original de la Característica. Por lo tanto, unos días estarán mejor y otros peor. Sin embargo, al pasar de un determinado nivel (digamos, nivel 4), deben tirar 1D8, es decir, que la enfermedad empeora. También quiero implementar que muchos clérigos hayan perdido sus poderes (según el Dios al que sirvan) y que los que aún los conserven, deban tirar 1D20 para ver si el conjuro les sale bien o les estalla en la cara (50% de posibilidades). Los magos también tendrían dificultad para realizar la magia. Me parece que esto es imposible de implementar en el juego, porque afecta a las reglas básicas. De todas formas, yo lo pongo aquí a ver si alguien me da ideas. Por cierto, estas cosas tan extrañas han salido de la mente de nuestro máster de D&D (me refiero al juego de “papel y lápiz”). Un saludo, Keko, si te pasas por este foro

Eso no es un módulo, es una putada mu gorda!

Eso mismo le dije yo al Máster. Y para colmo, como quise ser un enano clérigo, me dijo que fuera seguidor de Moradin, el dios de los enanos. Pero un par de jugadores me dijeron que ni hablar, que los sacerdotes de Moradin habían perdido su poder, así que finalmente me hice clérigo de Tempus, aún siendo enano. Pero entonces va el Máster y se inventa eso de que, aunque pueda lanzar conjuros, tengo un 50% de posibilidades de que me peten en la cara, causando daño, desde luego. De todas formas, he de decir que la aventura, a pesar de ser bastante rallante, es muy interesante, y por eso quiero trasladarla al Neverwinters. Me han recomendado implementar la enfermedad mediante un objeto especial en el inventario, pero no sé yo. Por ahí he visto un script que permite reducir las características, pero creo que en un valor fijo, no aleatorio. Mmm… a ver si busco un diccionario de términos de scripting, y encuentro algo molón

Por cierto, el módulo no consiste simplemente en implementar las putadas mencionadas, sino en crear una aventura, pero con esas características, je, je…

Bueno, he estado ojeando el tema de los scripts, y he conseguido crear algo que se le parezca. Puedo bajar las características del PJ, aunque no en un número aleatorio, sino fijo. De todas formas, algo es algo. He usado un evento de área. Todas las criaturas que entran en un área reciben la enfermedad (luego pondré excepciones). Al efecto le doy la “flag” de “Extraordinary”, y así no se puede eliminar mediante conjuros, descanso y demás métodos. El problema es que este script lo he de meter en cada área, y se comprueba cada vez que se sale de una y se entra en otra. Vamos, que es una caquita. Pero he visto que en Propiedades de Módulo hay una cosa llamada OnLoadModuleEvent o algo así, y espero trasladar el script a esa sección, a ver si se ejecuta solo al cargar el módulo. Después afinaré el script. Le meteré una variable para que compruebe si la enfermedad ya ha sido aplicada, cuánto tiempo hace que se aplicó por última vez, y el nivel del PJ. La cantidad de puntos a sustraer en las Características debe cambiar cada 24 horas. Aunque de momento esa cantidad es fija, creo que puedo hacer que varíe realizando un chequeo de habilidad o algo por el estilo. Según el resultado, se quitarían más o menos puntos. Además, cuánto más poderosa es la criatura, mayor debe ser el rango de puntos a quitar. En fin, todo esto tengo que mirarlo, pero creo que al final conseguiré un resultado más o menos satisfactorio. Interesados en implementar este tipo de estupideces, pónganse en contacto conmigo

Si has conseguido bajar las características un número fijo también puedes bajarlo un número aleatorio, para ello utiliza las funciones que simulan lanzamiento de dados (d2() , d8(), d10(), d20() y d100())

Por ejemplo

int iPenalizacion = d10();

te generaría un número aleatorio entre 1 y 10.

Salu2

Muchas gracias, Epico! No habia visto que existia eso! Esta tarde lo probaré! Espero que funcione, porque parece ser que hay un máximo de puntos en que se pueden disminuir las Características (creo que 10). De todas formas, los efectos pueden ser acumulativos. Si quiero bajar 20 puntos una Característica, aplicaré dos veces un efecto donde baje 10.

Lo que aún no tengo pensado cómo implementar es que los magos y los clérigos tengan dificultad para lanzar la magia. Tendré que revisar conjuros y funciones relacionadas…

Si los valores dx() no te convenzen puedes crear un rango propio con

int iPenalizacion = Random(x) + 1;

de forma que si es Random 4 en vez de x generara un numero de 0 a 3 pero con el mas uno sera 1 a 4. Util por si quieres 1 a 7 o 1 a 33, etc …

Los más activos en Scripting