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

Realizar una accion en un determinado pto del Waypoint.

Pues mi duda es: Yo creo un NPC, y le creo una ruta a seguir solo por el dia, mediante Waypoint’s (hasta aquí no tengo ninguna duda ), y en la último Waypoint tiene que realizar una acción, dicha acción es la de rezar, pero vamos lo que más me interesa es poder una acción en un determinado Waypoint. ¿Debería poner una nueva linea de comando en OnSpawn verdad? ¿Donde se queda registrado o lo que sea, los ptos por los que debe pasar el NPC? Saludos Y Gracias.

Hombre lo ideal seria que pintaras un trigger sobre el wp

en el trigger iria un script (Evento OnEnter) que se activara si el enteringobject coincide con el tag del pnj, le limpias acciones haces el rezo y con un delay command al X tiempo vuelva a andar wp

Hola de nuevo, no me estrañaria que me tomaseis por un plasta pero … esq probe lo q me dijiste,Gonar, y mira que e intentado hacerlo, pero no se como se hace el maldito Script , solo e llegado a saber poner lo de la accion de rezar pero nose ni como poder enlazarlo a q cuando entre la especifica tag haga la accion y lo peor de todo esq no se como hacer lo del tag…

Esto es lo que puesto, al menos me dice que se a compilado bien
es este:

[code:1:9daeda1d4f]
void main()
{

object oNPC=GetLastSpeaker();

AssignCommand(oNPC, ActionPlayAnimation( ANIMATION_LOOPING_MEDITATE, 1.0, 50.0));

}
[/code:1:9daeda1d4f]
Supongo que estara mas mal que to las cosas , pero que conste que yo los Scripts me cuestan mas de hacer que nada en el mundo, lo siento si soy un pokiko pesao

saludos y gracias de todas maneras

Weno, yo n soy maese Gonar pero creo q puedo hecharte una manita, aunq te advierto q soy nuevo en esto del scripteo y lo mismo no te vale para nada. Tal y como lo has puesto no funciona, porque no hay una conversacion. Es decir, oNPC no se llena. Deberías poner

[code:1:73b78d5f16]object oNPC=GetEnteringObject();[/code:1:73b78d5f16]

Pero eso haría que cualquier cosa que entrara en el trigger rezara, y creo q no es eso lo que buscas. Lo que tienes que hacer es darle al tio que va a rezar nu tag (etiqueta, si lo tnes en español) única, en las propiedades de la criatura, donde pone etiqueta, ahí. Y luego poner así.

[code:1:73b78d5f16]void main()
{

object oNPC=GetObjectByTag("EtiquetaDelPNJ");

AssignCommand(oNPC, ActionPlayAnimation( ANIMATION_LOOPING_MEDITATE, 1.0, 50.0));

} [/code:1:73b78d5f16]

No lo he probado, pero creo q así debería de funcionar bien.

Salu2

Sir Johan va bastante bien encaminado, pero no se si funcionaria correctamente su codigo, puesto que cada vez que algo entrara en el trigger, el object del codigo (es decir el pnj con ese tag) haria la accion aunque estuviera fuera del trigger, solo añadir algunos matices al codigo que te puso.

Lo primero de todo, haber el tag se obtiene editando las propiedades de la criatura, veras que en su pantalla principal tiene tag(etiqueta en cristiano), bien ponle Pepe_Reza por ejemplo.

Ahora va el codigo en el evento OnEnter del trigger :

[code:1:412869e372]
void main()
{
// Asignamos el valor del objeto entrante.
object oNPC = GetEnteringObject();
// Obtenemos su tag.
string sNPC = GetTag(oNPC);
// Con una condicion if, miramos si es o no el npc que queremos y
// asi evitamos si no es el que siga el script.
if(sNPC == "Pepe_Reza")
{
AssignCommand(oNPC, ActionPlayAnimation( ANIMATION_LOOPING_MEDITATE, 1.0, 50.0));
}
}
[/code:1:412869e372]

Teoricamente si has seguido bien los pasos puestos arriba, deberia de funcionarte bien. Ya diras puesto que esto no creo que funcione correctamente a la primera mmm 50 segundos rezando fijo que no funcionara bien

[code:1:be4f31f3d9]
void main()
{
// Asignamos el valor del objeto entrante.
object oNPC = GetEnteringObject();
// Obtenemos su tag.
string sNPC = GetTag(oNPC);
// Con una condicion if, miramos si es o no el npc que queremos y
// asi evitamos si no es el que siga el script.
if(sNPC == "Pepe_Reza")
{
ClearAllAction();
AssignCommand(oNPC, ActionPlayAnimation( ANIMATION_LOOPING_MEDITATE, 1.0, 50.0));
DelayCommand(50.0, WalkWayPoint());
}
}
[/code:1:be4f31f3d9]
Es mas yo usaria alguna otra orden al NPC ese en concreto, pon este otro script mejor.

