Added PnP Dire Rat.
Added PnP Dire Rat.
This commit is contained in:
94
nwn_dark_sun/zep_openclose.nss
Normal file
94
nwn_dark_sun/zep_openclose.nss
Normal file
@@ -0,0 +1,94 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: ZEP_OPENCLOSE.nss
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:: Modified by Dan Heidel 1/14/04 for CEP
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
This function goes in the OnUse function of an
|
||||
openable placeable or door. Do not use for
|
||||
placeables which have an inventory, only for those
|
||||
where clicking should trigger the open/close anim
|
||||
without opening up an inventory. Eg: sarcophagii,
|
||||
grandfather clock and iron maiden. If you wish for
|
||||
these items to have an inventory make a copy of the
|
||||
placeable with this function removed and the 'has
|
||||
inventory' box checked.
|
||||
|
||||
No local variables are needed if the placeable is
|
||||
not a door.
|
||||
|
||||
If the placeable is a door, CEP_L_GATEBLOCK is a
|
||||
local string containing the blueprint resref of the
|
||||
gateblock corresponding to the particular door.
|
||||
|
||||
A gateblock is an invisible placeable with a walkmesh
|
||||
of the size, shape and orientation of the door. In
|
||||
the case of CEP Door 01-11, there is a corresponding
|
||||
Gateblock 01-11. Therefore, for Door01, the CEP_L_GATEBLOCK
|
||||
should be gateblock001 - the resref for Gateblock 01.
|
||||
|
||||
When the door is closed, a gateblock placeable is created
|
||||
so that the door is impassable. When the door is opened,
|
||||
the gateblock is destroyed so the gate is passable.
|
||||
|
||||
GateBlock is a local object that stores the gateblock
|
||||
being used by a particular door. No user intervention is
|
||||
needed other than to not create a local variable with the same
|
||||
name.
|
||||
|
||||
In addition, zep_doorspawn must be placed in the heartbeat
|
||||
function of the door and zep_doorkill must be placed in the
|
||||
OnDestruct function of the door.
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Brent
|
||||
//:: Created On: January 2002
|
||||
//:: Modified by: Dan Heidel 1-21-04 for CEP
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "zep_inc_scrptdlg"
|
||||
|
||||
void main()
|
||||
{
|
||||
string sGateBlock = GetLocalString(OBJECT_SELF, "CEP_L_GATEBLOCK");
|
||||
location lSelfLoc = GetLocation(OBJECT_SELF);
|
||||
int nIsOpen = GetIsOpen(OBJECT_SELF);
|
||||
|
||||
if (GetLocked(OBJECT_SELF) == 1){
|
||||
//FloatingTextStringOnCreature("Locked", OBJECT_SELF);
|
||||
string sLockedMSG = GetStringByStrRef(nZEPDoorLocked,GENDER_MALE);
|
||||
SpeakString(sLockedMSG);
|
||||
return;
|
||||
}
|
||||
//if the object is locked, it cannot be opened or closed
|
||||
|
||||
if (sGateBlock == ""){ // if the item is not a door
|
||||
if (nIsOpen == 0)
|
||||
{
|
||||
PlayAnimation(ANIMATION_PLACEABLE_OPEN);
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayAnimation(ANIMATION_PLACEABLE_CLOSE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (nIsOpen == 0) //if the item is a door
|
||||
{
|
||||
object oSelf = OBJECT_SELF;
|
||||
PlayAnimation(ANIMATION_PLACEABLE_OPEN);
|
||||
if (GetLocalObject(oSelf, "GateBlock")!= OBJECT_INVALID)
|
||||
{
|
||||
DestroyObject(GetLocalObject(oSelf, "GateBlock"));
|
||||
SetLocalObject(oSelf, "GateBlock", OBJECT_INVALID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
object oSelf = OBJECT_SELF;
|
||||
PlayAnimation(ANIMATION_PLACEABLE_CLOSE);
|
||||
SetLocalObject(oSelf, "GateBlock", CreateObject(OBJECT_TYPE_PLACEABLE, sGateBlock, lSelfLoc));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user