Contents ...
udn網路城邦
如何製作捐款箱
2009/02/20 15:26
瀏覽3,724
迴響1
推薦0
引用0
Donate Box 或稱 Tip Jar,我們通常管它叫捐款箱。話說人類有兩個最古老以及不可能會滅絕的職業(*註一),這個就沾上了一點邊,只是包裝的好一點、感覺沒那麼直接,但是本質上是沒什麼兩樣的(笑)。

本來沒打算這麼快就把自己碰觸 Script 的心得與案例作分享,不過因為某人的惡勢力要求,所以就倉促上路。之前是想說先由 Inventory 中,林登給予的範本起頭,那範本中的三支 Script (*註二)是每個 Avatar 身上都有,也算簡單易懂的。

為何需要使用
電影「功夫」:
嚴格來說,我們只是賣藝的,一曲肝腸斷,天涯何處覓知音...

一開始我們援用電影功夫裡的台詞,其實從某個角度來說,每一塊土地都是舞台,我們既是主人也是演員,地上的建築有時亦如布景道具。如果能讓前來參訪的人覺得愉悅,其實也算是一種演出。

捐款箱通常就是讓訪客在訪問之餘,能夠透過捐助林登幣的行為,對此地表達出支持與贊許。雖然捐款箱會有預設的四種快速支付按紐(*註三),但使用者還是可以自由決定捐助的款項。

捐款箱的設置,只要你有權力在土地上建造就可以設置,所以各種場所、商店、學校或是個人住家都可以使用(哈,只要有人願意投錢就行了)。而收到的款項端視捐助者的能力與意願,所以可能很多亦可能很少,甚至也可能完全沒有人捐助。不過放出來不一定有,但沒放卻是一定沒有,還是可以嘗試一下。

實作

捐款箱的製作相當簡單,只要找某個物件,將 Donate Box 或是 Tip Jar 的 Script 置入物件的 Content 即可。而這些 Script 可以在許多地方免費取得,或是去購買別人寫好的也是可以。為引起別人注意,通常會放在較特殊或華麗物件中或是明顯的位置,並且利用浮動文字效果,說明這是捐款箱。如果自己有能力加入其他要素,也可以在他人捐助之後,觸發特效或是發送感謝詞語。

簡單的捐款箱 Script 如下:
//宣告變數,用來儲存捐款總額。
integer totaldonated;

default
{
 // 當物件被 Rez 出來的時候,所做的反應。
 // 老外的習慣通常會使用 llResetScript 來 Reset ,以確保 Script 正常運作。
 on_rez( integer inits )
 {
  llResetScript();
 }

 // 當 Script 啟始時的動作。
 // 因為捐款箱初次啟動時,"理論上"應該捐款數為零。
 // 所以設定文字在其上方,顯示捐款數為零。
 state_entry()
 {
  llSetText("捐款箱\n到目前為止共有 L$0 金額捐款",<1,1,1>,1);
 }

 // 付款。
 // id 是付款人的鍵值,amount 是支付的金額。
 // 以下的三行動作,第一行將捐助款項加總至捐款總額之中。
 // 接著修改變更捐款箱上的捐款總額。
 // 然後發送訊息給捐款者,感謝他的捐助。
 money(key id, integer amount)
 {
  totaldonated = totaldonated + amount;
  llSetText("捐款箱\n 到目前為止共有 L$" + (string)totaldonated + "金額捐款",<1,1,1>,1);
  llInstantMessage(id,"感謝您的支持與贊助!!");
 }
}

-----
註一:
人類最古老的兩個職業,以及被認為是不會滅絕的,就是乞丐與妓女。幾千年來不管各種力量不斷試圖去改變與消滅,但始終屹立不搖。連虛擬世界也很容易看到這兩者的身影。

註二:
每個人上有的 Script 範例在 Inventory 下的 Library 裡的 Scripts 目錄。目前有 anim SMOOTH、HoverText Clock、Rotation Script 三支。

註三:
系統預設的快速付款(Fast Pay)項目為 $L1、$L5、$L10、$L20。你可以透過 llSetPayPrice 去變更它。

限會員,要發表迴響,請先登入
迴響(1) :
1樓.
2009/05/12 15:28
請問這個乞錢箱…
我是個新手,想請問一下~設置了這個箱子之後,其他人的捐的錢會直接加在我的LS裡面嗎?還是跟現實生活一樣要去開個帳戶什麼的??
當其他居民捐款之後,會直接加到你的林登幣帳戶中。如果你剛好在線上,會看到某人付你錢的訊息。並不需要另外的手續。 gefeit2009/06/16 11:40回覆