MH+ Touch to Login Tip Jar

*Overview*
 - automatic profile image setting
 - Group Access Settings
 - User filtering (Allow/Deny)
 - Set Payment Percentage
 - Payment Dialog customize
 - Auto Logout (Distance/Time)
 - Changing Text String (Color/Height)
 - Changing Message String (Text/Range)
 - Sounds can be changed
 - Can hide Last donation name
 - Can hide donation of totals
 - Can set up money transfer to another account

There is also an internal LinkMessageAPI.


普通の単独動作なチップジャーです。
ももいろTAVERN向けに作成し、無料アイテムとする予定でしたが、あれこれと弄っているウチにどうせならちゃんと作ろうという運びで「MH+」ブランドを冠しても大丈夫そうな内容に仕上げました。

もともとは備え付けのログイン型チップジャーを設置していましたが非ログイン状態の時も支払いを受け取る設定としてオブジェクトのオーナーのJarを兼ねるようにしていましたが、それだと誰宛のチップか不明確になるのではと感じて、ログイン状態が明確に分かる様にプロファイル画像の自動設定と非ログイン状態では金銭を受け取らない様に変更するというのが機能的な改変の主旨でした。しかし使用時の利便性を考えると、あれやこれやと細かなカスタマイズが必要と思われるところを取り入れていると、こうなってしまったー、という次第です。LSLでログイン型チップジャースクリプトを書けるユーザーなら大した内容ではないと感じる事ばかりでしょうけれど、カスタム機能の充実を図りました。割愛した機能としては受け取ったチップ金額のマルチ分割です。個人で少額での運用を想定しているので、1L$とか10L$の金額を複数人で分割するのは無理があるかと・・・。まぁ必要であれば追加のスクリプトで対応できる様に入金時は内部のLinkMessageで通知を流す仕組みにしています。

※またまた、どうせ添付の説明書は見ないだろうということでインワールド向け説明書が付いていません。このBlog記事で解説していきます。


■パッケージ内容
次の内容がパッケージの箱に含まれます
・MH+ TipJar(login) オブジェクト
・MH+ Labs HQへのランドマーク

→MH+ TipJar(login)は、そのままで使用可能な状態ですが、内容物を抜き取って別のオブジェクトで使用する事も出来ます。



■利用に際して最低限必要な設定
本体オブジェクトに内包されているノートカードにて各種設定を行います
・Config


→Configのノートカードは設定変更が必須という項目は特にありません

ノートカードは更新することにより自動的に再読み込みします。
再読込となった場合、チップジャーが使用中(ログイン状態)だと強制ログアウトとなります。



■設定の要、「Config」の設定内容について
ほぼ Config のコメント記述で理解できると思われますが
それぞれの項目について、より詳細に解説していきます。

オレンジ色 : ノートカード上のコメントと同じ
緑色 : 追記の解説
赤色 : 設定必須の項目
紫色 : 設定に関し要注意な項目

設定必須以外の項目は未定義でも構いません


//行頭での "//"はコメント行と見なします
//支払いダイアログの入力初期値。非表示にする場合は-1をセットする
Price = 10
//The initial value of the button in the payment dialog.
//支払いダイアログのボタンの初期値1~4。非表示にする場合は-1をセットする
PAY1 = 10
PAY2 = 30
PAY3 = 50
PAY4 = 100

//Payment percentage
//支払いの割合。(0 to 100)  100で全額、80だと80%を支払う。端数は切り捨てになります。
****負数の場合は0、100を越える場合は100として処理します
Percentage = 100


//////////////////// テキスト表示/非表示の設定 /////////////////////
//
//last donor amount
//直前のドネーションの金額表示 ( ON / OFF )
SHOW_LAST_AMOUNT = ON
//last donor name
//直前のドネーションのユーザ名表示 ( ON / OFF )
SHOW_LAST_NAME   = ON
//totl donation
//合計金額の表示 ( ON / OFF )
SHOW_TOTAL = ON

//////////////////// セキュリティの設定 /////////////////////
//Same Group Check ( ON / OFF )
//グループ限定にする場合は ON
Group = OFF

