Karlee Heartsong Posted April 9, 2021 Share Posted April 9, 2021 (edited) I am looking to hire someone to make me a custom script for a tp board. 1. Multi-Location 2. Same Sim 3. Can add a location without redoing the entire tp system I need this to use a set position marker not coordinates, the map or anything that someone sits on. It should be an experience. Yes, yes, I know there are some on the MP like I am describing but every last one requires me to re-do the entire system when I make a new venue. I am looking to make my life easier not have to re-do something all the time. Karlee Heartsong Edited April 9, 2021 by Karlee Heartsong Link to comment Share on other sites More sharing options...
Quistess Alpha Posted April 9, 2021 Share Posted April 9, 2021 (edited) Seems pretty straight forward. gChannelAnnounce = -47; gChannelTeleport = -48; gChannelDialog = -49; list gDestinations; list gDestinationNames; default { state_entry() { llListen(gChannelAnnounce,"",NULL_KEY,""); llListen(gChannelTeleport,"",NULL_KEY,""); llListen(gChannelDialog ,"",NULL_KEY,""); llRegonSay(gChannelAnnounce,(string)llGetKey()); } touch_start(integer n) { llDialog(llDetectedKey(0),"Select a teleport destination:",gDestinationNames,gChannelDialog); } listen(integer Channel,string Name,key ID,string Text) { if(Channel==gChannelAnnounce) { gDestinations+=[ID]; gDestinationNames+=[Name]; llRegionSayTo(ID,gChannelAnnounce,(string)llGetKey()); } else if(Channel==gChannelTeleport) { llRequestExperiencePermissions(ID, ""); } else if(Channel==gChannelDialog) { integer index = llListFindList(gDestinationNames,Text); if(index==-1) llRegionSayTo(ID,0,"ERROR, destination not found!"); else llRegionSayTo(llList2Key(gDestinations,index),gChannelTeleport,(string)ID); } } experience_permissions(key av) { vector pos = llGetPos(); llTeleportAgent(av, "", pos+<1,0,0>*llGetRot(), pos); } } It's a bit brittle, and I haven't tested it so it might have a few bugs. All of your teleporters with this script should be named something less than 12 letters long to fit into a dialog button, and it doesn't have any way of removing a teleport destination, unless you reset scripts in all of the teleporters. Also only supports up to 13 teleporters, again due to dialog limitations, and will throw an error (due to trying to give a dialog menu with empty button list) if there's only one teleporter. Edited April 9, 2021 by Quistessa obvious typo in script *2 Link to comment Share on other sites More sharing options...
Karlee Heartsong Posted April 9, 2021 Author Share Posted April 9, 2021 3 hours ago, Quistessa said: Seems pretty straight forward. gChannelAnnounce = -47; gChannelTeleport = -48; gChannelDialog = -49; list gDestinations; list gDestinationNames; default { state_entry() { llListen(gChannelAnnounce,"",NULL_KEY,""); llListen(gChannelTeleport,"",NULL_KEY,""); llListen(gChannelDialog ,"",NULL_KEY,""); llRegonSay(gChannelAnnounce,(string)llGetKey()); } touch_start(integer n) { llDialog(llDetectedKey(0),"Select a teleport destination:",gDestinationNames,gChannelDialog); } listen(integer Channel,string Name,key ID,string Text) { if(Channel==gChannelAnnounce) { gDestinations+=[ID]; gDestinationNames+=[Name]; llRegionSayTo(ID,gChannelAnnounce,(string)llGetKey()); } else if(Channel==gChannelTeleport) { llRequestExperiencePermissions(ID, ""); } else if(Channel==gChannelDialog) { integer index = llListFindList(gDestinationNames,Text); if(index==-1) llRegionSayTo(ID,0,"ERROR, destination not found!"); else llRegionSayTo(llList2Key(gDestinations,index),gChannelTeleport,(string)ID); } } experience_permissions(key av) { vector pos = llGetPos(); llTeleportAgent(av, "", pos+<1,0,0>*llGetRot(), pos); } } It's a bit brittle, and I haven't tested it so it might have a few bugs. All of your teleporters with this script should be named something less than 12 letters long to fit into a dialog button, and it doesn't have any way of removing a teleport destination, unless you reset scripts in all of the teleporters. Also only supports up to 13 teleporters, again due to dialog limitations, and will throw an error (due to trying to give a dialog menu with empty button list) if there's only one teleporter. Thank you so much. I can't script at all. Link to comment Share on other sites More sharing options...
Quistess Alpha Posted April 9, 2021 Share Posted April 9, 2021 (edited) 35 minutes ago, Karlee Heartsong said: Thank you so much. I can't script at all. Any time . I also do scripts on commission, but I don't really like charging for anything simple enough to fit into a forum post, and that (hopefully) works well enough without a lot of inworld testing and debugging. Hopefully you can get it compiled with an experience key, and get it set up for needs . Edited April 9, 2021 by Quistessa Link to comment Share on other sites More sharing options...
Recommended Posts
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