LSL(Linden Script Language)スクリプトTips集

お金もらう募金箱(llGetMoney関数)つくりました。

以下のスクリプトでは、オブジェクトを右クリックし、支払いを選ぶと支払金額を
選択するメッセージが表示されます。
「支払い」ボタンを押下すると、オーナーに支払います。
この募金箱は1$L募金箱なのでそれ以外の金額の場合は、返金します。



integer myamount = 1;
default
{
  state_entry()
  {
    llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
  }
  money(key id, integer amount)
  {
  if(amount != myamount){
    llGiveMoney(id,amount);
    }
  }
}
llRequestPermissions関数()
一番目のパラメータ : 許可をもらうアバターのキー
二番目のパラメータ : 許可の種類(この例の場合、オーナーが返金する場合があるので
支払いの許可を得ています。)
llGiveMoney関数() 1$Lでない金額を受け取った場合にお金を返金しています。
「お金を受け取ること」はパイメニューで「支払い」を選ぶことで自動的におこなわれます。

一番目のパラメータ : お金をもらうアバターのキー
二番目のパラメータ : 金額(リンデンドル)
moneyイベント()
このイベントを書くことによってパイメニューで「支払い」を選ぶことができるようになります。

一番目のパラメータ : お金を払ったアバターのキー
二番目のパラメータ : 金額(リンデンドル)


<補足>
state_entryの中に、llSetPayPrice(PAY_HIDE,[1,PAY_HIDE,PAY_HIDE,PAY_HIDE]);
を指定すると金額のメッセージを上記のように1$Lに固定することもできます。
ただし、金額の違う商品を一度に複数購入されたりすると、
受け取った金額が商品の金額(今回は1$L募金金額)と違ってしまう場合があるらしく、
金額チェックはおこなった方がよいようです。