Jump to content

Touch teleporter script for same-sim >700m distance?


Elissa Taka
 Share

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

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

Recommended Posts

Hi, I'm having a little trouble finding a teleporter script that I can put in my own object (a sign saying "touch to teleport to the skybox"). The catch - the skybox is >700m high (as per my sim owner's rules), but not using experiences. I kind of understand the challenges and limits. I could swear I've seen ones that will do that.

Is there anything available (free, or pay)? Or if not, I know a little scripting and with a little pain I could probably put one together if anyone can suggest how to overcome the limitations.

edit: It's worth mentioning that this would be used by guests (i.e.: non-owners, and not group members), and I"m trying to stay away from menus or chat links to click on. I'm pretty sure the way to do it is to sit on the object and it makes a few ❤️00m "jumps" until it gets to the destination. 

Edit 2: I'm a total idiot. I originally thought my skybox was 7,000m high, but it's 700m. In my defense it's been a long weekend. :) 

Edited by Elissa Taka
Link to comment
Share on other sites

Any basic sit teleport script will work, since all it does is move you (and the object you are sitting on) to another place in the same region, using llSetRegionPos.  I really doubt that your skybox is above 7000m, though.  The maximum building height in SL is 4096m, and even at that height you can start to get odd drift effects.

Link to comment
Share on other sites

You cannot build past 4096 meters in elevation, so I can't imagine a skybox being in excess of 7000 meters high.

Having said that, there are a few options for positioning yourself.

When an avatar sits on an object, it becomes part of the linkset and can be moved around with the llSetLinkPrimitiveParamsFast function. You could potentially do that to shift the avatar's position and the unsit them. But I believe the practical limit is 1024 (at least that's what I saw testing vertically just now).

Alternatively, you could surround the sign with a transparent prim that when sat upon, will move itself (and the seated avatar along with it) to the target destination. Use llSetRegionPos to instantly move there.

Edit: ah, too slow. :)

Edited by Fenix Eldritch
Link to comment
Share on other sites

I'm guessing there's an extra "0" in those altitudes because 4096 is the practical build limit (and 300m is a limit on a "sit target" form of teleporter), but it sort of doesn't matter for our purposes here.

The ideal solution is an Experience-based llTeleportAgent() script, which can easily transport the guest pretty much any distance, in-region or outside. Downside: each user must at one point grant permission to the Experience (after which it lasts forever, or until they revoke permission, which is easy if they change their mind later), and the land must enable that Experience. Also, some Premium member must define the Experience, but that's not a major hurdle, usually.

If that Experience thing seems likely to spook your guests, probably the simplest, most common approach is a tried-and-true move-with-the-sitter teleporter of the sort Rolig suggests.

Link to comment
Share on other sites

3 hours ago, Wulfie Reanimator said:

An avatar that sits on an object can be moved up to 1000 meters away from the root.

Ah, and this could be good enough here, if the skybox only needs to beat that 700m altitude.

I wonder if there's a simple taxonomy of teleporters with their ranges, scripts, etc. This wiki entry is... something else.

(Also kinda wonder how I teleport a lot but now rarely use a "normal" scripted teleporter... when did that change?)

Link to comment
Share on other sites

25 minutes ago, Profaitchikenz Haiku said:

Nothing to do with experiences being introduced, I suppose?

Yeah, certainly in my own builds, although I don't see that many Experience-based teleporters in the wild. If I spent more time doing organized role play, I might see more Experience teleporters... I mean, I hope I would.

Maybe it's just my habits have changed or something. I guess there are still many simple sit-to-teleport scripts to move between parts of stores, but I also see llMapDestination() scripts, including at shopping events with sky platforms for demos. (Maybe those are more reliable under extreme lag conditions? I doubt they're any better than a pre-approved Experience llTeleportAgent(), but collecting that permission initially is a real pain.)

Link to comment
Share on other sites

There are multiple ways ...

- The teleporter sets a sit target and unsits you a short time after sit. Range: about 300m
- The teleporter moves you as part of the linkset with SLPPF and unsits you after the move. Range: about 1000m
- The whole teleporter moves itself to the target position - that includes the sitting avatar. Then unsit avatar and return to start position. Range: sim
- The teleporter rezzes a transporter (glowing sphere for example but can be anything) avatar sits, is transported with the sphere, sphere dumps avatar and self deletes. Range: sim
- The teleporter sends you a map where you have to click the teleport button. Range: grid

The map teleporter requires a touch - the others a sit. It can be set up so a touch will sit the avatar. The paranoid ones that block sit on touch need to right click and select "sit" (I suggest to replace "sit" by "teleport") - well their problem - give 'em a free tin foil hat.

The powerful direct teleport function only works for the owner. To make it work for everybody an experience is required.

There are numerous variants how to feed the teleporters with targets.
- list of coordinates or just one coordinate in notecard or description or script itself or user entry by chat
- teleporters talking to each others and build an automatik network
- evaluating one or multiple landmarks that are dropped into the teleporter
- grid wide network (stargate)

Link to comment
Share on other sites

8 hours ago, Qie Niangao said:

I wonder if there's a simple taxonomy of teleporters

can add this one to the list.  I remembered it from my memory from the self-replicating days
 

// 1) rez a object and name it say Teleporter
// 2) put this script into its Contents
// 3) take a copy of Teleporter into our Inventory
// 4) from our Inventory drop a copy into the rezzed Teleporter
// 5) our Teleporter now has a copy of itself in its Contents

// sitting on the Teleporter will rez a replacement Teleporter in the same spot
// then move to the destination and delete itself


vector destination = <6.0, 192.0, 50>;  // change to whichever

integer timer_ticks = 5;  // how many times we check that we are at the destination

default
{
    state_entry()
    {
        llSitTarget(<0.0, 0.0, 0.5>, ZERO_ROTATION); // change to whichever              
    }

    changed(integer change)
    {
        if (change & CHANGED_LINK)
        {
            if (llAvatarOnSitTarget()) // avatar has sat. So rez a replacement copy of myself from contents
                llRezAtRoot(llGetObjectName(), llGetPos(), ZERO_VECTOR, llGetRot(), 0);
            else // delete ourself should avatar stand themself
                llDie();
        }
    }
    
    object_rez(key id)
    {
        llGiveInventory(id, llGetObjectName()); // give my replacement a copy of itself/myself
        llSetRegionPos(destination); // move to destination
        llSetTimerEvent(0.5); // set timer interval to check that we are at destination
    }
    
    timer()
    {    
        // this is also a safety tidy up for when things go wonky on the server
        if (llVecDist(llGetPos(), destination) <= 1.0) // within 1 meter of destination
            timer_ticks = 1;                            // so set up to die immediately
        if (--timer_ticks == 0)  // as wrote we check that we are at destination up to 5 times
        {                        // after 5 checks we unsit avatar and die whereever we may be
            llUnSit(llAvatarOnSitTarget());  // unsit avatar
            llDie(); // delete ourself
        }
    }
}

 

 

 

 

 

  • Like 1
Link to comment
Share on other sites

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