miracle☆
2009年08月13日
10:19
すみません。
実は、ランドマークを読み込む形の簡単テレポートというスクリプトをブログで見つけたので、使ってみました。
そうしたら、このスクリプトは、同じSIM内の移動のためのテレポートで、LMを使うからと言って、他のSIMにテレポートできるものとは、違っていました。
それで、自分で改良してダイアログで、行き先を選択してSLURLをチャットに表示して、テレポートする形のものを作りました。
これは、完成したのですが・・・
SLURLで出来たのだから、マップを開いてテレポートする形も出来るのでは?と思い、早速改良しました。
それで、座標を下記の方法で、変換してマップにいれるようにしました。
string f;
f = "";
pos = (vector)f;
ここからは、リッスンのイベントの中にあります。
llMapDestination(Name, pos, ZERO_VECTOR);
X,Y,Zが整数のため、一度文字に変換しています。
既に僕が作った上下に移動する乗り物は、この変換方法で、オブジェクトの高度の設定などが出来ています。
それで、今回も、マップの座標にいれるだけでと思ったのですが、上手く行きません。
僕は、ランドマークのタイトルに書かれているSIM名、座標を読み取ってそれをSLURL変えるスクリプトを作りました。
僕が最初に見たスクリプトの一部です。
一番初めにLMの名前を読み込んでいますが、そこは、省略しました。
touch_start(integer total_number){//触られると実行
if(lname!=""){
llMapDestination(llGetRegionName(), pos, );//マップを開く
//llGiveInventory(llDetectedKey(0),lname);//この行を有効にするとLMを渡す
}
}//
dataserver(key qid, string data){//リクエストに対するリターンが有れば実行
if (qid==rid){ rid="";pos=(vector)data;}//LMを読み取る(リターン)
}//
とりあえず、僕のllMapDestinationの手前で、チャットでSIMと座標を確認にたら、ちゃんと入っています。
ただ、座標の方は、正しい座標の後ろ小数点以下にゼロが、4桁くらい並んでいました。
やっぱり、小数点以下のゼロが、いけないのでしょうか?
それとも、ベクトルに変換するやり方が悪いのでしょうか?
すいません。
教えてください。
お願いします。