ページ

2009/06/02

4商品販売スクリプト

// 価格違いのアイテムを4つまで販売

list item=[ // アイテムリスト 各行は "アイテム名",価格
"Apple", 5,
"Banana", 4,
"Orange", 3,
"Fruit set",10,
NULL_KEY]; // リストの最後にもカンマを付けたいからw
integer len;

default
{
state_entry()
{
list price=[PAY_HIDE,PAY_HIDE,PAY_HIDE,PAY_HIDE]; // 価格リスト
integer i;
len=llGetListLength(item)-1; // アイテムリストの長さ(ヌルキーを減算してます)
for (i=0; i < len; i+=2) { if (llGetInventoryType(llList2String(item,i)) == INVENTORY_NONE) { // アイテムがコンテンツ内にないとき llOwnerSay(llList2String(item,i)+" is none."); // ないよって表示 } else { // そうでないときは価格リストに値段を登録 price=llListReplaceList(price,[llList2Integer(item,i+1)],i/2,i/2); } } llSetPayPrice(PAY_HIDE,price); // 支払いボタンに値段を設定 } changed(integer change) { if (change & CHANGED_INVENTORY) { // コンテンツ内が変わったら llResetScript(); // スクリプトリセット } } money(key id, integer amount) { // 支払いがあったら integer i; integer j; for (i=1; i < len; i+=2) { // アイテムリストの価格と比較 if (amount == llList2Integer(item,i)) j=i-1; } llGiveInventory(id,llList2String(item,j)); // アイテム渡す } }

スクリプト参照