Land/Avatar Survey Bot $$

Thread Started By Jgark

1627
4
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
I know from a recent conversation that LL is not terribly thrilled with bots that TP from Sim to Sim surveying land and noting what avatars are there.  However, to my understanding, it is still perfectly *LEGAL* just something that annoys them.  That said, I tend to silo anything along those lines. 

My interest is more in avatars than land search. 

I'm looking for a script, or script system that could run such a bot.  I have reasonable experience with LSL.  I haven't done a lot of work with bot platforms outside of Smartbots, but I can generally manage most IT systems given a little time.

If anyone has such a script (or provides a related service) I'd be very interested and we could discuss remuneration.
Reply


#2
maybe your request is one off this scripts

[To see links please register here]

Don't send Buddy Requests with no reasons
Rules 1-6

[To see links please register here]

Reply


#3
ExamplesBasic example with a landmark called Destination in the object's inventory: 
Code:
````
```
[color=#0000ff]default[/color]
{
[color=#bbbbbb]    [/color][color=#008000]touch_start[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]num_detected[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#0000ff]llRequestPermissions[/color]([color=#0000ff]llGetOwner[/color](),[color=#bbbbbb] [/color][color=#008000]PERMISSION_TELEPORT[/color]);
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]run_time_permissions[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#008000]PERMISSION_TELEPORT[/color][color=#bbbbbb] [/color][color=#666666]&[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color])
[color=#bbbbbb]        [/color]{
[color=#bbbbbb]            [/color][color=#0000ff]llTeleportAgent[/color]([color=#0000ff]llGetPermissionsKey[/color](),[color=#bbbbbb] [/color][color=#ba2121]"Destination"[/color],[color=#bbbbbb] [/color][color=#008000]ZERO_VECTOR[/color],[color=#bbbbbb] [/color][color=#008000]ZERO_VECTOR[/color]);
[color=#bbbbbb]        [/color]}
[color=#bbbbbb]    [/color]}
}
```
````
Basic example without a landmark in the object's inventory, while facing the avatar towards the center of the region:
Code:
[color=#0000ff]default[/color]
{
[color=#bbbbbb]    [/color][color=#008000]touch_start[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]num_detected[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#0000ff]llRequestPermissions[/color]([color=#0000ff]llGetOwner[/color](),[color=#bbbbbb] [/color][color=#008000]PERMISSION_TELEPORT[/color]);
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]run_time_permissions[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#008000]PERMISSION_TELEPORT[/color][color=#bbbbbb] [/color][color=#666666]&[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color])
[color=#bbbbbb]        [/color]{
[color=#bbbbbb]            [/color][color=#b00040]vector[/color][color=#bbbbbb] [/color][color=#19177c]region_pos[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#666666]<[/color][color=#666666]100[/color],[color=#bbbbbb] [/color][color=#666666]130[/color],[color=#bbbbbb] [/color][color=#666666]40[/color][color=#666666]>[/color];
[color=#bbbbbb]            [/color][color=#b00040]vector[/color][color=#bbbbbb] [/color][color=#19177c]look_at[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#666666]<[/color][color=#666666]128[/color],[color=#666666]128[/color],[color=#666666]40[/color][color=#666666]>[/color];
[color=#bbbbbb]            [/color][color=#0000ff]llTeleportAgent[/color]([color=#0000ff]llGetPermissionsKey[/color](),[color=#bbbbbb] [/color][color=#ba2121]""[/color],[color=#bbbbbb] [/color][color=#19177c]region_pos[/color],[color=#bbbbbb] [/color][color=#19177c]look_at[/color]);
[color=#bbbbbb]        [/color]}
[color=#bbbbbb]    [/color]}
}
How to use this function in an Experience
Code:
[color=#3d7b7b]// A SIMPLE SCRIPT that implements an Experience based teleport.[/color]
[color=#3d7b7b]// Compile with the "Use Experience" box cnecked and an experience key you own selected.[/color]
[color=#3d7b7b]// The prim containing this script must contain a landmark named "Landmark" in its contents[/color]
[color=#3d7b7b]//[/color]
[color=#3d7b7b]// If the person touching this box has not previously accepted an invitation to your experience,[/color]
[color=#3d7b7b]// that person will be offered that opportunity when this prim is touched, and if the invitations[/color]
[color=#3d7b7b]// is accepted, will be immediately teleported to the target of the landmark.[/color]
[color=#3d7b7b]//[/color]
[color=#3d7b7b]// If the toucher has previously accepted an invitation, the person will be immediately teleported[/color]
[color=#3d7b7b]// with no interruption.[/color]
[color=#3d7b7b]//[/color]
[color=#3d7b7b]// The script has no safety features, e.g., will simply fail if the prim contains no landmark.[/color]
[color=#3d7b7b]//[/color]
[color=#3d7b7b]// Thanks to Rolig Loon for her help in figuring out how to do this[/color]
[color=#3d7b7b]// See https://community.secondlife.com/t5/English-Knowledge-Base/Experiences-in-Second-Life/ta-p/2744686[/color]
[color=#3d7b7b]// to read what the Lindens think is an adequate explanation of all this.[/color]

[color=#0000ff]default[/color]
{
[color=#bbbbbb]    [/color][color=#008000]touch_start[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]n[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#19177c]llRequestExperiencePermissions[/color]([color=#0000ff]llDetectedKey[/color]([color=#666666]0[/color]),[color=#bbbbbb] [/color][color=#ba2121]""[/color]);
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#19177c]experience_permissions[/color]([color=#b00040]key[/color][color=#bbbbbb] [/color][color=#19177c]agent[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#0000ff]llTeleportAgent[/color]([color=#19177c]agent[/color],[color=#bbbbbb] [/color][color=#ba2121]"Landmark"[/color],[color=#bbbbbb] [/color][color=#008000]ZERO_VECTOR[/color],[color=#bbbbbb] [/color][color=#008000]ZERO_VECTOR[/color]);
[color=#bbbbbb]    [/color]}
}
Below is an example of properly handling the look_at value based on whether the destination is the current region or a different one. This ensures that the avatar will always be facing the same direction regardless of whether they're teleporting within the region or to another one.The script keeps track of the landmark's destination coordinate in the state_entry and changed events, which is later used to calculate the total distance of the teleport.
Code:
[color=#b00040]string[/color][color=#bbbbbb] [/color][color=#19177c]landmark[/color];
[color=#b00040]vector[/color][color=#bbbbbb] [/color][color=#19177c]destination[/color];

[color=#0000ff]default[/color]
{
[color=#bbbbbb]    [/color][color=#008000]state_entry[/color]()
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#3d7b7b]// Get data about the first landmark in object inventory when script starts.[/color]
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#0000ff]llGetInventoryNumber[/color]([color=#008000]INVENTORY_LANDMARK[/color])[color=#bbbbbb] [/color][color=#666666]>[/color][color=#bbbbbb] [/color][color=#666666]0[/color])[color=#bbbbbb] [/color]{
[color=#bbbbbb]            [/color][color=#19177c]landmark[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#0000ff]llGetInventoryName[/color]([color=#008000]INVENTORY_LANDMARK[/color],[color=#bbbbbb] [/color][color=#666666]0[/color]);
[color=#bbbbbb]            [/color][color=#0000ff]llRequestInventoryData[/color]([color=#19177c]landmark[/color]);
[color=#bbbbbb]        [/color]}
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]changed[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]change[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#666666]![/color]([color=#19177c]change[/color][color=#bbbbbb] [/color][color=#666666]&[/color][color=#bbbbbb] [/color]([color=#008000]CHANGED_INVENTORY[/color][color=#666666]|[/color][color=#008000]CHANGED_REGION[/color])))[color=#bbbbbb] [/color][color=#008000]return[/color];

[color=#bbbbbb]        [/color][color=#3d7b7b]// Get data about the first landmark in object inventory when inventory changes.[/color]
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#0000ff]llGetInventoryNumber[/color]([color=#008000]INVENTORY_LANDMARK[/color])[color=#bbbbbb] [/color][color=#666666]>[/color][color=#bbbbbb] [/color][color=#666666]0[/color])[color=#bbbbbb] [/color]{
[color=#bbbbbb]            [/color][color=#19177c]landmark[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#0000ff]llGetInventoryName[/color]([color=#008000]INVENTORY_LANDMARK[/color],[color=#bbbbbb] [/color][color=#666666]0[/color]);
[color=#bbbbbb]            [/color][color=#0000ff]llRequestInventoryData[/color]([color=#19177c]landmark[/color]);
[color=#bbbbbb]        [/color]}
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]dataserver[/color]([color=#b00040]key[/color][color=#bbbbbb] [/color][color=#19177c]query[/color],[color=#bbbbbb] [/color][color=#b00040]string[/color][color=#bbbbbb] [/color][color=#19177c]data[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#3d7b7b]// Save llRequestInventoryData response.[/color]
[color=#bbbbbb]        [/color][color=#19177c]destination[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color]([color=#b00040]vector[/color])[color=#19177c]data[/color];
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]touch_start[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]num_detected[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#0000ff]llRequestPermissions[/color]([color=#0000ff]llGetOwner[/color](),[color=#bbbbbb] [/color][color=#008000]PERMISSION_TELEPORT[/color]);
[color=#bbbbbb]    [/color]}

[color=#bbbbbb]    [/color][color=#008000]run_time_permissions[/color]([color=#b00040]integer[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color])
[color=#bbbbbb]    [/color]{
[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#666666]![/color]([color=#008000]PERMISSION_TELEPORT[/color][color=#bbbbbb] [/color][color=#666666]&[/color][color=#bbbbbb] [/color][color=#19177c]perm[/color]))[color=#bbbbbb] [/color][color=#008000]return[/color];

[color=#bbbbbb]        [/color][color=#b00040]float[/color][color=#bbbbbb] [/color][color=#19177c]angle[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#666666]45[/color][color=#bbbbbb] [/color][color=#666666]*[/color][color=#bbbbbb] [/color][color=#008000]DEG_TO_RAD[/color];

[color=#bbbbbb]        [/color][color=#3d7b7b]// When teleporting to another region, we need a direction vector.[/color]
[color=#bbbbbb]        [/color][color=#b00040]vector[/color][color=#bbbbbb] [/color][color=#19177c]look_at[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#666666]<[/color][color=#0000ff]llCos[/color]([color=#19177c]angle[/color]),[color=#bbbbbb] [/color][color=#0000ff]llSin[/color]([color=#19177c]angle[/color]),[color=#bbbbbb] [/color][color=#666666]0[/color][color=#666666]>[/color];

[color=#bbbbbb]        [/color][color=#b00040]float[/color][color=#bbbbbb] [/color][color=#19177c]sim_size[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#0000ff]llVecMag[/color]([color=#666666]<[/color][color=#666666]1[/color],[color=#666666]1[/color],[color=#666666]1[/color][color=#666666]>[/color]);
[color=#bbbbbb]        [/color][color=#b00040]float[/color][color=#bbbbbb] [/color][color=#19177c]distance[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#0000ff]llVecDist[/color]([color=#666666]<[/color][color=#666666]1[/color],[color=#666666]1[/color],[color=#666666]1[/color][color=#666666]>[/color],[color=#bbbbbb] [/color][color=#19177c]destination[/color][color=#bbbbbb] [/color][color=#666666]/[/color][color=#bbbbbb] [/color][color=#666666]256[/color]);

[color=#bbbbbb]        [/color][color=#008000]if[/color][color=#bbbbbb] [/color]([color=#19177c]distance[/color][color=#bbbbbb] [/color][color=#666666]<[/color][color=#bbbbbb] [/color][color=#19177c]sim_size[/color])[color=#bbbbbb] [/color]{
[color=#bbbbbb]            [/color][color=#3d7b7b]// When teleporting within the current region, we should use a position within the region instead.[/color]
[color=#bbbbbb]            [/color][color=#19177c]look_at[/color][color=#bbbbbb] [/color][color=#666666]=[/color][color=#bbbbbb] [/color][color=#19177c]destination[/color][color=#bbbbbb] [/color][color=#666666]+[/color][color=#bbbbbb] [/color][color=#19177c]look[/color][color=#bbbbbb] [/color][color=#19177c]AT[/color];
[color=#bbbbbb]        [/color]}

[color=#bbbbbb]        [/color][color=#0000ff]llTeleportAgent[/color]([color=#0000ff]llGetPermissionsKey[/color](),[color=#bbbbbb] [/color][color=#19177c]landmark[/color],[color=#bbbbbb] [/color][color=#008000]ZERO_VECTOR[/color],[color=#bbbbbb] [/color][color=#19177c]look_at[/color]);
[color=#bbbbbb]    [/color]}
}
Reply


#4
For such a thing i whould use corrade bot. Not only because its free but because its easy to use by scripts inworld. 
Also setup of a bot is easy, all you need is a small v-server (or your own at home) and install it. Setup an SL account with it, give it a group of your choice and a password (ingame scripts needs this to control the bot as a security feature ;) ) and after it logged in, you can completely control it from a simple script. For most stuff there are already free scripts on marketplace (search for [WaS]).

With this knowledge (and the easy to use wiki of it) you can almost do whatever you want the bot to do. Even grab all data of Avatars, land, regions, whatever and send it to external services. No need for an experience or anything else.

I use mine for group advertising to more than 50 groups, teleport to some sims to get data of objects in a specific area and send this data to a mysql database. All controlled by 2 scripts in one prim located on a 16 m² square parcel on mainland somewhere ;) This works now for 2 month without any problems even after sim restarts.
Reply


#5
@Nadinia you wright here that you use yours, is that a free script?, or one  you made?
people ask for a request, then he/she want to see a script, not only a story that it works
"or are you talking about the script above, is this one working? some more info is desired
so if you have a script please share it on the script forum
Don't send Buddy Requests with no reasons
Rules 1-6

[To see links please register here]

Reply




Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...