// chair sitting script by Jhenne void main() { // get the User object oPC=GetLastSpeaker(); // get the closest chair, couch and/or throne object oChair = GetNearestObjectByTag("Chair", OBJECT_SELF); object oCouch = GetNearestObjectByTag("Couch", OBJECT_SELF); object oThroneGood = GetNearestObjectByTag("ThroneGood", OBJECT_SELF); object oStool=GetNearestObjectByTag("Stool", OBJECT_SELF); // get the distance between the user and each object (-1.0 is the result if no // object is found float fDistanceChair = GetDistanceToObject(oChair); float fDistanceGood = GetDistanceToObject(oThroneGood); float fDistanceCouch = GetDistanceToObject(oCouch); float fDistanceStool = GetDistanceToObject(oStool); object oSit; // if any of the objects are invalid (not there), change the return value // to a high number so the distance math can work if (fDistanceChair == -1.0) { fDistanceChair =1000.0; } if (fDistanceGood == -1.0) { fDistanceGood = 1000.0; } if (fDistanceCouch == -1.0) { fDistanceCouch = 1000.0; } if (fDistanceStool == -1.0) { fDistanceStool = 1000.0; } // find out which object is closest to the PC if (fDistanceChair<fDistanceGood && fDistanceChair<fDistanceCouch && fDistanceChair<fDistanceStool) { oSit=oChair; } if (fDistanceGood<fDistanceChair && fDistanceGood<fDistanceCouch && fDistanceGood<fDistanceStool) { oSit=oThroneGood; } if (fDistanceCouch<fDistanceChair && fDistanceCouch<fDistanceGood && fDistanceCouch<fDistanceStool) { oSit=oCouch; } if (fDistanceStool<fDistanceChair && fDistanceStool<fDistanceGood && fDistanceStool<fDistanceCouch) { oSit=oStool; } // if no one is sitting in the object the PC is closest to, have him sit in it if (GetIsObjectValid(GetSittingCreature(oSit)) == FALSE) { ActionSit(oSit); } }