Alguien sabe si en el Vault o en algun otro sitio hay “algo” para hacer que las criaturas voladoras, vuelen? Es decir, que ignoren el terreno y puedan moverse por donde quieran. Espero haberme explicado Asias y Salu2
ey sir, eshale un vistazo al script “flying Dragon” del vault, con una mezcla entre eso y un wp puedes hacer cosas mu bonitas (no es un recurso pero queda tope bonito )
creo que lo que necesita es que vuelen por el aire se eleven del suelo unos niveles, no que hagan vuelos rasantes, si no recuerdo mal havia uno que escupia fuego, se posaba y alzaba el vuelo, o lo estaba haciendo pero creo que era de vuelo rasante
A ver, lo que necesito es que un pájaro ignore el terreno. Es decir, que si hay un pajarraco hostil a un nivel por encima tuyo. Si te quiere atacar tiene que buscar una rampa para poder bajar, cuando siendo un pajaro podría volar directamente a traves del precipicio O que pueda volar por encima del agua. En fin, no se, que sea un pájaro de verdad.
He creado un script que da el pego, en realidad hace saltar a la criatura una determinada distancia en la direccion que avanzaba. Lo he probado con un gerifalte, para criaturas mayores habria que aumentar el valor de avanze. Este script sirve para que el gerifalte sobrevuele los terrenos elevados del terreno rural:
(Colocar en el slot On User Defined y descomentar el evento Heratbeat del script On Spawn de la criatura)
[code:1:e35794d04e]
//::////////////////////////////////////////////// />//:: Default: On User Defined
//::////////////////////////////////////////////// />/*
Determines the course of action to be taken
on a user defined event.
Modificado para criaturas voladoras. /
//::////////////////////////////////////////////// />//:: Created By: Kerbel Drakat
//:: Created On: April 16, 2004
//::////////////////////////////////////////////// />void Avanza(float fDist)
{
vector vPropio = GetPosition(OBJECT_SELF);
float fAng = GetFacing(OBJECT_SELF);
float fx = fDistcos(fAng);
float fy = fDist*sin(fAng);
vector vFinal = Vector(vPropio.x + fx, vPropio.y + fy, vPropio.z);
location lFinal = Location(GetArea(OBJECT_SELF), vFinal, fAng);
JumpToLocation(lFinal);
}
#include "NW_I0_GENERIC"
void main()
{
int nEvento = GetUserDefinedEventNumber();
switch ( nEvento )
{
case 1001: //On Heartbeat event
{
if (GetIsInCombat())
{
ClearAllActions();
ActionAttack(GetAttackTarget());
vector vAtacante = GetPosition(GetAttackTarget());
vector vPropio = GetPosition(OBJECT_SELF);
if (vAtacante.z != vPropio.z)
Avanza(2.0);
}
else
{
SetFacing(IntToFloat(Random(360)));
float fTiempo;
while(fTiempo<=6.0)
{
DelayCommand(fTiempo, ActionDoCommand(Avanza(2.0)));
fTiempo+=1.0;
}
}
break;
} // Fin Case 1001
}
}
[/code:1:e35794d04e]
Otra opcción sería modificar el script de percepccion para que la criatura saltara hasta el enemigo con el effecto AppearDissapear() algo como:
[code:1:e35794d04e]
effect eVuelo = EffectDisappearAppear(GetLocation(GetLastPerceived()));
if GetIsEnemy(GetLastPerceived())
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVuelo, OBJECT_SELF, GetDistanceToObject(GetLastPerceived()));
[/code:1:e35794d04e]
ey sir, eshale un vistazo al script “flying Dragon” del vault, con una mezcla entre eso y un wp puedes hacer cosas mu bonitas (no es un recurso pero queda tope bonito
)
creo que lo que necesita es que vuelen por el aire se eleven del suelo unos niveles, no que hagan vuelos rasantes, si no recuerdo mal havia uno que escupia fuego, se posaba y alzaba el vuelo, o lo estaba haciendo
pero creo que era de vuelo rasante
A ver, lo que necesito es que un pájaro ignore el terreno. Es decir, que si hay un pajarraco hostil a un nivel por encima tuyo. Si te quiere atacar tiene que buscar una rampa para poder bajar, cuando siendo un pajaro podría volar directamente a traves del precipicio
O que pueda volar por encima del agua. En fin, no se, que sea un pájaro de verdad.
Thanks Again and Salu2
La verdad es que es ilógico que un pájaro, aunque haga vuelo rasante, no pueda superar un charco grande, igual que un precipicio.
has probado con el hak ese del vault, el de saltar creo, pero no recuerdo si es para pc o para npc
He creado un script que da el pego, en realidad hace saltar a la criatura una determinada distancia en la direccion que avanzaba. Lo he probado con un gerifalte, para criaturas mayores habria que aumentar el valor de avanze. Este script sirve para que el gerifalte sobrevuele los terrenos elevados del terreno rural:
(Colocar en el slot On User Defined y descomentar el evento Heratbeat del script On Spawn de la criatura)
[code:1:e35794d04e]
//::////////////////////////////////////////////// />//:: Default: On User Defined
//::////////////////////////////////////////////// />/*
Determines the course of action to be taken
on a user defined event.
Modificado para criaturas voladoras.
/
//::////////////////////////////////////////////// />//:: Created By: Kerbel Drakat
//:: Created On: April 16, 2004
//::////////////////////////////////////////////// />void Avanza(float fDist)
{
vector vPropio = GetPosition(OBJECT_SELF);
float fAng = GetFacing(OBJECT_SELF);
float fx = fDistcos(fAng);
float fy = fDist*sin(fAng);
vector vFinal = Vector(vPropio.x + fx, vPropio.y + fy, vPropio.z);
location lFinal = Location(GetArea(OBJECT_SELF), vFinal, fAng);
JumpToLocation(lFinal);
}
#include "NW_I0_GENERIC"
void main()
{
int nEvento = GetUserDefinedEventNumber();
switch ( nEvento )
{
case 1001: //On Heartbeat event
{
if (GetIsInCombat())
{
ClearAllActions();
ActionAttack(GetAttackTarget());
vector vAtacante = GetPosition(GetAttackTarget());
vector vPropio = GetPosition(OBJECT_SELF);
if (vAtacante.z != vPropio.z)
Avanza(2.0);
}
else
{
SetFacing(IntToFloat(Random(360)));
float fTiempo;
while(fTiempo<=6.0)
{
DelayCommand(fTiempo, ActionDoCommand(Avanza(2.0)));
fTiempo+=1.0;
}
}
break;
} // Fin Case 1001
}
}
[/code:1:e35794d04e]
Otra opcción sería modificar el script de percepccion para que la criatura saltara hasta el enemigo con el effecto AppearDissapear() algo como:
[code:1:e35794d04e]
effect eVuelo = EffectDisappearAppear(GetLocation(GetLastPerceived()));
if GetIsEnemy(GetLastPerceived())
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVuelo, OBJECT_SELF, GetDistanceToObject(GetLastPerceived()));
[/code:1:e35794d04e]
Wow, Kerbel, q currada
Muchas Gracias
Voy a ver si hago unas pruebas con esto a ver q tal. En cualquier caso, Muchas Gracias 
Salu2
