HoS_PRC8/_mod/_module/nss/wazoo_use_place.nss
Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

63 lines
2.4 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// wazoo_use_place - Spells Out The Wazoo - Multi-Purpose Placeables OnUsed
// By Deva Bryson Winblood. 9/18/2004
////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////
// PROTOTYPES
/////////////////////////////////////
/////////////////////////////////////////////////////////////////////////// MAIN
void main()
{
object oPC=GetLastUsedBy();
string sTag=GetTag(OBJECT_SELF);
object oDest;
object oOb;
int nN;
float fF;
location lLoc;
vector vV;
if (GetIsObjectValid(oPC))
{ // valid
if (sTag=="wazoo_po_ropetd")
{ // used the Rope Trick Placeable while it was down
oDest=GetLocalObject(OBJECT_SELF,"oLink");
AssignCommand(oPC,SpeakString("*climbs rope*"));
AssignCommand(oPC,JumpToObject(oDest));
} // used the Rope Trick Placeable while it was down
else if (sTag=="wazoo_po_ropetu")
{ // used the Rope Trick Placeable while it was up
oDest=GetLocalObject(OBJECT_SELF,"oLink");
oOb=GetLocalObject(oDest,"oArea");
vV.x=GetLocalFloat(oDest,"fX");
vV.y=GetLocalFloat(oDest,"fY");
vV.z=GetLocalFloat(oDest,"fZ");
lLoc=Location(oOb,vV,GetLocalFloat(oDest,"fOrientation"));
AssignCommand(oPC,SpeakString("*lowers rope*"));
oOb=CreateObject(OBJECT_TYPE_PLACEABLE,"wazoo_po_ropetd",lLoc);
if (GetIsObjectValid(oOb))
{ // rope made
SetLocalObject(oOb,"oLink",oDest);
SetLocalObject(oDest,"oRope",oOb);
} // rope made
else
{ // failed
AssignCommand(oPC,SpeakString("Failed to create rope at Area '"+GetName(GetLocalObject(oDest,"oArea"))+"' at X:"+FloatToString(vV.x)+",Y:"+FloatToString(vV.y)+"Z:"+FloatToString(vV.z)+"!"));
} // failed
DestroyObject(OBJECT_SELF);
} // used the Rope Trick Placeable while it was up
else if (GetName(OBJECT_SELF)=="Rope Trick Exit")
{ // exit rope trick
AssignCommand(oPC,ClearAllActions());
SetLocalObject(oPC,"oTarget",OBJECT_SELF);
AssignCommand(oPC,ActionStartConversation(oPC,"wazoo_cv_ropetri",TRUE,FALSE));
} // exit rope trick
} // valid
}
/////////////////////////////////////////////////////////////////////////// MAIN
/////////////////////////////////////
// FUNCTIONS
/////////////////////////////////////