2008年05月10日
メール送信機能付きベンダー(リンデンスクリプト Tips)
商品が売れると電子メールでお知らせするベンダーボックスです。メールには、購入者、購入場所、 購入商品の情報が記載されます。通常のベンダーは、SLサイトの購入履歴から参照しますが、こち らは、リアルタイムで電子メールでお知らせが来るので、幸せな気分になれます!?w* メールの内容
「スクリプト内容」 // // 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)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
Posted by Zero2000 Kidd at 02:09│Comments(0)
│リンデンスクリプトTips