Gerjo

22/11/2005 09:08:07

Pues eso, he creado un muro de energia en la entrada de una cueva.
Teoricamente, si no entro con un determinado objeto, no me deja pasar y me repele.
Bueno pues eso funciona bien, el problema es que cuando estoy dentro y quiero salir, no necesito ese objeto, salgo como si no existiera ese muro.

Tambien puede ser que haya cambiado algo que no debia (fijo que es eso)

El scrip que uso es el siguiente:


void main()
{
object pc = GetEnteringObject();
if (GetIsPC(pc)) {
string tag = "PASS_" + GetTag(OBJECT_SELF);
if (GetIsObjectValid(GetItemPossessedBy(pc, tag))) {
effect vfx = EffectVisualEffect(VFX_IMP_GLOBE_USE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, vfx, pc, 1.0f);
}
else {
float facing = GetFacing(pc);
float reverseFacing = IntToFloat(FloatToInt(facing + 180.0f) % 360);
location loc = GetLocation(pc);
vector v = GetPositionFromLocation(loc);
v.x += 1.0f * cos(reverseFacing);
v.y += 1.0f * sin(reverseFacing);
loc = Location(GetArea(pc), v, facing);
AssignCommand(pc, ClearAllActions(TRUE));
AssignCommand(pc, ActionJumpToLocation(loc));
effect vfx = EffectVisualEffect(VFX_IMP_BREACH);
ApplyEffectToObject(DURATION_TYPE_INSTANT, vfx, pc, 1.0f);
}
}
}

Lo que pretendo es que si no llevas dicho objeto ni entres ni salgas.
Una ayudita porfavor :P (ya se que soy un poco muñon pero estoy aprendiendo)
Un saludo

Kallagan

23/11/2005 23:57:29

pegale los scripts de una puerta con llave y al objeto los de una llave a ver si cuela xD

Yandrel

24/11/2005 09:20:41

Donde esta puesto ese script?

Gerjo

24/11/2005 14:38:50

El scrip lo coloque en el onenter de un desencadenante creado para generar el muro de energia.

Un saludo

Yandrel

24/11/2005 17:14:30

mmm no tiene sentido... cuando llegue a casa intentare reproducir el error a ver si veo que es lo que falla

Lili

25/11/2005 11:39:43

Ten en cuenta que ese script solo se activará si algún objeto "atraviesa" cualquiera de los márgenes del desencadenante del suelo, y tan solo si lo hace "hacia dentro". Prueba a poner el muro en un pasillo con un desencadenante rectangular y estrecho, no en una puerta, a ver que tal. Si el muro está pegado o frente a una puerta (la de la cueva) por la parte de fuera, al salir aparecerás en un punto que quizá no "toque" el desencadanante o, lo que es mas probable en este caso, aparecerás en medio de él y, al no haber una location válida a la que mandarte fuera del desencadenante (detrás no hay sitio, está la puerta), te deja donde estás y el script falla.
Y además, una cosa; este script no anula la capacidad de movimiento del Pj el tiempo suficiente para que un comando de salto (JumpToLocation) actue de manera eficaz, pudiendo producirse exploit (atravesar el muro tengas el objeto o no) por "clickeo" masivo de un punto en el mapa más allá del muro.