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

¿Cómo conseguir k un PNJ, tras hablar desaparezca del área?

Wenas de nuevo. Ahora lo que trato de conseguir es que, tras rescatar al PNJ tal de los malotes de turno, me de las gracias, suelte la guita, y se las pire a su casita. ¿K script debo utilizar para conseguir k tras hablar mi PNJ, se vaya hasta un waypoint determinado y se “esfume” literalmente? Kedaría mejor si se largase por una puerta, pero me conformo con lo k sea. Las gracias os sean dadas. Imrishale N´her Orbdrin

…

A las muxas gracias n_n Ahora haber si me rula

Imrishale N´her Orbdrin

… (ya no digo na )

Jops…

Imrishale N´her Orbdrin

[code:1:a47d82413f]
void main()
{
location oDestino = GetWaypointByTag("WP_Destino"); // Asignamos el Wp a una variable.
object oPnj = GetObjectByTag("antonio"); // Asignamos el pnj mediante tag unico a una variable.
ActionMoveToLocation(oDestino); // Le damos la orden de que se mueva al Wp.
DelayCommand(10.0, DestroyObject(oPnj))); // Despues de 10 segundos llegue o no, le decimos que se destruya.
}
[/code:1:a47d82413f]

Bueno a mi en casos asi me gusta especificar el pnj y suelo ponerle un tag unico, ante lo cual yo haria unos pequeños retoques como arriba ponge atendiendo a esto :

antonio = tag unico del pnj.
WP_Destino = tag del waypoint ande a de ir.

Tambien variee unas cosillas, para evitar jugadores de estos ke tienen mala folla, y es que le puse un DelayCommand, de 10 segundos (varialo a mas o menos segun te venga a ti o no bien), y al pasar ese tiempo llegue o no, se destruye por ke si. Osea que si un pj va detras agobiando, sera solo por un tiempo .

Muxas gracias. Ahora mi intención es k, tras rescatar al susodicho preso, pos este me siga hasta la salida. Algo asi como un hechman desos, pero k solo te sigue. Y cuando llego a tal zona, delimitada por un trigger, el tio diga: Oh gracias mi salvador (ninini) y se largue por la puerta. A k me complico la vida…

Imrishale N´her Orbdrin

P.D. ¿Komo koño sabes tanto de script? Seguro k le dedicas tiempo y todo.. a ke si

¿ Se de scripting ?
jejeje
realmente en una escala de 1 a 100 no sabre ni el 15%, yo lo entono de la siguiente manera, pues no creo ke halla otra.

Los scripts de los cuales tiengo alguna duda, pregunto y busco la manera de que alguien me ayude, (normalmente dawuid o syrneth, me dedico a escuchar lo que me van diciendo (correcciones, consejos, etc …) y una vez resuleto analizo la diferencia de lo que yo habia echo, o en lo que dudaba, y el resultado (ke siempre va), que ellos me han proporcionado.

De ahi aprendo cual fue mi error, o falta de conocimientos y comienzo a probar algo nuevo que derive de eso y sea mas complicado si es posible.

Luego tambien le echo imaginacion, es decir no pienso kiero ke antonio ande hasta aki y le pegue a juan (por ejemplo), el pc no entiende eso, entiende :

[code:1:45220459a5]antonio "funcionmueveteaX"

cuando antonio llegue a X
pega a juan[/code:1:45220459a5]

Ves el pc es tonto, ahora cojno y con ayuda del toolset (script editor), en la zona de la derecha puedes mirar las funciones y buscar la que se adapte a lo que tu kieres. Sin mirarlo esto seria algo asi :

[code:1:45220459a5]void main()
{
// declaramos los objetos y demas primero claro esta ke al pc ahi
// que desirselo to : )
object aNtonio = GetObjectByTag("antonio");
object jUan = GetObjectByTag("juan");
object daNdoostias = GetObjectByTag("atacando");
location zOnaguatazos = daNdoostias;
// una vez echo esto damos la orden al pnj de ke ande. Ojo esta funcion
// no se si existe, pero si te fijas casi todas siguen el patron parecido
// move = mover To = hacia etc … usea ke pongo una provisional
// y ya buscare la ke toke
OrderActionMoveToArea(aNtonio, zOnaguantazos);
// Ahora toca repartir ostias si llega al area
if GetObjectLocation(jUan) = GetObjectLocation(jUan, zOnaguantazos)
{
OrderActionAtack(jUan, aNtonio);
}
else
{
return;
}
}
[/code:1:45220459a5]

Como ves esto es muy simple, ahora solo falta buscar en la parte derecha del script editor las funciones que realmente existen para cada cosa.

A modo de ejemplo, te pondre ordenar que se mueva.

[code:1:45220459a5]OrderActionMoveToArea(aNtonio, zOnaguantazos);[/code:1:45220459a5]

escribo order y no me sale nada, osea ke ya se ke la funcion no existe, pues nada a buscar action, y me salen la ristra impresionante de de funciones, pues pongo actionmove para mas especificar y tachannnnnn me salen 4 de las cuales una de ellas es ActionMoveToObject la cual me viene de maravilla, puesto ke el area la tengo definida como objeto, y despues como location, pues esa mismo supongo ke me valdra y la modifico asi :

[code:1:45220459a5]// veras que cuando seleccionas en la derecha la funcion abajo te explica como se usa.
// ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f)
//osea que a de quedar asi mas o menos
ActionMoveToObject(daNdoostias)[/code:1:45220459a5]

No es muy complicado, ahora una vez acabado el script vendria donde va, y esto depende a cuando kiera yo ke pase y seria empezar otra vez con lo mismo, si kiero ke sea cuando el pj entre en un area, pues nada cojo y el script y lo amplio o no se seria echarle mas imaginacion al tema. Sopniendo que antonio apareciera nada mas iniciar el modulo al lado del pj, pues se pondria en el OnSpawn de antonio y no nos comemos mas el tarro

PD : Lol con lo facil que es haccerlo y lo ke ma costado explicarlo jejejeje, seguro ke dawuid es mas concreto y con mejores ejemplos de como lo hace el. Y por supuesto otro metodo o forma, cada cual hace la

¬_¬U Menuda explicación… m perdí por lo de Antonio y su X

De todos modos… intentaré hacer algo parecio.. es decir, prestar mas atencion

Imrishale N´her Orbdrin

Los más activos en Scripting