Jump to content

Mainland - Time for Linden Labs to get Brutal ?


rasterscan
 Share

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

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

Recommended Posts

6 minutes ago, rasterscan said:

I am submitting a special request to Linden Labs. Get brutal. Make the decision to remove ALL mainland objects lower than 1000 metres but higher than ... say ... 20 metres. I thank you. Please, carry right on !

Whats the background of your request? You didnt know about the anarchy before you moved in?

  • Like 1
Link to comment
Share on other sites

1 hour ago, rasterscan said:

I am submitting a special request to Linden Labs. Get brutal. Make the decision to remove ALL mainland objects lower than 1000 metres but higher than ... say ... 20 metres. I thank you. Please, carry right on !

Heights are measured from the bottom of the "sea." The standard "sea level" is 20 meters. You just suggested that Linden Lab completely wipe out the mainland.

  • Haha 15
Link to comment
Share on other sites

1 hour ago, Alwin Alcott said:

anddd WHY ?

It's totally impractical of course (even with the obvious clarification of 20+m ABOVE llGround()), but the "why" isn't that much of a stretch: low-hanging skyboxes are more than merely ugly -- heck, most border screens are even uglier -- but they screw up lighting, casting shadows on neighbors half a sim away. That's the reason Bellisseria and nearly all Estate covenants restrict skyboxes to some great altitude, at least 1000m AGL.

Still, it's impractical at this point, along with a host of other changes that would make Mainland vastly more marketable. It's the tyranny of the (tiny) minority, but there it is.

  • Like 3
Link to comment
Share on other sites

15 hours ago, rasterscan said:

I am submitting a special request to Linden Labs. Get brutal. Make the decision to remove ALL mainland objects lower than 1000 metres but higher than ... say ... 20 metres. I thank you. Please, carry right on !

😡 That would empty all the furniture out of my castle. It sits on the ground but it's something like 60-odd metres tall.

I don't know how this could even work, other than have hundreds of Lindens and moles patrolling the entirety of mainland and manually returning stuff.  Automating it would do things like emptying tall structures that are not skyboxes.

Edited by Matty Luminos
Link to comment
Share on other sites

This is absolute tyranny.

21.357m or it's revolution time.

 

To be serious though - I get the concern. Sky clutter that doesn't fit is really annoying.

But you can't make any absolute style policy that will actually give a good result, and if you make it more subjective like real zoning; you will get accusations of abuse of authority.

Yet I think a subjective sense of zoning is really the only way to do it.

- but it's also probably too late. This was a great discussion for 2003 but the heads in charge back then had that early internet 'chaos naturally leads to harmony and order' mentality...

 

Link to comment
Share on other sites

21 minutes ago, Claireschen Hesten said:

Oh dear i'd face getting wiped out then, my skybox is lower than 1000m only because the particular teleport pads i use won't work if they are more than a certain distance apart

Totally off-topic, it might be worth finding some new teleporters just to be able to put that skybox higher away from the ground level viewer lag.

(I'm guessing the teleport pads here use a simple sit target script. Those have their uses, but they'd be frustratingly restrictive for ground-to-skybox teleports.)

  • Like 1
Link to comment
Share on other sites

37 minutes ago, Claireschen Hesten said:

Oh dear i'd face getting wiped out then, my skybox is lower than 1000m only because the particular teleport pads i use won't work if they are more than a certain distance apart

Rez two prims and paste this code into a script in each:

// Use a different channel for different teleport systems. All connected teleporters need the same channel.
integer CHANNEL = -10011;

// Adjust this to alter where you land on the other end.
vector OFFSET = <1.01,0.01,1.2>;

// Leave these alone.
float INTERVAL = 10.0;
integer number = 1;
list descriptions = [];
list positions = [];
list timestamps = [];

// Function present menu items in more logical ordering.
list orderButtons(list buttons)
{
    return(llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4)
         + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10));
}

// Warp the teleporter to the desired destination.
warpPos(vector destpos)
{
    integer jumps = (integer)(llVecDist(destpos, llGetPos())/10.0) + 1;
    if (jumps > 411) jumps = 411;
    list rules = [ PRIM_POSITION, destpos ];
    integer count = 1;
    while ((count = count<<1) < jumps) rules = (rules=[]) + rules + rules;
    llSetPrimitiveParams( rules + llList2List( rules, (count-jumps)<<1, count));
    if (llVecDist(llGetPos(), destpos) > .001) while (--jumps) llSetPos( destpos );
}

