ソラマメブログ
最近のSLブックマーク

2008年02月16日

チップジャーのスクリプト

このチップジャーは、オブジェクトの上に
・オーナー(オブジェクト所有者)の名前
・最後にTip入れてくれた人の名前と金額
を表示するやつです。



チップジャーのスクリプト




ところで、
ログオフ中にお金をもらっても、次のログインでお金をもらったダイアログが表示されないので、
チップもらったことに気づけないことがあります。


なので、チップをもらったらオーナーにIMを送るようにしました。
これなら次のログインで表示されるからわかる。
ありがとう!って言いたいものね。


チップジャーのスクリプト





LSL (コピーはすぐ↓の「copy to clipboard」をクリックするとコピーできるよ)


string gs_owner;
key gk_owner;



// epochをYYYY-MM-DD hh:mm:ssに変換
string epoch2str (integer epoch) {
integer work=epoch;
integer ss = work % 60;work /= 60;
integer mm = work % 60;work /= 60;
integer hh = work % 24;work /= 24;
integer day = work+1;
integer year =work/365+1970;

for (year = 1970; day >= 366; year++) {
if((!(year % 4) && ((year % 100) || !(year % 400)))){
day-=366;//閏年
}else{
day-=365;
}
}

list ltmp;
if((!(year % 4) && ((year % 100) || !(year % 400)))){
ltmp=[31,29,31,30,31,30,31,31,30,31,30,31];//閏年
}else{
ltmp=[31,28,31,30,31,30,31,31,30,31,30,31];
}

integer mon;
integer x=31;// =llList2Integer(mon,0)
for(mon=1;day>x;mon++){
day-=x;
x=llList2Integer(ltmp,mon);
}

string ret=(string)year+"/";
if(mon<10)ret+="0";
ret+=(string)mon+"/";
if(day<10)ret+="0";
ret+=(string)day+" ";
if(hh<10)ret+="0";
ret+=(string)hh+":";
if(mm<10)ret+="0";
ret+=(string)mm+":";
if(ss<10)ret+="0";
ret+=(string)ss;

return ret;
}




default
{
state_entry()
{
gk_owner=llGetOwner();
gs_owner=llKey2Name(gk_owner);
llSetText(gs_owner+"'s Tipjar\n",<0,1,0>,1.0);
}
money(key id, integer amount)
{
string name=llKey2Name(id);

llSetText(
gs_owner
+"'s Tipjar\n"
+"Last Tip:L$"
+(string)amount
+" by "
+name
,<0,1,0>
,1.0
);
llSay(0,"thank you !");
llInstantMessage(gk_owner,
epoch2str(llGetUnixTime()+9*60*60)
+" "+name+" tipped you L$"
+(string)amount
);
}
}



前半の長いepoch2str は、以前書いた「 エポックタイムを文字列YYYY/MM/DD hh:mm:ss」に変換する関数の使い回し。
チップジャー部分は下のdefault部分です。

このスクリプトをオブジェクトの中に入れて、
オブジェクト名をTipjarとかにして、、左クリックしたときの動作を「オブジェクトの支払い」にすればok。
チップジャーのスクリプト





同じカテゴリー(スクリプト関連)の記事画像
チャットキャンプのスクリプト(ログ取得追加)
同じカテゴリー(スクリプト関連)の記事
 はてブをサイドバーに表示 (2008-02-18 23:04)
 チャットキャンプのスクリプト(ログ取得追加) (2008-02-07 00:52)
 epochを時刻に変換する関数 (2008-02-03 20:36)
 LSL色づけツール (2008-02-03 01:12)
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。