Talk:BuildSlurl (NewAge)
Jump to navigation
Jump to search
Note: This page has been moved from llSLURL (NewAge). See here for the related discussion. |
Alternative slurl type links
A thrown-together script example showing 3 different types of destination/teleport links.
<lsl>string message_1 = "Click this link for destination information and teleport option:\n";
string message_2 = "Click this link for instant teleport:\n";
string message_3 = "This link can be used on a web site to direct users in-world:\n";
string method_1 = "secondlife://"; // Usable in-world only
string method_2 = "secondlife:///app/teleport/"; // Instant teleport
string method_3 = "http://slurl.com/secondlife/"; // Genuine slurl usable in and out-world
string region_name;
vector coords;
string SLURL(string region, vector pos) {
return (llEscapeURL(region) + "/" + ((string)((integer)pos.x)) + "/" + ((string)((integer)pos.y)) + "/" + ((string)llCeil(pos.z)));
}
default {
on_rez(integer param) { llResetScript(); } changed(integer change) { if(change & CHANGED_REGION) { llResetScript(); } } state_entry() { // The user simply adds the destination region name and landing pos as the description of the prim (comma separated). list destination = llCSV2List(llGetObjectDesc()); if(llGetListLength(destination) == 2) { // Various checks could be employed to varify the user has added the destination to the prim desc correctly (idiot proofing!) region_name = llList2String(destination, 0); coords = ((vector)llList2String(destination, 1)); return; } else { // Otherwise the destination defaults to the prim position (Useful? Better than nothing). region_name = llGetRegionName(); coords = llGetPos(); } } touch_start(integer nd) { while(nd) { string dest = SLURL(region_name, coords); llInstantMessage(llDetectedKey(--nd), ("\n" + message_1 + method_1 + dest + "\n" + message_2 + method_2 + dest + "\n" + message_3 + method_3 + dest)); } }
}</lsl>-- Fred Gandt (talk|contribs) 19:41, 4 September 2010 (UTC)