Jump to content

Script to stop avatars with no payment info on file


TaniaTG
 Share

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

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

Recommended Posts

Hi. I'm looking for a script to stop avatars with no payment info from coming on to my parcel.  The owner of the sim has left the relevent section on the access panel unticked,  so I am unable to stop them.  Does anyone have a script like that, or could anyone make one?

Thank you :)

Link to comment
Share on other sites

19 minutes ago, TaniaTG said:

Hi. I'm looking for a script to stop avatars with no payment info from coming on to my parcel.  The owner of the sim has left the relevent section on the access panel unticked,  so I am unable to stop them.  Does anyone have a script like that, or could anyone make one?

Thank you :)

https://gyazo.com/5dabe690585de14d8800f195bac81d51

Link to comment
Share on other sites

What you probably want is a script which uses llGetAgentList (limited to your parcel) on a timer, so every 5 seconds or so the script will scan, get a list of avatars on your parcel, then run a FOR loop to use the command Rolig mentioned, to see if they have PIOF, and if not, use llEjectFromLand to boot them off the parcel.

  • Like 1
Link to comment
Share on other sites

I really don't know why you would want to do this . Some avatars earn their money in LSL and don't want their details on LSL system of banks systems. This is not going to tell you if they have linden funding as they could have 50k lindens and you would never know and exclude them. It will only tell you if the avatar has bank details . Seems a very odd thing to restrict a user for.  Just my thoughts .

Edited by VirtualKitten
Link to comment
Share on other sites

2 hours ago, VirtualKitten said:

I really don't know why you would want to do this .

It's a very common filter that many landowners use to recognize potential griefers, many of whom come into SL without PIOF because they think it will make it hard for Linden Lab to identify them in RL.  It's also common for landowners to filter out residents who have been in SL for less than 30 days, for the same reason.  Yes, everyone knows that those two filters will also keep out many other people who are not griefers, but that's the choice that some landowners make. After all, a landowner has total control over who to allow access to her land. Personally, I have never used either filter myself but I understand why many do.

  • Like 1
Link to comment
Share on other sites

A quick snippet I've written without testing and outside of Second Life, but should work inworld. Maybe someone would find it useful... still, it would be much easier to just talk with the land/region owner and ask them to tick option in access panel. ~

key gRequestId;
list gAgentList;
integer gAgentListLength;

key gCurrentResident;
key gOwnerKey;

scanArea()
{
    gAgentList = llGetAgentList(AGENT_LIST_PARCEL, []);
    integer ownerIndex = llListFindList(gAgentList, [gOwnerKey]);
    if (~ownerIndex)
    {
        gAgentList = llDeleteSubList(gAgentList, ownerIndex, ownerIndex);
    }
    gAgentListLength = llGetListLength(gAgentList);
    getNextAvatarKey();
}

getNextAvatarKey()
{
    if (gAgentListLength > 0)
    {
        --gAgentListLength;
        gCurrentResident = llList2Key(gAgentList, gAgentListLength);
        gRequestId = llRequestAgentData(gCurrentResident, DATA_PAYINFO);
    }
}

default
{

    state_entry()
    {
        gOwnerKey = llGetOwner();
        scanArea();
        llSetTimerEvent(30);
    }

    timer()
    {
        scanArea();
    }

    dataserver(key queryid, string data)
    {
        if (gRequestId == queryid)
        {
            if (data == "0" && llOverMyLand(gCurrentResident))
            {
                llOwnerSay("Ejecting secondlife:///app/agent/" + (string)gCurrentResident + "/about");
                llRegionSayTo(gCurrentResident, 0, "Residents without payment info on file are not allowed in this area, goodbye.");
                llEjectFromLand(gCurrentResident);
            }
            getNextAvatarKey();
        }
    }

    on_rez(integer sp)
    {
        llResetScript();
    }

    changed(integer change)
    {
        if (change & CHANGED_OWNER)
        {
            llResetScript();
        }
    }

}

 

Edited by panterapolnocy
  • Like 2
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1163 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...