De DigiWiki.
// Parcoure toutes les faces de la prim courante pour supprimer les medias qui sont en cours
// Puis, le script se supprime de lui même
publish_returned_status_flag(integer inputLink, integer inputFace, integer inputStatus)
{
/* if (inputInteger == 0) */ string outputStatus = "STATUS_OK";
if (inputStatus == 1000) outputStatus = "STATUS_MALFORMED_PARAMS";
else if (inputStatus == 1001) outputStatus = "STATUS_TYPE_MISMATCH";
else if (inputStatus == 1002) outputStatus = "STATUS_BOUNDS_ERROR";
else if (inputStatus == 1003) outputStatus = "STATUS_NOT_FOUND";
else if (inputStatus == 1004) outputStatus = "STATUS_NOT_SUPPORTED";
else if (inputStatus == 1999) outputStatus = "STATUS_INTERNAL_ERROR";
else if (inputStatus == 2001) outputStatus = "STATUS_WHITELIST_FAILED";
// PUBLIC_CHANNEL has the integer value 0
llSay(PUBLIC_CHANNEL, "llClearLinkMedia(link " + (string)inputLink
+ ", face " + (string)inputFace + ") = " + outputStatus + ";");
}
default
{
state_entry()
{
integer link = llGetLinkNumber();
integer numOfSides = llGetLinkNumberOfSides(link);
integer face;
do
{
integer clearMediaSucceeded = llClearPrimMedia(face);
publish_returned_status_flag(link, face, clearMediaSucceeded);
++face;
}
while (face < numOfSides);
string thisScript = llGetScriptName();
llRemoveInventory(thisScript);
}
}