2009年05月18日
2009年05月18日
Adult規制その3
以前のエントリで、普通のストリップはアダルト指定になると書きましたが、こちらの記事によると、
1. Strip Club would be Mature.
2. Strip Clubs that use adult key words in listings and in search would be considered Adult.
3. Strip Clubs with sex balls and back room sex areas would be Adult.
ということで、性行為無しのストリップはMatureで構わないようです。ただし、検索語に禁止ワードを入れた場合はアダルトになります。禁止ワードには「Stripper」も含まれますので微妙に厄介です。「Strip」とか「Strip Club」はいいのかしら。
まあ、私がママをやってるDanceBar CCは、設立の趣旨からしてススキノにいることを運命付けられているので、ススキノがAdultになる以上、必要がないと言ってもAdultエリアでの営業を余儀なくされることになります。ありうる対策としては、Susukino SIM群としてMature SIMを一つ接続してもらうことですねー。
ちなみに、地味に問題になりそうなのがPGの扱い。バーチャルでもアルコールを提供するお店はPGにはいられなくなります。カフェはいいけどバーはダメなんですね。というか、いままでPGだったSIMも教育や企業向け以外はMatureにしたほうがいいんじゃないでしょうか。あからさまなエロはAdultに移行するのですから、基本大人の日常に属する範囲のものはMatureでいいはずです。スキンやさんもMatureならスキンの写真を飾れますし、バーもOKです。ギャラリーなどで芸術的なヌードを展示するのもMatureでいいわけですし。
マグスルなんてオリエーテーションSIM以外はMatureで問題ないと思うな。
1. Strip Club would be Mature.
2. Strip Clubs that use adult key words in listings and in search would be considered Adult.
3. Strip Clubs with sex balls and back room sex areas would be Adult.
ということで、性行為無しのストリップはMatureで構わないようです。ただし、検索語に禁止ワードを入れた場合はアダルトになります。禁止ワードには「Stripper」も含まれますので微妙に厄介です。「Strip」とか「Strip Club」はいいのかしら。
まあ、私がママをやってるDanceBar CCは、設立の趣旨からしてススキノにいることを運命付けられているので、ススキノがAdultになる以上、必要がないと言ってもAdultエリアでの営業を余儀なくされることになります。ありうる対策としては、Susukino SIM群としてMature SIMを一つ接続してもらうことですねー。
ちなみに、地味に問題になりそうなのがPGの扱い。バーチャルでもアルコールを提供するお店はPGにはいられなくなります。カフェはいいけどバーはダメなんですね。というか、いままでPGだったSIMも教育や企業向け以外はMatureにしたほうがいいんじゃないでしょうか。あからさまなエロはAdultに移行するのですから、基本大人の日常に属する範囲のものはMatureでいいはずです。スキンやさんもMatureならスキンの写真を飾れますし、バーもOKです。ギャラリーなどで芸術的なヌードを展示するのもMatureでいいわけですし。
マグスルなんてオリエーテーションSIM以外はMatureで問題ないと思うな。
2009年05月12日
1.23RCは影付き

一時ダウンロードが止められていた1.23RCビューアですが、1.23.1になってダウンロード可能になっていますね。このビューア、密かにShadow機能が使えるようになっています。といっても、まだ設定用のUIが用意されていないので、手間がかかります。
Ctl-Alt-DでAdvancedメニューを表示する(すでに表示されている場合はそのままでOKです)。
Advancedメニューの下のほうにある Debug Settings...を選択。

続きを読む
2009年05月02日
追跡型チップジャー
以前からお店で使っている追跡型チップジャー。

スタッフがお店の敷地に入ると自動的に頭上にくっついてくるチップジャーです。
それなりに工夫はしてるんだけど、やはりSIMが重くなる原因ではないかと言われ、大改造を施すことになりました。
以前の方法は
そこで大改造です。
という具合です。

