DMH-Online

Dungeon Masters Helper · Est. 2005

Placeables Scripts

NWN Script: useable_trapdoor_003.htm

Author Sticky: Post Working Scripts Here
Rich Dersheimer Posted: Monday, 08 July 03:58PM
Another trap door script, this one inspired by Kerico's fine work. Place a trapdoor somewhere, and assign this script to its OnUsed point. Then put a waypoint with the appropriate tag somewhere.

NWScript:
//::///////////////////////////////////////////////
//:: Trapdoor that functions as transition
//:: trapdoor_use
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*trapdoor_use script by Rich Dersheimer.
  This is a modification of the script by
  Kerico 7/5/02. Use it in the trapdoor's OnUsed
  script. It opens the trapdoor, then if the
  trapdoor is clicked again while it is open,
  it jumps the player to the destination waypoint.
*/
void main()
{
    //Get PC
    object oPC = GetLastUsedBy();
    //Get Trapdoor tag and open/closed state
    object oDoor = GetObjectByTag("TrapdoorToWaypoint");
    int nDoorState = GetLocalInt(oDoor, "Opened");
    //get the target waypoint destination
    object oDrop = GetWaypointByTag("WP_DropFromTrapdoor");
    if (nDoorState == FALSE) //the door is closed, so open it
        {
        //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  //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);
        }
}


 

⌂ 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