LMから座標データを抽出し、地図表示するスクリプト
2008年08月04日 – 21:38このスクリプトとLM(1つだけ)をオブジェクトに入れると
LMから座標データを抽出し、タッチした人に(LMの場所の)地図を表示します。
LMを準備するだけで簡易TP看板として利用できます^^
スクリプトの編集はいっさい不要で
LMを入れるだけで設定完了しますのでとても楽ですよ〜w
// Show Map of LM :: 2008-04-16
string lm_name;
integer lm_number = 0;
vector target_pos;
key request_id;
default{
state_entry(){
lm_number = llGetInventoryNumber(INVENTORY_LANDMARK);
if (lm_number == 1){
lm_name = llGetInventoryName(INVENTORY_LANDMARK, 0);
request_id = llRequestInventoryData(lm_name);
}else{
llOwnerSay("ランドマークがセットされていません。コンテンツ内に1つだけランドマークを入れてください。");
}
}
changed(integer change){
if (change & CHANGED_INVENTORY){
llResetScript();
}
}
dataserver(key query_id, string data){
if (query_id == request_id){
request_id = NULL_KEY;
target_pos = (vector)data;
llOwnerSay("ランドマークから座標データを抽出しました:" + lm_name);
}
}
touch_start(integer total_number){
llMapDestination(llGetRegionName(), target_pos, ZERO_VECTOR);
}
}
string lm_name;
integer lm_number = 0;
vector target_pos;
key request_id;
default{
state_entry(){
lm_number = llGetInventoryNumber(INVENTORY_LANDMARK);
if (lm_number == 1){
lm_name = llGetInventoryName(INVENTORY_LANDMARK, 0);
request_id = llRequestInventoryData(lm_name);
}else{
llOwnerSay("ランドマークがセットされていません。コンテンツ内に1つだけランドマークを入れてください。");
}
}
changed(integer change){
if (change & CHANGED_INVENTORY){
llResetScript();
}
}
dataserver(key query_id, string data){
if (query_id == request_id){
request_id = NULL_KEY;
target_pos = (vector)data;
llOwnerSay("ランドマークから座標データを抽出しました:" + lm_name);
}
}
touch_start(integer total_number){
llMapDestination(llGetRegionName(), target_pos, ZERO_VECTOR);
}
}