Jump to content

Issue with llOverMyLand when I use it on a group deeded Land


Emma SecretSpy
 Share

You are about to reply to a thread that has been inactive for 3619 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello all,


I'm trying to use this example  script from the Wiki, with llOverMyLand.

// This script will email you a daily count of new visitors and repeat visitors.
// Visitors are counted once per email update cycle.
 
// -----------------------------------
// Configuration: customize this script here.
// Change this to your email address.
string MyEmail = "you@example.com";
// This is a number 0 to 96 meters, anything farther away than that will not be noticed.  
float SensorRange = 96.0;
// How often to send email updates.
integer UpdateFrequency = 86400; // Number of seconds in 1 day.
// -----------------------------------
 
// Internal Variables -- Do not change.
list todayVisitors = [];
list allVisitors = [];
list repeatVisitors = [];
list firstTimers = [];
integer newVisitors = 0;
integer returnVisitors = 0;
string ParcelName;
 
default
{
    state_entry()
    {
        list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);
        ParcelName = llList2String(parcelDetails, 0);
        llSensorRepeat( "", "", AGENT, SensorRange, PI, 20);
        llSetTimerEvent(UpdateFrequency); // Email me a regular report.
        llOwnerSay("Visitor Log Started.");
    }
 
    sensor(integer avsFound)
    {
        key  avKey;
        integer avNum;
        for(avNum=0; avNum<avsFound; avNum++)
        {
            avKey = llDetectedKey(avNum);
            if (llOverMyLand(avKey))
            {
                string whom = llDetectedName(avNum);
                if (!~llListFindList(todayVisitors, [whom]))
                {
                    // This person hasn't been seen yet today.
                    todayVisitors += [whom];
                    if (~llListFindList(allVisitors, [whom]))
                    {
                        // This is a returning visitor.
                        returnVisitors++;
                        repeatVisitors += [whom];
                    }
                    else
                    {
                        // This is a first-time visitor.
                        newVisitors++;
                        allVisitors = [whom] + allVisitors;
                        firstTimers += [whom];
                    }
                }
            }
        }
    }
 
    timer() 
    {
        list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);
        ParcelName = llList2String(parcelDetails, 0);
        string subj = "Visitor Log for " + ParcelName;
        string body = "Number of Visitors Total: " + (string)(newVisitors + returnVisitors)
            + "\nReturning Visitors: " + (string)returnVisitors
            + "\nNew Visitors: " + (string)newVisitors 
            + "\n\nList of New Visitors:\n\t" + llDumpList2String(firstTimers, "\n\t")
            + "\n\nList of Returning Visitors:\n\t" + llDumpList2String(repeatVisitors, "\n\t");
        newVisitors = 0;
        returnVisitors = 0;
        todayVisitors = [];
        repeatVisitors = [];
        firstTimers = [];
        if (llGetListLength(allVisitors)>500)
        {
            allVisitors = llList2List(allVisitors, 0, 499);
        }
        llEmail(MyEmail, subj, body);
    }
}

 

 

It works well when the parcel belongs to an avatar but when it is deeded to a group, i reveive an almost empty message:

Object-Name: Object
Region: xxxxx
Local-Position: (182, 43, 32)

Number of visitors total: 0
Returning visitors: 0
New visitors: 0

List of new visitors:
   

List of returning visitors:

 

In the wiki notice, it is said: "On group deeded land the object containing the script must be deeded to the same group. (It is not enough to set the script to the group.)".

But I shared my object with the group (= the land's group).

 

Did I miss something (i can't find where I can "set the script to the group" as the wiki says) or is there a bug?

Thank you for your answers.

Link to comment
Share on other sites

"Sharing" the object with the group means "setting" it.  You need to deed the object.  The difference is that in setting the object to the group you still retain ownership.  If your scripted object is supposed to detect visitors over MY land, it won't find them, because the land is owned by the group, not by you.

Link to comment
Share on other sites


Emma SecretSpy wrote:

Hello all,

 

I'm trying to use this
, with llOverMyLand.
// This script will email you a daily count of new visitors and repeat visitors.// Visitors are counted once per email update cycle. // -----------------------------------// Configuration: customize this script here.// Change this to your email address.string MyEmail = "you@example.com";// This is a number 0 to 96 meters, anything farther away than that will not be noticed.  float SensorRange = 96.0;// How often to send email updates.integer UpdateFrequency = 86400; // Number of seconds in 1 day.// ----------------------------------- // Internal Variables -- Do not change.list todayVisitors = [];list allVisitors = [];list repeatVisitors = [];list firstTimers = [];integer newVisitors = 0;integer returnVisitors = 0;string ParcelName; default{    state_entry()    {        list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);        ParcelName = llList2String(parcelDetails, 0);        llSensorRepeat( "", "", AGENT, SensorRange, PI, 20);        llSetTimerEvent(UpdateFrequency); // Email me a regular report.        llOwnerSay("Visitor Log Started.");    }     sensor(integer avsFound)    {        key  avKey;        integer avNum;        for(avNum=0; avNum<avsFound; avNum++)        {            avKey = llDetectedKey(avNum);            if (llOverMyLand(avKey))            {                string whom = llDetectedName(avNum);                if (!~llListFindList(todayVisitors, [whom]))                {                    // This person hasn't been seen yet today.                    todayVisitors += [whom];                    if (~llListFindList(allVisitors, [whom]))                    {                        // This is a returning visitor.                        returnVisitors++;                        repeatVisitors += [whom];                    }                    else                    {                        // This is a first-time visitor.                        newVisitors++;                        allVisitors = [whom] + allVisitors;                        firstTimers += [whom];                    }                }            }        }    }     timer()     {        list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);        ParcelName = llList2String(parcelDetails, 0);        string subj = "Visitor Log for " + ParcelName;        string body = "Number of Visitors Total: " + (string)(newVisitors + returnVisitors)            + "\nReturning Visitors: " + (string)returnVisitors            + "\nNew Visitors: " + (string)newVisitors             + "\n\nList of New Visitors:\n\t" + llDumpList2String(firstTimers, "\n\t")            + "\n\nList of Returning Visitors:\n\t" + llDumpList2String(repeatVisitors, "\n\t");        newVisitors = 0;        returnVisitors = 0;        todayVisitors = [];        repeatVisitors = [];        firstTimers = [];        if (llGetListLength(allVisitors)>500)        {            allVisitors = llList2List(allVisitors, 0, 499);        }        llEmail(MyEmail, subj, body);    }}

 

 

It works well when the parcel belongs to an avatar but when it is deeded to a group, i reveive an almost empty message:

Object-Name: Object

Region: xxxxx

Local-Position: (182, 43, 32)

 

Number of visitors total: 0

Returning visitors: 0

New visitors: 0

 

List of new visitors:

   

 

List of returning visitors:

 

In the wiki notice, it is said: "On group
deeded
land the object containing the script must be deeded to the same group. (It is not enough to set the script to the group.)".

But I shared my object with the group (= the land's group).

 

Did I miss something (i can't find where I can "set the script to the group" as the wiki says) or is there a bug?

Thank you for your answers.

It's not entirely clear but it sounds like you have not deeded the object to the land group   After an object is deeded to a group it will show the group as the owner.  Shared with group must be done befored deeding.

  1. Set object group to the land owner group
  2. Check the SHARE box
  3. Click Deed button
  4. Confirm that your really want to deed the object

After step 4 the object will show the group as owner.

 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 3619 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...