//User Filter mode
//ユーザーフィルター ( DENY / ALLOW ) DENYの場合は指定したユーザーの使用拒否。ALLOWの場合は指定ユーザーのみ使用可能
****グループ限定機能とは個別です。チェック順はグループ→フィルタです。
****グループ限定機能と併用した場合、同一グループ内の指定したアバターのみ許可(または拒否)という動作になります
Filter_MODE = DENY

//フィルターのユーザー名指定 (一行で1人分、複数個の場合は複数記述する)
****大文字と小文字の違いに注意。Resident姓も必要です
Filter_USER = TestUserAAA Resident
Filter_USER = TestUserBBB Resident


//////////////////// 自動ログアウトの設定 /////////////////////
//自動ログアウトのチェック間隔(単位 = 分  0をセットするとチェック無効)
CHECK_TIME = 3

//自動ログアウトの有効距離チェック(単位 = メートル   0をセットすると距離チェックなしでSIM全域が対象になります)
CHECK_DIST = 120

//自動ログアウトの最大ログイン時間(単位 = 分  0をセットすると経過時間チェックしません)
CHECK_MAX  = 300


//////////////////// その他の設定 /////////////////////
//profile picture prim number
//プロファイル画像(プリムのリンク番号)
****画像表示機能を利用しない場合は存在しないプリム番号を指定します。ただし負数は設定しないこと(負数のプリム番号はLSLで特別の意味を持ちます)
pic_PRIM = 2

//profile picture face number
//プロファイル画像(面の番号)
pic_FACE = 1

//profile picture (for no entry)
//プロファイル画像(未使用状態の時)
pic_OFF = d783ad12-7001-7ff3-6643-3eb4480a6e3c

//profile picture (for no image)
//プロファイル画像(画像が未登録の時)
pic_NONE = 6f9079b2-45a3-b146-c96f-752bb2ea69f6

//未使用時のテキスト色
TEXT_Color1 = <1.0,1.0,1.0>
//使用時のテキスト色
TEXT_Color2 = <0.0,1.0,0.0>
//テキストの高さ加算 (\n × 行送り)
TEXT_Height_LF = 0

//未使用時のテキスト文字列 (文字列無しとする場合は定義しないこと。もしくは全角空白文字をセットする)
//文字列中の \n は、改行に置換されます
TEXT_WAIT = Tip Jar\n(touch to login)

//Tipを受けた時のメッセージ文字列 (文字列無しとする場合は定義しないこと。もしくは全角空白文字をセットする)
//文字列中の \n は、改行に置換されます
TEXT_Tip1 = ☆。彡
TEXT_Tip2 = さんから
TEXT_Tip3 = いただきました♪ ありがとうございます!

//Tipを受けた時のSayメッセージ全体 ( 0 = 出力しない, 1 = Whisper, 2 = Say, 3 = Shout, 4 = Region)
SHOW_Tip_MSG    = 2
//Tipを受けた時のSayメッセージのうち、ユーザー名の部分 ( ON = 出力する / OFF = 出力しない)
//OFFにするとTEXT_Tip2の文字列も非表示になります
SHOW_Tip_NAME   = ON
//Tipを受けた時のSayメッセージのうち、金額の部分 ( ON = 出力する / OFF = 出力しない)
//OFFにするとTEXT_Tip3の文字列も非表示になります
SHOW_Tip_AMOUNT = ON
//Tipを受けた時のSayメッセージの出力チャンネル番号 (負数も可)
SHOW_Tip_Channel= 0

//Tipを受けた時の再生サウンド (NULL_KEY設定または未定義で無音)
Tip_SOUND = 77a018af-098e-c037-51a6-178f05877c6f

//受けたTipのうちオーナーの取り分を別のユーザーに送金する場合に送金先ユーザー名を指定
****設定が有効な場合「Money_Transfer_to_Alt_USER :~」のメッセージを出力するので表示されるUUIDが正しいか確認してください。
Money_Transfer_to_Alt_USER = *********



■支払いダイアログのカスタマイズについて
初期状態では、このような支払いダイアログとなっています。
(金額入力欄があり、4つのプリセット金額のボタンがある)
ConfigノートカードのPrice、およびPAY1~PAY4の設定を行うことで変更できます。

