ソラマメブログ
< 2025年04月 >
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      

2008年05月10日

メール送信機能付きベンダー(リンデンスクリプト Tips)

 商品が売れると電子メールでお知らせするベンダーボックスです。メールには、購入者、購入場所、
購入商品の情報が記載されます。通常のベンダーは、SLサイトの購入履歴から参照しますが、こち
らは、リアルタイムで電子メールでお知らせが来るので、幸せな気分になれます!?w

メール送信機能付きベンダー(リンデンスクリプト Tips)

 * メールの内容
メール送信機能付きベンダー(リンデンスクリプト Tips)
「スクリプト内容」

//
//    SHOP ZERO Tips27 EmailVendor v1.0
//
//                   Created by Zero2000 Kid     2008/05/10
// 

integer price=100;
string packname="**SHOP ZERO**";
string emailaddress="xxxx@hotmail.co.jp";
string subject="Now on Sale !!";

integer ItemType=INVENTORY_ALL;
list Itemlist;

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

default
{
    state_entry()
    {
        getItemlist();
        llSetPayPrice(PAY_HIDE, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
    }

    on_rez(integer int) {
        llResetScript(); 
    }
    
    
    changed(integer change){
        if (change & CHANGED_INVENTORY){
            getItemlist();
        }
    }
    
    money(key id, integer amount)
    {
        llGiveInventoryList(id,packname,Itemlist);
        string message="Buyer : " + llKey2Name(id);
        llEmail(emailaddress, subject, message);
    }
    
    
}

「使用方法」
1. 1行目のpriceに価格、2行目のemailaddressに電子メールアドレス、3行目のpacknameに
  商品のフォルダ名、4行目のsubjectに電子メールの件名を設定します。
2. ベンダーとなるオブジェクトを1つ作成します。(球でもボックスでも何でも構いません。)
3. オブジェクトにスクリプトをドラッグします。
4. オブジェクトに商品をドラッグします。(商品の種類、数に制限はありません)
以上で完了です。
オブジェクトを右クリックして、パイメニューから"支払い"をクリックすると商品を購入可能です。
右クリックだけで購入させたい場合は、オブジェクトを右クリック->編集->一般->左をクリックすると
を"オブジェクトの支払"に設定しましょう~♪

「スクリプトの説明」
 今回のスクリプトのポイントは、moneyイベントです。
スクリプトの中にmoneyイベントを記述すると、オブジェクトのパイメニューの"支払い"というメニューが
有効になります。スクリプトを使用して商品を販売する場合は、購入ではなく支払を利用すると覚えて
おきましょう。

 まず最初にstate_entryが呼び出されます。
   state_entry()
    {
        getItemlist();
        llSetPayPrice(PAY_HIDE, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);
    }

  state_entryでは、まずgetItemlistという関数を呼び出して、ベンダーの中に存在するアイテムの
  アイテム名をItemlistというリスト型変数に格納します。

    getItemlist() {
        Itemlist=[]; // list変数初期化
        integer i;
        integer Itemct = llGetInventoryNumber(ItemType); // オブジェクト内のアイテム数の取得
        for (i = 0; i < Itemct; i++) {  // アイテム数の数だけループ処理
            string ItemName=llGetInventoryName(ItemType,i); // アイテム名称の取得
            if (ItemName!=llGetScriptName()) { // 本スクリプトを除外
                Itemlist+=ItemName;  // list変数にアイテム名を格納
            }
        }
    }

  * llGetInventoryNumberの詳細はこちらを参照ください。
  * llGetInventoryNameの詳細はこちらを参照ください。

  state_entryの2行目では、ベンダーの価格設定を行っています。
  変数priceには、1行目で100を指定していますので、100L$で販売することになります。
  PAY_HIDEの部分を変更すれば最大4つの価格を設定可能です。
  詳しくはこちらをllSetPayPrice参照ください。
  llSetPayPrice(PAY_HIDE, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);

  実際にリンデンドルが支払われるとmoneyイベントが発生します。
  
    money(key id, integer amount)
    {
        llGiveInventoryList(id,packname,Itemlist);  // list変数Itemlistに格納されたアイテムを
                                アバターに渡します。
        string message="Buyer : " + llKey2Name(id); // 購入者の名称を取得します。
        llEmail(emailaddress, subject, message);  // 電子メールを送信します。
    }

  * moneyイベントの詳細はこちらを参照ください。
  * llGiveInventoryListの詳細はこちらを参照ください。
  * llEmailの詳細はこちらを参照ください。

  またベンダーの商品を変更した場合は、changedイベントが発生し、Itemlist変数を再格納します。
    changed(integer change){
        if (change & CHANGED_INVENTORY){ // コンテンツの中身が変更されたとき
            getItemlist(); // アイテム名をItemlistに格納
        }
    }


  このようにスクリプトでベンダーを作成すると、商品販売時にメールやIMを送信したりと、
  様々なアクションを実行することが可能になります。
  次回は、これをさらに改良し、売上分配機能付きのベンダーの紹介をしたいと思います。
  お楽しみに~♪(^-^)/



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





同じカテゴリー(リンデンスクリプトTips)の記事画像
サウンド再生スクリプト(リンデンスクリプト Tips)
カメラコントロール(リンデンスクリプト Tips)
標準時間表示スクリプト(リンデンスクリプト Tips)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
同じカテゴリー(リンデンスクリプトTips)の記事
 サウンド再生スクリプト(リンデンスクリプト Tips) (2009-12-16 20:13)
 カメラコントロール(リンデンスクリプト Tips) (2009-11-21 21:26)
 標準時間表示スクリプト(リンデンスクリプト Tips) (2009-11-02 00:34)
 プリムカウンター2(リンデンスクリプト Tips) (2009-10-12 20:40)
 土地情報チェッカー(リンデンスクリプト Tips) (2009-10-11 21:33)
 SIM負荷チェッカー(リンデンスクリプト Tips) (2009-08-09 20:26)
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。