Dialogos complejos (o almenos para mi)
Buenas. Soy nuevo en esto y, o soy un poco tonto(que es probable) o es que es muy complicado.
Resulta que tengo un personaje que quiero que al verme, venga corriendo a mí pidiendo ayuda. Luego, empiece una conversación con mi personaje en el que me dé una misión. Una vez me haya dado la misión, cuando vuelva a hablar con él, me aclare dudas de la misión, pero que no me repita lo mismo como si no me hubiese visto en su vida. Y una vez hecha la misión y entregado el objeto, al volver a hablar con él, que me dé las grácias y ya está, ni repetirme la misión, ni venir corriendo pidiendome ayuda otra vez como si tuviera la memoria de un pez ni nada por el estilo.
Uf! resulta que hice los cuatro dialogos diferentes: - El del grito de auxilio. - El de la misión. - El de recordarme dudas sobre la misión, y en caso de tener el objeto, acabar la misión. - Y el de muchas gracias pero no te voy a decir nada más. El problema: Resulta que para cada frase, hacía una variable local con el asistente y la cambiaba, según era necesario, para que me dijese los diálogos siguientes. El caso es que con la ayuda del asistente no me funciona
Tampoco llevo mucho en esto, apenas una semana, pero mi maldito plebeyo me está volviendo loco. La verdad es que agradecería toda la ayuda posible, ya que veo que en este foro hay muy buen rollo
, y peña con buenos conocimientos. Muchas gracias, Is.
Neverwinter Nights
y para que haces 4 dialogos diferentes? usa el mismo dialogo y la pestaña de “texto aparece cuando” (supongo que habras visto), no te puedo responder mas, usa bien las variables locales y eso
Perdona, me expresé mal. No hice 4 dialogos diferentes, sino que saqué 4 dialogos de la misma raiz. Pero ya lo tengo solucionado. Resulta que los puse en orden, el primero arriba y el último abajo, Y eso puede hacer que la máquina se confunda. Lo puse alrrevés siguiendo como ejemplo los módulos del juego y
funcionó.
Pero muchas grácias de todas formas.
Yo al principio lo veía en los modulos del neverwinter y no lo entendía, pero al final le ví la lógica. Resulta, que la máquina empieza a leer de la raiz hacia abajo, y coge el primer diálogo que es cuya condición es verdadera en el guión “Aparece cuando” o simplemente que no tiene condición. Por ejemplo:
El personaje encuentra a un plebeyo y habla con él, primero el plebeyo le saluda y le da un trabajo que el jugador acepta. La siguiente vez que hable con él, le preguntará si ha hecho el trabajo y de ser así le recompensará y dará por finalizada la misión. Después, cuando el jugador vuelva a hablar con él, solo recibirá las gracias.
Para que haga esto yo lo he hecho de la siguiente forma:
+Raiz
-Muchas gracias por tu ayuda.
-Me has hecho el favor?
-Necesito que me hagas un favorcito.
-En el primer diálogo, en el guión “Aparece cuando”, el siguiente escript:
int StartingConditional()
{
int nDiloSi = GetLocalInt(OBJECT_SELF, “sCharlaPlebeyo”) == 2;
return nDiloSi;
}
-En el segundo, en “Aparece cuando”:
int StartingConditional()
{
int nDiloSi = GetLocalInt(OBJECT_SELF, “sCharlaPlebeyo”) == 1;
return nDiloSi;
}
SetLocalInt(OBJECT_SELF, “sCharlaPlebeyo”, 2);
-En el tercero, en aparece cuando se queda vacío, y cuando el plebeyo le da el trabajo, en el guión “Acciones emprendidas”:
SetLocalInt(OBJECT_SELF, “sCharlaPlebeyo”, 1);
Todo esto llevado a la práctica, hace que al hablar por primera vez con el plebeyo, la máquina lea las condiciones y diga la primera que sea verdadera, en este caso la primera, la variable “sCharlaPlebeyo” con valor 2 aún no existe, así que pasa a la siguiente. A esta le pasa lo mismo, la variable aún no existe y pasa de largo, y el tercer diálogo, al no tener condición, lo lee porque es verdadero por defecto.
Cuando el plebeyo le da el trabajo, entonces crea la variable local “sCharlaPlebeyo” con el valor 1. Ahora cuando el jugador vuelva a hablar con el plebeyo, la máquina empezará el chequeo y parará en la segunda porque la condición es verdadera al concordar “sCharlaPlebeyo” siendo 1. Si el jugador ha hecho el trabajo indicado, recibe la recompensa y se cambia el valor de “sCharlaPlebeyo” en 2, Así que cada vez que vuelva a hablar con él la máquina abrirá siempre el primer diálogo porque “sCharlaPlebeyo” es 2 y la condición es verdadera.
Dioooos! Como me enrollo. En fin, esto es lo que hago yo y la verdad es que funciona de maravilla, espero haber aclarado las dudas de alguien y no haber liao más a la peña. Por cierto tengo una nueva preguntita que me tuvo anoche un buén rato con la cabeza apunto de esplotar hasta que lo dejé.
Alguien sabría decirme cómo hacer que desaparezca todo el oro del jugador? Lo he intentado de mil formas y no hay manera.