ソラマメブログ

2008年12月06日

オブジェクトをRezした時のイベント

on_rezしたオブジェクトを消す仕組みを考えていたら、object_rezっていう便利なイベントを発見しました。
このイベント、すごく便利です。

object_rez(key rez_id){
}

key rez_idにはrezしたオブジェクトのUUIDが入ります。
つまり、自分が何をrezしたのかを記憶することが可能なんですね。(当たり前のことですみません>< 今までこのイベントの存在すら気づいてませんでした;)

そんなわけで、こんな風にしてみました。

===== 本体のスクリプト =====
object_rez(key rez_id){
llWhisper(ch_del,(string)rez_old_id);//削除命令
rez_old_id = rez_id;
}

===== Rezされる方のスクリプト =====
on_rez(integer rez){
handle = llListen(ch_del,"","",(string)llGetKey());
}
listen(integer channel, string name, key id, string message){
if(message==(sgring)llGetKey()){ //一応受信メッセージをチェック
llDie();
}
}

これで、新しくrezした時に元々rezされていたオブジェクトを確実に削除できるようになりました。
上記だとRezしてから古いオブジェクトを削除していますので、もし削除してからRezしたい場合はllRezObject~の前に削除命令を出してあげればOKです^^

イベントって色々と便利だなぁと日々思いつつ、今欲しいのはchangeイベント中で「名前」や「説明」が変わったときの判定です^^; インベントリの中身が変わったのは判定できるのに、どうして名前とかの変化には対応しないんでしょう~。
あと、listenイベント内でDetectとか使えると便利だなーと感じるのは、私だけでしょうか;(llGetObjectDetailsを使うのがいちいち面倒なので、Detectで簡単に調べられるといいなぁ、とか)

ただいま全力でCSR準備中です~っ。
ずっとSet busyですみません>< あとちょっと・・・!


タグ :Feather

同じカテゴリー(・・・雑記)の記事画像
スカイボックスの大掃除!
マメタ広告挑戦レポート
秋の味覚
オール手作りでいこう♪
うちってナニやさん?
被災していました;
同じカテゴリー(・・・雑記)の記事
 スカイボックスの大掃除! (2014-02-01 20:17)
 マメタ広告挑戦レポート (2012-11-25 15:46)
 秋の味覚 (2012-09-09 15:25)
 忙しい夏は過ぎた! (2012-09-04 13:31)
 オール手作りでいこう♪ (2012-06-20 22:18)
 うちってナニやさん? (2012-01-08 14:49)

Posted by 朔夜 at 14:42│Comments(0)・・・雑記
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。