2020-06-04

フォルダの名前をアレするUnpacker




unpackerってありますね、
購入した時なんかに品物が箱に詰められてて、rezした箱をタッチしたりHUD装着してからタッチしたりすると箱の中身がフォルダになって送られてくるシステム

あれね、箱に「商品名(box)」とか「商品名(wear)とか「商品名(add)」とかって名前つけたいじゃない?
だってunpackerだもんね

でも、フォルダになった際、フォルダ名には(box)とか(wear)とか(add)とかなくていいよな~?って思って、今回こんなん書いて使うことにしてみたよ

「指定文字を自動で箱の商品名の末尾につけるけどタッチしてunpackすると指定文字は消されて商品名だけがつけられたフォルダを渡されるスクリプト」






>>仕込み<<

1)スクリプトの「箱の末尾に追加したい単語」を指定する
例:(box) と追加したかったら"(box)"
例:(半角)+(unpack)と追加したかったら" (unpack)"

2)商品を箱詰めする、箱の名前=フォルダの名前

3)箱にスクリプトを入れる、自動で箱の名前の末尾に単語が追加される



>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



//--- Unpacker script ---//
//--- 2020.05.23 --------//


// タッチで中身を全部渡す(rezでもHUDでも可)
// 箱の名前にはadd単語が付くが、フォルダの名前には付かない





// 箱の末尾に追加したい単語
//-------------------------//
string add = " (unpack)";
//-------------------------//



list item;              // アイテム用のリスト
listup(){               // アイテムをリストアップする
    string str;
    item = [];        // リストをクリアする
    integer i;
    integer j = llGetInventoryNumber(INVENTORY_ALL);  
                   // コンテンツ内のアイテムの数を調べて
    for (i=0; i < j; i++) 
    { // アイテムの全数を順番に
        str = llGetInventoryName(INVENTORY_ALL, i);   // アイテム名を取得
        if (str != llGetScriptName()) 
        { // このスクリプトじゃなかったら
            item += str;                          // リストに加える
        }
    }
}

    

//--------------------------------------------------------------------

default
{
    state_entry()
    { // スクリプトが起動したら
        listup();  // リストアップする
        llSetObjectName( llGetObjectName() + add);  // 箱の名前にaddを付け加える        
    }

    changed(integer change)
    {
        if (change & CHANGED_INVENTORY) 
        { // コンテンツ内容に変化があったら
            listup();  // リストアップする
        }
    }

    touch_start(integer total_number)
    { //タッチしたら
        if(llDetectedKey(0) == llGetOwner()) 
        { //タッチした人と箱のオーナーが同じなら
            key id = llDetectedKey(0);                // タッチしたアバターのキーを取得
            string folder_box = llGetObjectName();    // 箱のオブジェクト名をゲット
            integer letters = llStringLength(add );   //addの長さを調べる
            string folder_name = llDeleteSubString(folder_box, -letters, -1); 
                                   // 箱の名前末尾からaddの長さ分を消してフォルダの名前とする
            llGiveInventoryList(id, folder_name, item);  // フォルダを作ってアイテム渡す
        }
    }
}

2020-05-29

骨アップデート・5





5/3~5/11まで






























・・・手記はここで途切れている・・・

骨アップデート・4




4/15~4/29まで




骨アップデート・3




3/15~4/12まで




骨アップデート・2




3/2~3/15まで




3/2~3/15まで

TOP