Bueno antes que nada saludos a todos, acabo de inscribirme en esta web y soy nuevo en ella, espero poder conocer y hacer amistad con gente que le guste el nwn sin necesidad de tener que estar jugando

Te comentare asi por encima la forma la cual aplico en el servidor que desarrollo, y expondre su funcionamiento, te servira para hacer todo lo que desees sin necesidad de crear ningun desencadenante y ahorrando multiples scripts para cada pnj.

Se crea un script con en el cual defines tantas funciones como animaciones o acciones desees aplicar.

Supongamos un pnj con un tag o etiqueta por ejemplo prueba.

Creamos tantos puntos de ruta como acciones o rutas a seguir.

Cada punto de ruta se define segun un tag, asi pues para el primer punto de ruta le ponemos un nombre por ejemplo meditar, el cual podria ser el mismo que la funcion que se creo en el script, asi pues de la misma manera en el siguiente punto de ruta podrias poner saludar, y si ademas, deseas que en un mismo punto de ruta se realicen dos acciones o mas podrias ponerle el nombre de meditar.saludar asi sucesivamente. En este caso se ha usado el . para separar las acciones en un mismo punto de ruta.

Ahora necesitaras otro script el cual sea capaz de extraer el nombre del punto de ruta, te separe las acciones y realice una llamada al include del script de las funciones. Este script ademas tambien se encargara de comprobar si el tag de esta criatura ha llegado al location en el cual esta el punto de ruta. Asi y con un bucle que vaya desde 1 hasta tantos puntos de ruta como pusieras podras ir ejecutando funciones segun el pnj vaya llegando a los puntos de ruta.

Bueno espero que te sirva la idea, siento no poder facilitarte mas datos debido a la extension de estos y a que no se trata de un simple script.

Saludos
Thurvack

mmm

No he terminado de entender tu planteamiento.

Haber ¿ seria por lo pasos que expones algo asi ?:

[b:12801367be]Crear una ruta de waypoin[/b:12801367be]

1.- Crear punto de ruta uno (Tag : Saludar)
2.- Crear punto de ruta dos (Tag : Meditar)
3.- Crear punto de ruta tres (Tag : MirarLejos.Bostezar)
4.- Una vez echo esto hacer que el pnjs siga esa ruta.

¿Si eso ?

Explica mejor como lo haces. El primer fallo que veo a esto, es que en un tag no puedes poner .

[quote:12801367be=”thurvack”]
Bueno espero que te sirva la idea, siento no poder facilitarte mas datos debido a la extension de estos y a que no se trata de un simple script.
[/quote:12801367be]

Hombre por esto no ahi problema, el foro esta para cosas asi pon todo el codigo que quieras que nos ayudaria a todos y de eso se trata el foro de scripting, eso si, por favor el codigo ponlo con el BBCode de codigo.

Efectivamente en un tag no se puede poner un .

La que queria comentar es que los puntos de ruta disponen de un NOMBRE y un tag.

El Tag del punto de ruta es el mismo que el de la criatura pero acabado en 1, y asi sucesivamente segun posiciones a llevar al pnj, ejemplo:

prueba_1
prueba_2
prueba_3
prueba_4

estos son los tags para los 4 puntos de ruta de la criatura con el tag prueba.

Ahora y aqui si que se puede poner el .

Nombres de los puntos de ruta:

Rezar
Meditar
Saludar.Reverencia
Mirar

ASi tenemos los 4 puntos de ruta asi definidos:

Nombre punto de ruta 1: Rezar
Tag del punto de ruta 1 : prueba_1

Nombre punto de ruta 2: Meditar
Tag del punto de ruta 2 : prueba_2

Nombre punto de ruta 3: Saludar.Reverencia
Tag del punto de ruta 3 : prueba_3

Nombre punto de ruta 4: Mirar
Tag del punto de ruta 4 : prueba_4

La criatura solo debe moverse a la localizacion que contiene su tag con su accion a realizar. Aqui es donde se efectua el bucle de 1 hasta la suma de puntos de ruta que contienen el tag de la criatura antes del _

Asi los . separan las acciones a realizar para una criatura
Los _ separan el tag de la criatura que debe hacer la accion del orden de la accion a seguir.

Cuando el pnj llega a la localizacion del punto de ruta se ejecuta la accion o acciones que esta guardadas en el NOMBRE del punto de ruta.

Siento si no me explique bien, espero que esto pueda aclarar las dudas mucho mejor.

Saludos
Thurvack

bastante claro , es una buena idea… y siguiendo con el tema… a ver si el post de la libreria de gonar crece y podamos hacer una brutal pa usar en mods españoles, enga se animo de tos

Ara si he cogido la idea y la verdad que es genial

Y valla como dice aragorn, podrias (si kieres claro) añadir el tema a la libreria “hispana” jejeje, pa asi hacerla crecer.

Gracias a todos por contestar y perdonar mi tardanza en escribir, es que he tenido unos problemillas con internet

Gracias de nuevo, en cuanto lo pruebe os lo hago saber.

Cherno.

Los más activos en Scripting