DMH-Online

Dungeon Masters Helper · Est. 2005

Placeables Scripts

NWN Script: useable_trapdoor_004.htm

Author Sticky: Post Working Scripts Here
Haelix Posted: Monday, 22 July 12:38PM
Name: Locked Trapdoor

By: Bioware Modified By: Haelix 7/20/02

What It Does: Simply a modified version of the animated teleporting trapdoor orig. by bio. Requires a specific key to open, and not having the key will get you a message stating that the trapdoor is locked and requires a key. Very simple script to use.

Place in the onused slot of a TrapDoor(marked usable and plot)
NWScript:
//::////////////////////////////////////////////////////
//::               Locked Trap Door
//::  A modified version of the orig. Bioware TD script.
//::  This one requires a key to open the trapdoor, it
//::  also states that it requires a key to open if
//::  someone tries to open it without the key.
//::  By: Bioware, Modified By: Haelix 7/20/02
//::////////////////////////////////////////////////////
void main()
{
    //Get PC
    object oPC = GetLastUsedBy();
    //Get Trapdoor tag and open/closed state
    object oDoor = GetObjectByTag("trapdoor_tag_here");
    int nDoorState = GetLocalInt(oDoor, "Opened");
    //get the target waypoint destination
    object oDrop = GetWaypointByTag("wp_destination_tag_here");
      if (nDoorState == FALSE) //the door is closed, so try to open it
        {
        if (GetIsObjectValid(GetItemPossessedBy(oPC, "key_tag_here")))  //if the pc has the key open the door
          {
           //have the PC kneel down and act as if opening the trapdoor
           AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 0.7f));
           //swing the door to open after a slight delay to allow for the PC's animation
           DelayCommand(1.0f, ActionPlayAnimation(ANIMATION_PLACEABLE_OPEN));
           //change status of door to open
           SetLocalInt(oDoor, "Opened", 1);
          }
        else // door is closed and pc lacks the key
          {
           AssignCommand(oDoor, SpeakString("This trapdoor is locked and requires a key."));
          }
        }
      else  //the door is open, so jump the player
      {
      //jump the PC to the destination
      AssignCommand (oPC,JumpToObject(oDrop));
      //closing the door would be optional, you could
      //just leave it open for the next player
      //close the trapdoor
      PlayAnimation (ANIMATION_PLACEABLE_CLOSE);
      //change status of door to closed
      SetLocalInt(oDoor, "Opened", 0);
      }
}



_________________
The Preceding Has Been A Paid Advertisement For The Get A Life Haelix Foundation

⌂ All Scripts ← PreviousNext → 👁 Category List

All Placeables Scripts

📄 cast_haste 📄 check_fire 📄 chest_puzzle 📄 close_door 📄 close_door_002 📄 close_door_003 📄 close_door_004 📄 create_item_with_delay 📄 darklamp 📄 darklamp_002 📄 day_night_lights 📄 day_night_lights_002 📄 destroy_spawned_items 📄 destroy_spawned_items_002 📄 door_guard 📄 door_lock_item 📄 dragging_placeables 📄 encounter_on_open 📄 encounter_on_open_002 📄 fair_loot 📄 fire_burns 📄 guarded_chest 📄 kill_attacker 📄 kill_nearby 📄 lights_on_off 📄 linked_doors 📄 moveable_placeables 📄 multi_door 📄 open_doors 📄 poly_attacker 📄 polymorph_pc 📄 polymorph_pc_002 📄 random_teleport 📄 refil_chest 📄 refil_chest_002 📄 refil_chest_003 📄 refil_chest_004 📄 refil_chest_005 📄 refil_chest_006 📄 refil_chest_007 📄 remove_with_item 📄 respawner 📄 smart_doors 📄 spit_treasure 📄 talkable_placeables 📄 talking_door 📄 talking_sign 📄 talking_sign_002 📄 talking_sign_003 📄 talking_sign_004 📄 teleporting_chairs 📄 useable_bedroll 📄 useable_birdcage 📄 useable_cannon 📄 useable_catapult 📄 useable_chair 📄 useable_chair_002 📄 useable_chair_003 📄 useable_chair_004 📄 useable_couch 📄 useable_divining_pool 📄 useable_gong 📄 useable_kegs 📄 useable_kegs_002 📄 useable_placeables_002 📄 useable_sign 📄 useable_sign_002 📄 useable_sundial 📄 useable_sundial_002 📄 useable_sundial_003 📄 useable_sundial_004 📄 useable_sundial_005 📄 useable_sundial_006 📄 useable_training_dummy 📄 useable_training_dummy_002 📄 useable_training_dummy_003 📄 useable_training_dummy_004 📄 useable_trapdoor 📄 useable_trapdoor_002 📄 useable_trapdoor_003 📄 useable_trapdoor_004 📄 weapon_spawn_per_class 📄 worth