2009年08月07日
ポストを作りたい
■概要
オブジェクトにノートカードを入れたら(オブジェクトにノートカードをドラッグ)、
指定のユーザー全員にノートカードを送るスクリプトです。
オブジェクト側の設定として、MOD可のグループに謙譲にする必要があるかもしれません。
このあたりはあまり検証していません。
また、スクリプト中に名前の登録もしていますが、使っていないので
誰のUUIDか確認する程度ということでw
■スクリプト
list member = [
"9f287d45-a32b-450d-ac09-2267d70f26d3","DK003 Doobie"
// 以下にメンバーを追加してください(タッチした時の情報をコピペ)
];
// タッチした時に情報を表示する時はTRUEを設定、しないときはFALSE
integer flg = TRUE;
default
{
touch_start(integer total_number)
{
if(flg == TRUE){
// メンバー情報を取得する処理
key user = llDetectedKey(0);
llSay(0, ",\""+(string)user+"\",\""+llKey2Name(user)+"\"");
//member += [user,llKey2Name(user)];
}
}
changed(integer change)
{
if(change & CHANGED_INVENTORY){
integer i;
integer ii;
integer max = llGetInventoryNumber(INVENTORY_NOTECARD );
integer maxmax = llGetListLength(member)/2;
for(i=0;ifor(ii=0;ii llGiveInventory(llList2Key(member,ii*2),llGetInventoryName(INVENTORY_NOTECARD,i));
}
}
for(i=0;illRemoveInventory(llGetInventoryName(INVENTORY_NOTECARD,i));
}
llSay(0,"登録されているユーザーに、ノートカードを送りました。");
}
}
}
ポストを作りたい その2
土地音楽の変更ツール
オセロの販売開始!デザインは6種類
llKey2Name + 仕様を読まない人 = バグる
トレハンスクリプトを作った
llHTTPRequest関連メモ2
土地音楽の変更ツール
オセロの販売開始!デザインは6種類
llKey2Name + 仕様を読まない人 = バグる
トレハンスクリプトを作った
llHTTPRequest関連メモ2
Posted by DK003 at 11:52│Comments(3)
│作ってみた
この記事へのコメント
こんにちは、おひさしぶりです。
どうも、貼り付け時の異常とは別の問題があるみたいなので
書いてみます。
1.maxmaxのループ
増分が+=2なので、iiは0,2,4,6…と増えますが
Listへのアクセスはii*2なので、
0,4,8,12となってしまうような。
そもそも、これを2で割っているのはなぜ?
2.削除用maxのループ
これは0,1,2,3と増えていきますが
以下のようなnoteがある場合
・"note_A"…i=0で削除
・"note_B"…削除されない(i=1の時は、0番目になっている)
・"note_C"…i=1で削除(i=1の時は、1番目になっている)
となり、1つおきくらいに残ってしまうような
3.Changedの件(1)
また、全体がChangedに書かれているので
以下のようなことが発生しないでしょうか
1)note"note_B"をいれる
llGetInventoryName(INVENTORY_NOTECARD,0))="note_B"
2)処理中に"note_A"をいれる
llGetInventoryName(INVENTORY_NOTECARD,0))="note_A"
4.Changedの件(2)
削除処理でChangedが発生すると思いますが
問題ないですか?
処理済メッセージのllSayが起こってうるさいくらいでしょうか。
大量にnoteをつっこんだ場合とか
Changedがいっぱい発生します。
そのときに、GetInventoryNumberしても
安定した数字が戻ってきません。
このあたり、ひと工夫必要な気がします。
がんばってください
どうも、貼り付け時の異常とは別の問題があるみたいなので
書いてみます。
1.maxmaxのループ
増分が+=2なので、iiは0,2,4,6…と増えますが
Listへのアクセスはii*2なので、
0,4,8,12となってしまうような。
そもそも、これを2で割っているのはなぜ?
2.削除用maxのループ
これは0,1,2,3と増えていきますが
以下のようなnoteがある場合
・"note_A"…i=0で削除
・"note_B"…削除されない(i=1の時は、0番目になっている)
・"note_C"…i=1で削除(i=1の時は、1番目になっている)
となり、1つおきくらいに残ってしまうような
3.Changedの件(1)
また、全体がChangedに書かれているので
以下のようなことが発生しないでしょうか
1)note"note_B"をいれる
llGetInventoryName(INVENTORY_NOTECARD,0))="note_B"
2)処理中に"note_A"をいれる
llGetInventoryName(INVENTORY_NOTECARD,0))="note_A"
4.Changedの件(2)
削除処理でChangedが発生すると思いますが
問題ないですか?
処理済メッセージのllSayが起こってうるさいくらいでしょうか。
大量にnoteをつっこんだ場合とか
Changedがいっぱい発生します。
そのときに、GetInventoryNumberしても
安定した数字が戻ってきません。
このあたり、ひと工夫必要な気がします。
がんばってください
Posted by you Xiao at 2009年08月08日 01:22
おおお、youさん、見ていただいてありがとうございます。まじめに解答いただけるとは、思わなかった。。。修正したスクリプトをまたあげま~す。
Posted by DK003 at 2009年08月10日 10:42
いつでもマジメですからw
Posted by you Xiao at 2009年08月10日 11:26