ayuda para alguien muy novato
me pasaron el oto dia el nwn y me atrajo mucho la creacion de modulos, pero la verdad se muy poco (mas bien na) quiero k un pnj se me acerk corriendo/andando y me empiece a hablar, se k hace falta un script pero no se como se hace este. si me podeis ayudar os lo agradezco de antemano se que debe ser muy simple pero estoy muy pez :
Activos en NWN
Los más activos en Scripting
Subforos
Neverwinter Nights
Yo conozco un par de métodos para conseguir lo q te propones (el q aquí te explico o mediante triggers)… A mí me parece q este es el más sencillo.
1) Ve al OnSpawn script del pnj q quieres q inicie el diálogo.
2) Borra la doble barra “//” de la línea q comienza “SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT)”. Guarda el script con otro nombre.
3) En el diálogo del pnj y en la primera línea de la conversación con el jugador, si quieres q sólo inicie el diálogo una vez añade el siguiente script en “Actions Taken”:
void main()
{
SetLocalInt(GetPCSpeaker(), “Dlg_Init_” + GetTag(OBJECT_SELF), TRUE);
}
Esto modifica la variable en el script q estás usando y el diálogo sólo es iniciado una vez.
3)Ahora crea el siguiente script en OnUserDefined de tu pnj:
void main()
{
int nEvent = GetUserDefinedEventNumber();
if (nEvent == 1002) // El 1002 corresponde al OnPerceive event
{
object oPC = GetLastPerceived();
if(GetIsPC(oPC) && GetLocalInt(oPC, “Hablado” + GetTag(OBJECT_SELF)) == FALSE && !IsInConversation(OBJECT_SELF))
{
ClearAllActions();
AssignCommand(oPC, ClearAllActions());
ActionMoveToObject(oPC);
ActionStartConversation(oPC);
}
}
}
En pocas palabras este script hace lo siguiente: Asigna la condición de q el pj sea percibido por el pnj para q se active. Se asegura de q la criatura vista es el jugador y no ha hablado ya con el pnj. Hace q el pj y pnj dejen de cualquier otra acción, el pnj se acerca al pj e inicia la conversación.
Ten en cuenta q para q este método funcione es necesario q el jugador aparezca fuera del campo de percepción del pnj cuando se carga la zona. Sino no se provoca el evento.
Buf!! Supongo q parece más complicado de lo q en verdad es (eso suponiendo q no me haya equivocado), pero te recomiendo q si de verdad te interesas el tema de los scripts y tienes unos conocimientos medios de inglés, te hagas con el tutorial de bioware… Para resolver tu duda prácticamente lo único q he hecho ha sido traducir. Buena suerte
.
gracias de veras, buscare el tutorial del k me hablas.
si ese no te sirve dilo y te pongo yo otra manera
pues la verdad es que no me ha funcionado.
alguien conoce donde hay algun curso para scripting pero que este en español.
¡¡Vaya!! Pues tenemos un problema de comuncación porq a mí sí q me ha funcionado. No obstante, dejo sitio a Gonar (q seguro q lo está deseando) para q te explique su método (supongo q mediante triggers). Tal vez él te lo pueda poner más claro…
Bien amos a ello
Tal y como yo lo tengo echo, es un espiritu, que cuando el pj entre a la sala ande ta , valla hacia el e inicie la conversacion, aunqu el pj no clickee para hablar.
Creo el pnj, (En este caso un fantasma gueno, ke le puse defender como faccion y legal bueno para no atacar al pj), tag usado “ fantasmaguardian “ y conversacion “con_fantasma”.
Luego creo un area trigger generic (el area de ande ha de entrar el pj para ke el fantasma lo buske), tag usado “fantasma” script puesto en “ OnEnter “
[code:1:fa3654259a]void main()
{
// Definir oPc objeto que entra al area, oNPC el fantasma, si los tags son
// distintos cambialos.
object oPC = GetEnteringObject();
object oNPC = GetObjectByTag("fantasmaguardian");
// Condicion que comprueba si es el pj el que entra al area para evitar
// que funciona sobre pnjs.
if( GetIsPC(oPC))
{
// y nada ahora a detener al pj de golpe para que el fantasma se aceque
AssignCommand(oPC,ClearAllActions());
// y dar la orden al pnj para que comienze la conversacion.
// comprobar el nombre de la conversacion por si usas otro distinto.
AssignCommand(oNPC,ActionStartConversation(oPC, "con_fantasma"));
}
}[/code:1:fa3654259a]
Bueno espero que esto te sirva, a mi me funciona a las mil maravillas