募金箱(リンデンスクリプト Tips)

Zero2000 Kidd

2007年10月07日 23:21


 今日は、お友達の依頼で募金箱を作ってみました。
機能としては、入金額上位3名の名前、金額と累計金額を表示します。
こんなかんじw


<スクリプト内容>

//
//    SHOP ZERO Tips06 FundRaisingbox  script   v1.1
//
//                   Created by Zero2000 Kid     2007/10/07
//                   modified by Zero2000 Kid    2009/02/02             
//                   WebSite:http://zero2000.slmame.com/c6192.html
//

string msg;
list moneylist = [0,"",0,"",0,"",0,""];
integer total=0;
setText () {
       integer i;
       msg=".:*チップBOX*:.\n";
       llOwnerSay(msg);
       for (i = 0; i < 3; i++) {
               msg+="入金額 No." + (string)(i+1) + " "
                         + llList2String(moneylist,2*i+1) + "さん"
                         + "(" + llList2String(moneylist,2*i) + "L$)\n";
                         
       }
       msg+= "累計金額:"+ (string)total + "L$";
       llSetText(msg,, 1.0);
}

default {
       state_entry() {
               setText();
       }
       
       money(key id, integer amount) {
               moneylist = llListReplaceList(moneylist,[amount,llKey2Name(id)],6,7);
               moneylist = llListSort(moneylist ,2, FALSE); 
               total+=amount;
               setText();
       }
}


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

_uacct = "UA-3027217-1"; urchinTracker();
コメントで頂いたsuzunosukeさんのご希望のスクリプトです。
・入金者10名の名前と金額の表示
・合計金額と順位はなし
* フローティングテキストの制限により10名全表示されないことがありますのでご注意ください^^

string title="募金箱/Donation box";
string msg;
list moneylist;

setText () {
    integer i;
    integer ct=llGetListLength(moneylist)/2;
    msg=title + "\n";
    for (i=ct-1;i>=0;i--) {
        msg+=llList2String(moneylist,2*i+1) + "さん"
                + "(" + llList2String(moneylist,2*i) + "L$)\n";
                         
    }
    llSetText(msg,, 1.0);
}

default {
    
    money(key id, integer amount) {
        moneylist+=[amount,llKey2Name(id)];
        if (llGetListLength(moneylist)>20) llDeleteSubList(moneylist,0,0);
        setText();
    }
}

                
        
リンデンスクリプトTips