testMemory()
{
    llScriptProfiler(PROFILE_SCRIPT_MEMORY);
    integer usedMemory = llGetUsedMemory();
    llSetMemoryLimit( (usedMemory + 2100) );
    llScriptProfiler(PROFILE_NONE);
}

default
{
    state_entry()
    {
        // Announce teleporter and setup timer to maintain teleporter list.
        key owner = llGetOwner();
        string description = llGetObjectDesc();
        if (description == "<Location name>") {
            description = (string)number;
        }
        vector position = llGetPos();
        llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position);
        llSetTimerEvent(INTERVAL);
        
        // Setup listener to receive teleporter announcements and user dialog.
        llListen(CHANNEL, "", "", "");
        
        // Configure sit text and target.
        llSetSitText("Teleport");
        llSitTarget(OFFSET, ZERO_ROTATION);
        testMemory();
    }

    changed(integer change)
    {
        
        // Check if someone sits on the teleporter.
        if (change & CHANGED_LINK) {
            key id = llAvatarOnSitTarget();
            if (id) {
                if (llGetInventoryNumber(INVENTORY_ANIMATION) >= 1) {
                    llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
                }
                if (llGetInventoryNumber(INVENTORY_SOUND) >= 1) {
                    llPlaySound(llGetInventoryName(INVENTORY_SOUND, 0), 1.0);
                }
                integer count = llGetListLength(descriptions);
                if (count >= 2) {
                    list buttons = orderButtons(llListSort(descriptions, 1, TRUE));
                    llDialog(id, "Select destination:", buttons, CHANNEL);
                }
                else if (count == 1) {
                    vector position = llGetPos();
                    llSleep(0.5);
                    if (llSubStringIndex(llList2String(descriptions, 0), "*") == 0 && !llSameGroup(id)) {
                        llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'");
                        llUnSit(id);
                    }
                    else if (llSubStringIndex(llList2String(descriptions, 0), "!") == 0 && id != llGetOwner()) {
                        llInstantMessage(id, "Only the owner are allowed to teleport to locations marked with '!'");
                        llUnSit(id);
                    }
                    else {
                        warpPos(llList2Vector(positions, 0));
                        llUnSit(id);
                        warpPos(position);
                    }
                }
                else {
                    llSleep(0.5);
                    llUnSit(id);
                }
            }
            testMemory();
        }
        
        // Reset the script if the teleporter has changed owner or been moved across a sim border.
        if (change & (CHANGED_OWNER|CHANGED_REGION)) {
            llResetScript();
            testMemory();
        }
        
    }

    listen(integer channel, string name, key id, string message)
    {
        
        if (id == llAvatarOnSitTarget()) {
            
            // Teleport avatar to destination.
            integer index = llListFindList(descriptions, [message]);
            vector position = llGetPos();
            if (llSubStringIndex(llList2String(descriptions, index), "*") == 0 && !llSameGroup(id)) {
                llInstantMessage(id, "Only group members are allowed to teleport to locations marked with '*'");
                llUnSit(id);
            }
            else if (llSubStringIndex(llList2String(descriptions, index), "!") == 0 && id != llGetOwner()) {
                llInstantMessage(id, "Only the owner is allowed to teleport to locations marked with '!'");
                llUnSit(id);
            }
            else {
                warpPos(llList2Vector(positions, index));
                llUnSit(id);
                warpPos(position);
            }
            
        }
        else {
            
            // Parse the received message.
            list tokens = llParseString2List(message, ["\t"], []);
            key owner = (key)llList2String(tokens, 0);
            string description = llList2String(tokens, 1);
            vector position = (vector)llList2String(tokens, 2);
            integer timestamp = llGetUnixTime();
            
            // Remove old data from the lists and add current data.
            if (owner == llGetOwner()) {
                integer index = llListFindList(descriptions, [description]);
                if (~index) {
                    descriptions = llDeleteSubList(descriptions, index, index);
                    positions = llDeleteSubList(positions, index, index);
                    timestamps = llDeleteSubList(timestamps, index, index);
                }
                descriptions += description;
                positions += position;
                timestamps += timestamp;
            }
            
            // Renumber this teleporter if another has same number.
            if ((string)number == description) {
                number++;
                if (number > 12) {
                    number = 1;
                }
            }
        }
    }

    on_rez(integer n)
    {
        // Reset the script when the teleporter is rezzed.
        llResetScript();
    }

    run_time_permissions(integer perm)
    {
        // Play animation when permission has been granted.
        if (perm & PERMISSION_TRIGGER_ANIMATION) {
            llStartAnimation(llGetInventoryName(INVENTORY_ANIMATION,0));
        }
    }

    timer()
