ソラマメブログ
< 2008年08>
S M T W T F S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
アクセスカウンタ
オーナーへメッセージ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 3人

2007年12月18日

LM giver(リンデンスクリプト Tips)

 オブジェクトをタッチするとランドマークを渡すスクリプトです。
LMをオブジェクトにドラッグするだけでOKです。
複数のランドマークにも対応しています。複数のランドマークを渡す場合は、
オブジェクトの名称をフォルダ名としてランドマークを渡します。



//
//   LM giver script   v1.0
//
//                   Created by Zero2000 Kid     2007/12/18
//

integer ItemType=INVENTORY_LANDMARK;
integer Itemct;
integer num;
list Itemlist;
string ItemName;


getItemlist() {
    Itemlist=[];
    integer i;
    Itemct = llGetInventoryNumber(ItemType);
    for (i = 0; i < Itemct; i++) {
        Itemlist+=llGetInventoryName(ItemType,i);
    }
}

default {

    state_entry() {
        llSetText("Please tuch me, gave you LM.", <1,1,1>, 1.0);
        getItemlist();
    }

    on_rez(integer int) {
        llResetScript(); 
    }

    touch_start(integer t) {
        if (Itemct!=0) {
            if (Itemct==1) {
                llGiveInventory(llDetectedKey(0),llGetInventoryName(ItemType,0));
            } else {
                string foldaname=llGetObjectName();
                llGiveInventoryList(llDetectedKey(0),foldaname,Itemlist);
            }
        }
    }
    
    changed(integer change){
        if (change & CHANGED_INVENTORY){
            getItemlist();
        }
    }
    
}



* 一行目integer ItemType=INVENTORY_LANDMARK;のINVENTORY_LANDMARKを
 INVENTORY_NOTECARDに変更すれば、ランドマークの代わりにノートカードを渡すことも可能です。



リンデンスクリプト Tips Intexへ




この記事へのトラックバックURL