ApplyEffectToObject

INTENTION: To keep several placeables invisible until a certain quest is activated.

PLANNED METHOD:

  • Place placeables, activate “usable” (necessary to apply effect).
  • When entering area, check for integer sq_varden.
  • If 0, quest inactive. Apply invisibility.
  • (I plan to remove effects via conversation-script when the PC accepts the quest.)

Here is the part of the Area’s OnEnter-script:

if (GetLocalInt(oPC, "sq_varden")!= 0)
   return;
   oTarget = GetObjectByTag("pt_track1");
   effect eEffect;
      eEffect = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oTarget);
      SendMessageToPC(oPC, "Invisibility fired"); //DEBUG

TWO PROBLEMS

  • The big fat mushroom (testobject) is most certainly not invisible.
  • That part fires only when the player first enters the area, after that no longer.

Is this single player? If so why not just create the placeables in the conversation when the PC accepts the quest? That seems a lot simpler and less error prone.

For the second part maybe you have something else in your on enter script that is making it run once. Your PC of course will have to leave the area and re-enter to get it to fire again. But this would not be needed if creating the objects anyway.

Yes. That is the current (working) state. Yet, via spawning I can’t influence the direction of the footprints and it looks odd to me.

For the second part maybe you have something else in your on enter script that is making it run once.

That was the case, though I don’t understand why. But I put this snippet a tad higher and now it runs every time. Mmmmh.

The same conversation script which creates the objects could rotate them as well I think. Or you could make sure the location you use when you create the object has the right facing.

So something in the part of the script you moved these lines above was exiting if already done once I’d guess.

1 Like

I. Rotate: The. Spawnpoints.

I am so so so so dumb dumb dumb! Wonder I am not drooling on my keyboard.

If the objects are to be made visible in sight of the PC, spawning causes them to fade in, which may be undesirable.

A nice variation in EE is SetObjectVisualTransform. Place the object underground, where it can’t be seen, then translate it on the z-axis, so that it appears instantly (or rises out if the ground, if preferred). If the placeable has a walkmesh, it remains in the spawn position, but that can be worked around.

Invisibility for placeables can be problematic. There’s a known issue with EffectCutsceneInvisibility, for example, which bakes the effect unless you remove it when the PC leaves the area. Visual Transforms seem to be much cleaner.

Just add/create them instead after quest is completed…

It’s a few tracks not more and it works fine with rotated waypoints (I am dumb). Using SetObjectVisualTransform would be a bit like the overkill I started with. :slight_smile: But I checked it, and it’s an interesting function that may come in handy later on. Thanks for that.