Dos veces la misma conversacion no!!!
Hola, soy nuevo en esto del scripting y aún no he hecho ninguno, apoyo la opinión de Gonar de que hay que currarselo por si mismo pero repito nunca he hecho un script y en la guia no comprendo mu bien lo de los condicionales. Supongo que para lo que pido, necesito un condicional no? Pues bien, mi duda es: Cuando el pj habla con un pnj que le da experiencia u oro, ¿como se hace para que no se repita la conversacion del oro o la exp. y que salga otra distinta una vez adquirido el oro o la xp? Gracias, el proximo script lo haré yo! Muchas Gracias 
Activos en NWN
Los más activos en Scripting
Subforos
Neverwinter Nights
Tenes que crear una variable que utilizes como “bandera”, o sea en el texto donde entregas el dinero o xp, tenes que usar el wizard en dos oportunidades, en la pestaña de action… elegí la opcion set local variables y pone el nombre de la variable (“bandera”), y el valor con el que se va a inicializar, por ejemplo 1. Luego en la pestaña de text appear.. tambien pone en set local variable, ingresa el nombre de la variable “bandera” y luego pone que la “condicion”sea is not equal to (que no sea igual) a 1, de esta manera se ejecutara solo una vez y cuando la situacion requerida haya ocurrido. Si es muy complicado lo que te digo te paso mis scripts.
PERSEVERA y TRIUNFARAS!
En c++ se llama “bandera” a la variable que nos sirve para controlar que la accion haya sido realizada. Saludos y ten paciencia que es largo y dificil( mas con el compilador del NWN) pero cuando le agarres la mano te van a tener que despegar con una pala del asiento
OK! esta es la respuesta:
Tienes que crear tres lineas de respuesta, la primera es el dialogo inicial que se da cuando se ven por primera vez el jugador y el npc, la segunda es donde pregunta si resolvio el problema que le habia encargado(QUEST), y la tercera es el dialogo que dice despues de haber hecho el encargo que te dio( yo pongo esta tercera linea porque en mi script es un tavernero, y quiero que ofresca sus servicios, sino lo mas correcto es hacer desaparecer al NPC del area)
En la primera lina(la de la biemvenida) en text appear tenes que poner una variable que llamaremos “Chico”, utiliza el wizard y pedile que la variable “Chico” sea diferente a 3(not equal to 3), y que cuando diga cual es el problema que tiene, setea una nueva variable que llamaremos “Grande”, ponela por ej en 1.
En la segunda linea(pregunta por el quest) pone en Text appear” que la variable “Grande” sea igual a 1(usa el wizard, para evitar problemas), y ahi pone dos lineas una que diga “si resolvi el problema”(y en el script de Action TAken , pone la siguiente linea -* DeleteLocalInt(GetPCSpeaker(),”Grande”); *- ) con esto eliminas la variable que permita que deje “entrar” la segunda linea, y en la misma parte si quieres, pones SetLocalInt(GetPCSpeaker,”Chico”,3); con esto evitas que la primera linea del dialogo aparesca de nuevo.
¿Que pasa con la tercera linea? en la etiqueta de “Text Appear” activa el wizard, ve a local variables, y pon que solamente aparecera esa linea de texto cuando “Chico” sea igual a 3, de ahi en mas cada vez que hables con el tavernero empezara de esta linea y evitaras que el quest se haga en forma infinita, LARGO a sido la explicacion, pero obtendras lo que quieres. Saludos Moradin.
OK! esta es la respuesta:
Tienes que crear tres lineas de respuesta, la primera es el dialogo inicial que se da cuando se ven por primera vez el jugador y el npc, la segunda es donde pregunta si resolvio el problema que le habia encargado(QUEST), y la tercera es el dialogo que dice despues de haber hecho el encargo que te dio( yo pongo esta tercera linea porque en mi script es un tavernero, y quiero que ofresca sus servicios, sino lo mas correcto es hacer desaparecer al NPC del area)
En la primera lina(la de la biemvenida) en text appear tenes que poner una variable que llamaremos “Chico”, utiliza el wizard y pedile que la variable “Chico” sea diferente a 3(not equal to 3), y que cuando diga cual es el problema que tiene, setea una nueva variable que llamaremos “Grande”, ponela por ej en 1.
En la segunda linea(pregunta por el quest) pone en Text appear” que la variable “Grande” sea igual a 1(usa el wizard, para evitar problemas), y ahi pone dos lineas una que diga “si resolvi el problema”(y en el script de Action TAken , pone la siguiente linea -* DeleteLocalInt(GetPCSpeaker(),”Grande”); *- ) con esto eliminas la variable que permita que deje “entrar” la segunda linea, y en la misma parte si quieres, pones SetLocalInt(GetPCSpeaker,”Chico”,3); con esto evitas que la primera linea del dialogo aparesca de nuevo.
¿Que pasa con la tercera linea? en la etiqueta de “Text Appear” activa el wizard, ve a local variables, y pon que solamente aparecera esa linea de texto cuando “Chico” sea igual a 3, de ahi en mas cada vez que hables con el tavernero empezara de esta linea y evitaras que el quest se haga en forma infinita, LARGO a sido la explicacion, pero obtendras lo que quieres. Saludos Moradin.