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

Puede alguien ayudarme con un script de creación de objetos?

tengo este script: [code:1:6abaf5bec2] object OBJECT_SELF = GetLastUsedBy(); CreateItemOnObject(“cadaver”,OBJECT_SELF); DestroyObject(GetNearestObjectByTag(“cadaver”,OBJECT_SELF)); [/code:1:6abaf5bec2] pero no me funciona, mi idea seria que en frente de un NPC se creara un objeto y un tiempo después se destruyera. Puede alguíen ayudarme?

[code:1:b180d41515]
void main()
{
object oObjeto = GetLastUsedBy();
object oCosa = OBJECT_SELF;
CreateItemOnObject("ResRefObjetoACrear", oCosa);
DestroyObject(GetNearestObjectByTag("TagDelObjetoADestruir"));
}
[/code:1:b180d41515]

Esto es mas facil que funcionara, te digo errores a primera vista ok ??

1.- object OBJECT_SELF = GetLastUsedBy();
OBJECT_SELF es una constante que define a uno mismo no puede recibir un valor asi como asi, usea que esto seria un gran fallo, de echo el compilador debe de darte un error al intentar comprimir esto.

Lo correcto seria object nombrevariable = funcion o constante que lo define.

En lo que te puse declaramos dos objects uno con el object_self ke hace referencia a uno mismo y otro con el getlastusedby que hace referencia al ultimo usuario.

2.- Create item, mmmm haber esto es un fallo ke muchos (o todos) hemos tenido. Los objetos, placeables, etc … todo tiene un resref y un tag. Bien para crear precisas el resref, osea que createitem necesita ese valor.

3.- Destroy, pues si antes precisabas el resref, destroyobject es todo lo contrario precisa el tag del objeto.

Bueno ahi algunos fallos mas, pero no kiero desmoralizarte al menos lo has intentado que es el tema. Prueba (pero fallara seguro) lo que te puesto arriba y si no ponme aki mismo que es lo que quieres hacer concretamente y te echo una mano.

Antes que nada, gracias por responder tan rapido a mi “petición de socorro”.

Explicare mejor lo que queria decir antes:

Mi idea es que en una conversación de un PC y un NPC al finalizarla se cree un objeto y después de un tiempo, este se destruya.

He mirado el script que me enviaste pero no consigo que funcione. DE todas formas seguire intentando.

Venga pues te pongo un script con comentarios // y ves como se haria.

Suponiendo que el objeto deba crearse en el pj.

[code:1:e02b358c0e]
void main()
{
// Definimos primero las variables a usar.
// Primero el objeto a crear.
string sObjeto = "ResRefDelObjeto";
// Segundo el objeto donde se crea.
object oPC = GetLastPCSpeaker();
// Por ultimo creamos el objeto definido en el otro objeto definido.
// Si te fijas al declarar primero las variables como arriba,
// te resultara despues mas facil trabajar con las funciones.
CreateItemOnObject(sObjeto, oPC);
// CreateItemOnObject(sObjeto, oPC, 50);
// « esto es para comentar o descomentar lineas.
// si el objeto son flechas o similar, osea algo apilable usa mejor la
// la segunda linea, para eso comenta el create de arriba y descomenta
// el create de abajo.
}
[/code:1:e02b358c0e]

Bueno, ¿ dudas ?, ¿ has pillado algo ?, ¿ quieres que te explique algo mas ?

Interesante, pero creo que lo que crux queria decir era crear un objeto en el suelo, no en un personaje.

Pues la verdad es que si, yo me referia a crear un objeto en el suelo. De todas formas gracias por el codigo, lo entiendo bastante bién pero no se me compila lo sigu:

void main()
{

string sObjeto = "espada"; //poner el resref
object oPC = GetLastPCSpeaker();
CreateItemOnObject(sbolsa, oPC);

}

Lo que yo no sabia es lo del resref. Cuando se usa la etiqueta y quando el resref?.

PD:(ya sabia lo de los comentarios )

Cuadno se usa un resref y cuando se usa un tag (etiqueta) depende de la funcion en si, para eso te recomiendo k mires el prototipo de la funcion en si y ahi veras si lo k pide es tag o resref

Siguiente Asunto: ¿Porque no compilara?

[code:1:67787fb577]void main()
{

string sObjeto = "espada"; //poner el resref
object oPC = GetLastPCSpeaker();
CreateItemOnObject(sbolsa, oPC);

}
[/code:1:67787fb577]

El error se encuentra en esta linea:
[code:1:67787fb577]CreateItemOnObject(sbolsa, oPC); [/code:1:67787fb577]

Tu defines la string que contiene el resref del objeto a crear como sObjeto
pero luego en el momento de usarla, llamas a otra variable distinta vease en este caso sbolsa, solucion cambia sbolsa por sObjeto y veras como compila

Los más activos en Scripting