The wiki page for llIsFriend says that the function fails if
"If neither the owner, nor the target agent are in the region."
I am not an English native speaker, but I asked two native speakers and both agreed with my interpretation that the functions fails if
both
, owner
and
target, are not present. However it should not fail if
either
the owner
or
the target are present.
Test, however, show that
solely the owner
has
to be present for the function to work.
Test script
key friend = "99d8181a-4395-4c7f-9784-e67d774834b4";
integer i = 0;
default
{
state_entry()
{
while (i < 50) {
llOwnerSay((string) llIsFriend(friend));
llSleep(1);
i++;
}
}
}
Observed behavior
Given are region A and region B. The object with the test script is on region A. During the duration of the test, owner and friend move to an adjacent region and back several times.
owner on A, friend on A: pass
owner on A, friend on B: pass
owner on B, friend on A:
fail
owner on B, friend on B: fail
Expected behavior
owner on A, friend on A: pass
owner on A, friend on B: pass
owner on B, friend on A:
pass
owner on B, friend on B: fail
I sincerely hope this is an actual bug, and not the intended behavior paired with an ambiguous description on the wiki. The functionality would be severely limited if this would be the intended behavior.