I realised that there was never a formal announcement here to read up: The Catara NWN server is offline for quite some time now, due to time constraints. I might revive it someday, but it is pretty unlikely. If anyone wants to use our custom classes or tools, ping me on twitter (@jollyorc) and we can see what we can do for you! In the meantime, I do recommend The World of Avlis: https://avlis.org/
Can't open cage door
  • The slave cage at area tag: xp55yp45zp0
    (Southern Talore - Central Crag Hills)

    ..it has a usable side, showing an unlocked lock icon. Attempting to lock/use it gave no results tho.
  • its not a door...but it can be destroyed
  • I did destroy it! Rained fire on it from above!

    I do have a script that makes just such an object act as a door on unlock.. want to have a look at it?
  • I've toned down the hardness for the cage a bit, to be more in line with the low-power theme of Catara. That script sure sounds interesting though.
  • These scripts used any lockable object (bookcase & the cage-bar placeable were the two i used it on) & made the item act as a doorway. Two waypoints where used, one the same as the object in the "closed position", & the second in the "open position".

    I've found the beta versions I tested: I was working on cleaning them up a bit when the project they were for got eaten by 1.69 problems & never re-surfaced. They could do with a tweak for a sound FX & perhaps a more suitable VFX.

    I have the re-worked versions, which were about half the size of these, but had some bugs in need of squashing!

    (actually.. i think these both worked.. will check! posting one older & one newer version here)

    *********************************obj_open****************************************** (Old version)
    /* Script generated by
    Lilac Soul's NWN Script Generator, v. 2.3

    For download info, please visit:
    http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */

    //Put this script OnUnlock
    void main()

    object oPC = GetLastUnlocked();

    if (!GetIsPC(oPC)) return;

    object oTarget;
    oTarget = OBJECT_SELF;

    string sObjrr=GetResRef(OBJECT_SELF);
    //item resref for later respawning

    //Visual effects can't be applied to waypoints, so if it is a WP
    //the VFX will be applied to the WP's location instead

    int nInt;
    nInt = GetObjectType(oTarget);

    if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), oTarget);
    else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), GetLocation(oTarget));

    DestroyObject(oTarget, 0.0);

    object oSpawn;

    location lTarget;

    oTarget = GetNearestObjectByTag("obj_open");

    lTarget = GetLocation(oTarget);

    oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, sObjrr, lTarget);

    oTarget = oSpawn;

    SetLocked(oSpawn, FALSE);

    //Visual effects can't be applied to waypoints, so if it is a WP
    //the VFX will be applied to the WP's location instead

    nInt = GetObjectType(oTarget);

    if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), oTarget));
    else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), GetLocation(oTarget)));


    *********************************obj_shut******************************************(New version)

    /* Script by badja with acknowledgement to help from
    Lilac Soul's NWN Script Generator, v. 2.3 */

    //Put this script in Onlock

    void main()

    object oTarget = OBJECT_SELF;

    string sObjrr=GetResRef(OBJECT_SELF);
    // item resref for later respawning

    ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), GetLocation(oTarget));
    // dust VFX from object moving

    DestroyObject(oTarget, 0.5);

    location lTarget = GetLocation(GetNearestObjectByTag("obj_shut"));
    // gets the position of the nearest waypoint tagged "obj_shut"

    object oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, sObjrr, lTarget);
    // Spawns the new object in ~shut~ position

    DelayCommand(1.0f, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), lTarget)));
    // dust VFX from object moving


Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!