Battledale_PRC8/_module/nss/ew_sitchair.nss
Jaysyn904 7b9e44ebbb Initial upload
Initial upload.  PRC8 has been added.  Module compiles, PRC's default AI & treasure scripts have been integrated.  Started work on top hak for SLA / Ability / Scripting modifications.
2024-03-11 23:44:08 -04:00

73 lines
1.7 KiB
Plaintext

// 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);
}
}