De DigiWiki.
integer check_for_prim(string name)
{
integer i = llGetNumberOfPrims();
for (; i >= 0; --i)
{
if (llGetLinkName(i) == name)
{
return TRUE;
}
}
return FALSE;
}
default
{
state_entry()
{
llListen(10, "", llGetOwner(), "");
}
listen(integer chan, string obj, key id, string msg)
{
if (check_for_prim(msg))
{
llOwnerSay("found a linked prim named \"" + msg + "\"");
}
else
{
llOwnerSay("this object does not have any linked prims named \"" + msg + "\"");
}
}
}
integer getLinkWithName(string name) {
integer i = llGetLinkNumber() != 0; // Start at zero (single prim) or 1 (two or more prims)
integer x = llGetNumberOfPrims() + i; // [0, 1) or [1, llGetNumberOfPrims()]
for (; i < x; ++i)
if (llGetLinkName(i) == name)
return i; // Found it! Exit loop early with result
return -1; // No prim with that name, return -1.
}