2010年07月04日
メッセージを書き込むスクリプト
よく、チャットで発言したらその内容がテキストフローティングで見ることが
出来るスクリプトが有りますが、これと、同じ機能で、書き込みできるのが
オーナーだけでなく、誰でもできるスクリプトを探しています。
具体的には、七夕の短冊やクリスマスツリーのカードに入れて、来て頂いた
方に自由にメッセージを書き込んで貰いたいと思ってます。
できれば、上記の機能に加えて、クリックしたらメッセージの内容が
チャットで見れたりするといいのですが、ご存知ありませんか?
出来るスクリプトが有りますが、これと、同じ機能で、書き込みできるのが
オーナーだけでなく、誰でもできるスクリプトを探しています。
具体的には、七夕の短冊やクリスマスツリーのカードに入れて、来て頂いた
方に自由にメッセージを書き込んで貰いたいと思ってます。
できれば、上記の機能に加えて、クリックしたらメッセージの内容が
チャットで見れたりするといいのですが、ご存知ありませんか?
テクスチェンジのHUDについて
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
モール用のプリムカウンターを探しています
連続するアニメーションの処理
オブジェクトの上にフローティングテキストを出す。
チャットログの盗聴について
椅子に座った後で位置調整できるスクリプト
string nushi;
string negai;
default
{
state_entry()
{
llSetText("願い事募集中", <1, 1, 0>, TRUE);
}
touch_start(integer total_number)
{
if(nushi == "" | nushi == llDetectedName(0))
{
nushi = llDetectedName(0);
handle = llListen(0, nushi, "", "");
llWhisper(0, "1分以内に、ねがいごとをチャットで書いてください。");
llSetTimerEvent(60);
}
else
{
llWhisper(0, "★ "+negai+" ★ by "+nushi+"");
}
}
listen(integer channel, string name, key id, string message)
{
float x = llFrand(0.3) + 0.7;
float y = llFrand(0.3) + 0.7;
float z = llFrand(0.5) + 0.5;
negai = message;
llSetText("ミ★", <x, y, z>, TRUE);
llListenRemove(handle);
llSetTimerEvent(FALSE);
}
timer()
{
llResetScript();
}
}
//ここまで
ひとつのプリムに1コ願い事できる。
願い事をした人が再びタッチすると、訂正できる。
他人がタッチすると、どんな願い事が込められているかをチェックできる。
ありがとうございました^^
願い事をフローティングテキストで表示してかつタッチでメッセージも流したい場合は、上記のスクリプトの「llSetText("ミ★", <x, y, z>, TRUE);」という部分を下記のように変えてみても良いと思いますよ。
integer LEN = 50;//表示最大文字数
integer LINE = 10;//テキストの折り返し文字数
string text;
//LENを越えたら文末を省略
if(message>LEN){
message = llGetSubString(message,0,LEN)+"...";
}
//LINEごとに改行
while(message>LINE){
text += llGetSubString(message,0,LINE) + "\n";
message = llDeleteSubString(message,0,LINE);
}
text += "by "+nushi;
llSetText(text, <x, y, z>, TRUE);
フローティングテキストの表示は256バイトくらいまでだった気がするので、ある程度の長さを超えた場合は省略するようにしてあります。
integer LEN = 50;//表示最大文字数
integer LINE = 10;//テキストの折り返し文字数
string text;
//LENを越えたら文末を省略
if(message>LEN){
message = llGetSubString(message,0,LEN)+"...";
}
//LINEごとに改行
while(message>LINE){
text += llGetSubString(message,0,LINE) + "\n";
message = llDeleteSubString(message,0,LINE);
}
text += message+"\nby "+nushi;//ここを忘れてました
llSetText(text, <x, y, z>, TRUE);