//touch_start(integer total_number)
            {
        // Announce the teleporter.
        key owner = llGetOwner();
        string description = llGetObjectDesc();
        if (description == "<Location name>") {
            description = (string)number;
        }
        vector position = llGetPos();
        integer timestamp = llGetUnixTime();
        llRegionSay(CHANNEL, (string)owner + "\t" + description + "\t" + (string)position);
        
        // Delete oldest teleporter from list if it is too old.
        if (llGetListLength(timestamps) && timestamp-llList2Integer(timestamps, 0) > INTERVAL+1.0) {
            descriptions = llDeleteSubList(descriptions, 0, 0);
            positions = llDeleteSubList(positions, 0, 0);
            timestamps = llDeleteSubList(timestamps, 0, 0);
        }
    }
}

 

  • Thanks 1
Link to comment
Share on other sites

16 hours ago, rasterscan said:

I am submitting a special request to Linden Labs. Get brutal. Make the decision to remove ALL mainland objects lower than 1000 metres but higher than ... say ... 20 metres. I thank you. Please, carry right on !

It's too late to add a covenant to mainland, and LL would get a lot of blow-back if they started returning things from land people own. Anyone that wants pretty needs to look for the better-looking parts of mainland, or go to private estates that meet their needs. Insisting that everyone else meet your rules on land that doesn't have rules is rude.

LL should get a good laugh from your request.

  • Like 3
Link to comment
Share on other sites

http://wiki.secondlife.com/wiki/Viewer_URI_Name_Space

I find the teleport URI to be most useful.  Click WHOOSH.  No futzing around with linking your butt to a scripted prim and hoping it comes unlinked after it stops moving.  No worries about crossing region boundaries either.  If you want a confirmation, the viewer can do that.  If you don't want a confirmation, just turn it off the first time.

Riding a scripted object has it's uses too, I am sure, but I felt compelled to point out the APP URI as it's great for going the distance with a minimum of fuss.

Edited by Ardy Lay
Link to comment
Share on other sites

18 hours ago, rasterscan said:

I am submitting a special request to Linden Labs. Get brutal. Make the decision to remove ALL mainland objects lower than 1000 metres but higher than ... say ... 20 metres. I thank you. Please, carry right on !

Out of feeling contrary, I'm inclined to move my mainland platforms down to ... like .... 990 meters.

If you personally are living on mainland and bothered by neighbors skybox, you could just de-render it or move to an Estate which has a convenant about things like that (or to Bellisseria which covers that situation in it's covenant already).   Also, who needs a draw distance that large to be able to see things 1000 meters up?  If anything, I'd think 300 or 400 meters up should be fine for sky structures. 

While I can understand people wanting to 'clean up' mainland and impose what they think the majority want, I do think it's a bit too late to impose what would be seen as a draconian covenant on all of mainland.  Not all of mainland is a 'mess' - there are many, many areas which are very nice as they currently are. 

I like the hodge-podge of a lot of mainland - I think the unpredictability and the quirkiness of builds is one of the things that attracts me to mainland.  I don't always want to feel like I'm living in a perfect model community. 

 

 

  • Like 1
Link to comment
Share on other sites

8 hours ago, moirakathleen said:

Also, who needs a draw distance that large to be able to see things 1000 meters up?  If anything, I'd think 300 or 400 meters up should be fine for sky structures. 

Yeah, but once seen, these structures continue to cast shadows... I think until they age out of object cache. So you really want them far enough out of the way that nobody will encounter them flying around with common draw depth. (FWIW, I've read somewhere that folks often use a draw depth of 512m -- two full regions -- which would wipe me out especially on Mainland. I've briefly used depths like that to take "aerial photography" of an entire sim, so maybe that's why folks have that setting.)

Edited by Qie Niangao
Link to comment
Share on other sites

10 hours ago, Parhelion Palou said:

It's too late to add a covenant to mainland, and LL would get a lot of blow-back if they started returning things from land people own. Anyone that wants pretty needs to look for the better-looking parts of mainland, or go to private estates that meet their needs. Insisting that everyone else meet your rules on land that doesn't have rules is rude.

LL should get a good laugh from your request.

Mainland does have rules which are incorporated into the Terms of Service by reference so it doesn't need a separate covenant. Among the rules is the statement that Linden Lab can add additional ones as they see fit.

http://wiki.secondlife.com/wiki/Linden_Lab_Official:Mainland_policies

  • Like 1
Link to comment
Share on other sites

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