63 lines
2.4 KiB
Plaintext
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
|
|
/////////////////////////////////////
|