2010年7月20日火曜日

リムーブの活用法っす

やる気が出ないのは暑いからっすね。
でも別な理由があるような気もするっす。
どうもぺんぎんっす( ◎v◎ )


ここら辺においてある、テクスチャ・チェンジャーで販売もしたいっす。
Pay/moneyイベントを使えば出来るんっすけど、
ちょっと違った方法も考えてみたっす。

現状、SLPPFとかのリンク周りの関数で作ってあるっす。
そこのところを変えて、リンクじゃなくてSay/listenでやり取りするっす。
こうすると商品部分と切り替え部分が分割されて、
Payじゃなく、Buyで購入できるようになるっす。
テクスチャ・チェンジャーをまるごと販売するわけじゃないっすから、
Buyでやるときはこうなるっす。
注意が必要なのは「コピー」を販売するようにすることっす。
「コンテンツ」じゃ中に入ってるスクリプトを販売することになっちゃうっす。

でもこうすると、商品の中にスクリプト(listenして形状を変える)が
残っちゃうっす。
そこで登場するのがリムーブっす。

リムーブが便利なのは自身を対象にできて、自爆できるっす。
llRemoveInventory(llGetScriptName());
と出来るわけっす。
llDieと並んで地味に使えるっすよ。

リムーブするタイミングなんっすけど、購入後初めてRezした時に
やることになるっす。
on_rezイベント中で記述するわけっすね。
「オーナーとクリエーターが異なるならリムーブ」
としておけば良いっす。


この方法の長所と短所をまとめると
長所:
 ・Buyの安心感・安定感
 ・切り替え部分は使い回しが可能
短所:
 ・スクリプトの本数が増える
 ・Say/listenを利用するので混線対策も必要
 ・購入時には商品中にスクリプトが残っている状態
  →一度もRezしないまま、別のオブジェクトのコンテンツに入れると
    on_rezイベントは起きず、スクリプトも残ったままになるっす。
    でも、どうせ使うときにはRezするっすから問題ないっすよね?
    ただ単に気持ち悪いだけっす。


結論:なんだか面倒なので、普通にPay/moneyでやるべし

0 件のコメント:

コメントを投稿

Free Avatar