2013年3月4日月曜日

リンクナンバー管理のお話

ちょっと雑談で出てきたので適当に解説とまとめ


スクリプトでめんどくさいもんのいくつかの一つに

ボタンやエフェクト再生関係でのリンクナンバー管理があります


現代では
機能が必要なプリム全部にスクリプトを入れて
lMessageLinked();関数で通信させるなどという
リソースの異常占有はやたら嫌われていますね


なのでまぁllSetLinkPrimitiveParamsFast();
 などのリンクプリムに対する命令を使うことになるのですが

 リンクナンバーなんてもんは
 オブジェクトの保守管理中にしょっちゅー変わりますので

 特にスクリプトとオブジェクトの作者が違う時には
 "リンクを変えるな"を徹底することでそこの解決とする場合が多いです





ただし どうせスクリプトを使うなら
 管理を自動にすることで解決出来るので
 これを利用しない手は有りません

 せいぜいリンクナンバーを覚えないといけないプリムが30以下程度の場合
 (メモリ容量的な話なので数値に根拠はありませんがw)
 覚えないといけないプリム全部に通しナンバーなりユニーク名をつけて

 それをスクリプト起動時にllGetLinkName();でクローリングして
 保持するという方法が使えます

HUDの場合もっと手抜きの方法があります
 llGetLinkName(lDetectedLinkNumber());を利用します

 もうお解りですね?
 ボタン全部に機能名つけてif文で分岐してやればええわけですw


アニメーション再生HUDならもっと手抜き実装が可能で
 リストのボタン名称を毎回全部書き換えてしまえば
 ボタンとのヒモ付が不要になるので
 かなりのメモリー節約になります
 (ボタンリストの書換が負荷になるので書換レートとかを工夫しませう)

ってなところかな

まとめ
リンクナンバー
  プリムヒモ付して管理せよ

以上

0 件のコメント:

コメントを投稿