例1:金額入力欄を非表示にした状態。
Price = -1
PAY1 = 10
PAY2 = 30
PAY3 = 50
PAY4 = 100
この場合は表記の固定額しか支払えなくなります。
例2:金額入力欄とボタン3を非表示にした状態
Price = -1
PAY1 = 10
PAY2 = 30
PAY3 = -1
PAY4 = 100
例3:入力欄あり(初期値=5)、ボタン2つのみとした状態
Price = 5
PAY1 = 10
PAY2 = 30
PAY3 = -1
PAY4 = -1


■プリム番号の設定について
内部のスクリプトとノートカードを別のオブジェクトに移設したりする場合について。

単体の(1プリム物)で使用する場合
pic_PRIM = 0

と設定します。
テキスト文字列の位置が下過ぎる場合は適宜に TEXT_Height_LF の値で調整してください。

また、複合プリムの場合でルートプリムでなくとも動作します。

なお、余談ですが「プリムに対する支払い」なので、多面体(例えば8面あるプリム)を使っても個別に複数の支払いを処理できません。しかし1オブジェクト内で「別のプリム」であるならば、このように個別に支払いを受け持つように処理させることも出来ます。プロファイル画像部分を多面体のプリムとして構成すれば、より少ないプリム数で複数個のJarとすることも可能ですがお勧めしません。推奨しない理由は、同一オブジェクト内での複数動作を考慮していないからというのがありますが、そもそもプリム内にスクリプトを含む場合は消費リソースが1LI換算程度に増量してしまうので結果的にそれぞれ別のオブジェクトで構成してもLI消費が変わらないことになると考えられるからです。

あくまでも支払いを受け付けるのは
「プリム」なので
スクリプトが無い部分をクリックしても
支払い機能は動作しません。


■内部のLinkMessageについて(動作時の内部API)
次の各イベント発生時にLink Messageを出力します。
出力先は全てLINK_SETです。

・設定ファイルの読込を開始した時
 → num = 0, string = "*LOAD_CONFIG*", key = NULL_KEY

・ログインしたとき
 → num = 0, string = "*LOG_IN*", key = ログインしたアバターのUUID

・ログアウトしたとき(全ての場合に於いて出力、支払金額がL$0でも出力する)
 → num = 受領金額の総計, string = "*LOG_OUT*", key = ログアウトしたアバターのUUID
 → num = 支払金額の総計, string = "*PAY_OUT*", key = ログアウトしたアバターのUUID

・ログアウト(オーナーによる強制時)
 → num = 受領金額の総計, string = "*LOG_OUT_BY_OWNER*", key = ログアウトしたアバターのUUID

・ログアウト(経過時間による時)
 → num = 受領金額の総計, string = "*LOG_OUT_BY_TIMER*", key = ログアウトしたアバターのUUID

・ログアウト(距離制限による時)
 → num = 受領金額の総計, string = "*LOG_OUT_BY_RANGE*", key = ログアウトしたアバターのUUID

・ログアウト(設定変更があった時)
 → num = 受領金額の総計, string = "*LOG_OUT_BY_CONFIG*", key = ログアウトしたアバターのUUID

・チップの金額を受けたとき
 → num = 受領金額, string = "*MONEY*", key = チップを支払ったアバターのUUID

・Jar使用者に支払ったとき(受領毎で支払金額がL$0の場合は出力されない)
 → num = 支払金額, string = "*PAY*", key = ログインしたアバターのUUID

内部APIは、
支払い割合を0にしてログアウト時に一括で精算するとか
チップを貰ったら派手なパーティクルで演出するとか
どこかで累計して別のタイミングで分配するとか
そういうことをやりたいときに使えるかと思います。


■アップデート情報
2019-11-19 v1.0
    - 1st release -


2019/11/20

Posted by まゆみ.H
X f B! P L

Search (in blogs)

Featured

今も続くアバターの身長問題。身長=158cmは子供ですか、そーですか。

もともとリアルサイズなアバター故にアジア圏以外が主催のSIMなどでは低身長として扱われることも少なくなかったのですが、さほど気にせず自分の好みの見た目として楽しんでいました。ところが、先日、とあるSIMを訪問した時に「身長が5フィート以下だから子供は帰りなさい」というメッ...

Picks

クリエイティブ・コモンズ・ライセンス

template by QooQ