結構大規模なスクリプトになってしまい。はじめてスタックヒープコリジョンエラーを経験しました。とりあえずスタッフ全員の情報を収めたリストを操作する際、一旦ローカル変数にコピーし、グローバルのリストを削除して、ローカルで操作した後、グローバル変数にコピーするなど、姑息な手段で回避していますが、スタッフが増え続けることを考えた場合、データベーススクリプトを別に用意して使うなどの方法が必要になるかもしれません。
これやってて気が付いたのですが、チップパネルをサーバにリンクした場合、個々のパネルに払われたチップは正しく各スタッフに転送されるのですが、払うときの価格一覧されるダイアログの設定がちゃんと反映されないのです。各パネルでllSetPayPrice()で設定しているにもかかわらず、デフォルトの支払いダイアログが表示されます。この設定はルートプリムのそれが引きずられる模様。用確認です。

スタッフがお店の敷地に入ると自動的に頭上にくっついてくるチップジャーです。
それなりに工夫はしてるんだけど、やはりSIMが重くなる原因ではないかと言われ、大改造を施すことになりました。
以前の方法は
スタッフの数だけチップジャーを用意する。というものでした。しかし、登録したスタッフの数が30人を越えることになると、30個ものチップジャーがそれぞれ10秒に一度動作しているわけで、この負荷はバカにならないのでは?現在お店のあるSIMは他にこれといった店舗もないけど、、これからモールやお店を増やすので、負荷を軽減しないとこのチップジャーは使わないようにお願いするかもしれないとのことでした。
スタッフがいないときはチップジャーは控室に整列して待機。
各チップジャーが10秒に一回、登録されたスタッフが店内に居るかどうかをチェック。
いたらスタッフの頭上に移動。
一度頭上についたら1秒ごとにスタッフの位置を確認し、移動していれば追跡。
前回と比較して動いていなければチェックの頻度を5秒に一回に落す。
動き出したら一秒ごとにチェックし、追跡。
店の外に出たら控室に戻る。
これとは別に人数分のチップパネルを設置しており、こっちはまた別に30秒に一度スタッフがいるかどうかパネルごとに調べて、いたら明るく表示、いなかったら暗色にする。なお、チップパネルとチップジャーは独自のチャットチャンネルでチップが支払われたときに通信する。
そこで大改造です。
いまお店にいないスタッフのチップジャーが常に出ている状態を改善する。
一個の「チップジャーサーバ」でスタッフがお店にいるかどうかをチェックする。数十人のスタッフをループでチェックすることを考え、負荷を減らすためにこの頻度は30秒に一度。
チップジャーをつけていないスタッフが出勤したら、チップジャーをRezしてスタッフのUUIDや各種情報を登録する。
Rezされたチップジャーは自分でスタッフの頭上に移動して、あとは以前と同様に動きをチェックする。
スタッフが敷地から出たらチップジャーはサーバに「消えるよ」というメッセージを置くって自己消滅する。
サーバはメッセージを受け取って、ジャーが出ているかどうかのフラグをおろす。
それにくわえ、チップパネルもサーバで統一管理する。
ダイアログ操作で、チップパネルを自動的にRez、リンクしてならべ、スタッフごとの設定をする。
チャットの負荷を減らすため、サーバとチップパネルの通信はllMessageLinked()を使用。
という具合です。

結構大規模なスクリプトになってしまい。はじめてスタックヒープコリジョンエラーを経験しました。とりあえずスタッフ全員の情報を収めたリストを操作する際、一旦ローカル変数にコピーし、グローバルのリストを削除して、ローカルで操作した後、グローバル変数にコピーするなど、姑息な手段で回避していますが、スタッフが増え続けることを考えた場合、データベーススクリプトを別に用意して使うなどの方法が必要になるかもしれません。
これやってて気が付いたのですが、チップパネルをサーバにリンクした場合、個々のパネルに払われたチップは正しく各スタッフに転送されるのですが、払うときの価格一覧されるダイアログの設定がちゃんと反映されないのです。各パネルでllSetPayPrice()で設定しているにもかかわらず、デフォルトの支払いダイアログが表示されます。この設定はルートプリムのそれが引きずられる模様。用確認です。