LM ギバーではありません。
タッチしたら LM のマップが開きます。
そのまま看板から飛んでもらうスタイルです。
複雑なことはしません。
なお下記にてフルパ販売しておりますw ( 5 L$ )
http://maps.secondlife.com/secondlife/Bowfin/204/202/62
販売はやめました。こちらのスクリをコピペして活用してね!
teleport.lsl
/*
LM を一緒に入れる。タッチしたユーザーに LM をマップで開いて TP を促す。
27 July 2018 Esforco
*/
key request_server;
key request_http;
vector absolute;
string region_name;
vector region_pos;
default
{
state_entry()
{
request_server = llRequestInventoryData(llGetInventoryName(INVENTORY_LANDMARK, 0));
}
touch_start(integer n)
{
llMapDestination(region_name, region_pos, ZERO_VECTOR );
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)
{
llResetScript();
}
}
dataserver(key id, string data)
{
if (id == request_server)
{
absolute = llGetRegionCorner() + (vector)data;
vector grid = absolute / 256.0;
request_http = llHTTPRequest("http://api.gridsurvey.com/simquery.php?xy="
+(string)((integer)grid.x)+","+(string)((integer)grid.y)+"&item=name",[],"");
vector sim_corner = < absolute.x, absolute.y, 0.0 >;
region_pos = absolute - grid;
}
}
http_response(key id, integer status, list metadata, string body)
{
if (id == request_http)
{
if (status != 200)
{
llOwnerSay("Failure!");
return;
}
if(llGetSubString(body,0,4)=="Error")
{
llOwnerSay("Unknown Region");
return;
}
region_name = llDumpList2String(llParseString2List(body,["+"],[])," ");
}
}
}