














Saludos a todos, he estado mirando los posts antes de publicar este y he visto que en uno de ellos explicais muy bien todo lo referente a waipoints y demás. Mi pregunta es: Se puede hacer que un pnj a vase de waipoints haga una ruta pero a una determindada hora del dia?, o sea que quiero que un pnj de trama salga de su casa a las 00:30 de la noche para dirigirse a un castillo. Se puede? Gracias de antemano
Claro.
Ok, se puede, pero alguien podria explicarme como lo puedo hacer?
Hay distintas formas de hacerlo, pero básicamente todas consisten en meter un heartbeat que chequee la hora y cuando sea esa hora concreta darle la orden al pnj para que se mueva por esos waypoints.
Gracias, mi problema es que ando un poco pez en el tema de los script's, pero gracias de todos modos, he hestado mirando el heartbeat que lleva el modulo de nordok, y ellos tambien tienen introducido un checktime, pero no se si ese el que necesito, bueno pero gracias de todos modos.
Si lo consigo te lo hare saber.
Perdón de nuevo, me gustaria saber si voy bien encaminado:
string sPrev = "PrevTime";
void main()
{
object oPC = GetFirstPC();
int nHour = GetTimeHour();
int nPrev = GetLocalInt( oPC, "PrevTime");
if( nHour != nPrev )
{
SetLocalInt( oPC, sPrev, nHour);
//int nTimevar = GetLocalInt( oPC, "PrevTime"); //debug line
//string sTimevar = IntToString(nTimevar); //debug line
//string sPrevhour = IntToString(nPrev); //debug line
string sHour = IntToString(nHour);
string sTime = sHour + "00 hours";
SendMessageToPC( oPC, sTime );
//SendMessageToPC( oPC, sPrevhour ); //debug line
//SendMessageToPC( oPC, sTimevar ); //debug line
}
}
Basta con que le pongas al pnj un heartbeat del tipo:
if (GetTimeHour() >= 24 && GetTimeMinute() >= 30)
{
ActionMoveTo..... y aquí le pones el waypoint a donde quieres que vayas
}
Luego métele alguna variable para que no lo repita constantemente y esas cosas.
Gracias, muchas gracias, ya me ha salido, no a la primera pero por fin si.
Una pregunta más, no me quiero hacer pesado pero es que me trae loco.
A ver quiero crear un desencadenante de trampa y que este en vez de activar una trampa de las predefinidas, active un conjuro contra quien entra en la trampa.
He probado de hacer un script, pero soy un negado... quizas puedas hecharme una mano. Te lo agradeceria.
Saludos
Puede ser aglo asi?:
void main()
{
object oTarget = GetObjectByTag("tag_desencadenante");
ActionCastSpellAtObject(SPELL_MAGIC_MISSILE,oTarget,1);
}
Estas un poquillo flojo con el script. Si te fijas, a oTarget asignas la propia trampa, es la que tiene el tag "tag_desencadenante" ¿no?.
Veamos, en vez de una trampa, crea un triger, y coloca en el slot onenter, el mismo script pero con esta diferencia:
object oTarget =GetEnteringObject(); //Que devuelve la criatura u objeto entrante (dentro del triger). Lo que no se es si un triger es capaz de lanzar hechizos, en caso contrario crea un objeto invisible cerca con un tag, ej: "tag_desencadenante", le quitas la opcion estatico, por si acaso, y en el script sustituyes por:
AssignCommand(GetObjectByTag("tag_desencadenante"), ActionCastSpellAtObject(SPELL_MAGIC_MISSILE,oTarget,1)); // que asigna la accion de lanzar el hechizo al objeto invisible.
Te aconsejo que bajes el lexicon, puede encontrar cosas muy interesantes en el.
Un saludo.
Te estoy enormemente agradecido, lo del lexico, bueno pues si ya lo habia hecho pero aun asi...., pues eso que estoy mu flojo en script pero me mola y quiero aprender, espero no ser un pesao.
Agur y gracias de nuevo.