ソラマメブログ

2009年07月25日

マラカスのスクリプト

昔、いわゆる「シンクロアイテム」と呼ばれるマラカスを作りました。
チャットでコマンドを入力すると、そのアイテムを装着している人全員がアニメーションしたり、音が出たりするやつですね。
古典的な名作は「たけこぷた」かな。
最近流行ってるのは「ほっとぺっぱー」「フィッツ」「かすが」などなど。

インワールドで、時々マラカスのスクリプトを売ってくれとIMをもらうことがあります。
マラカスのスクリプトは特別な工夫は何もない一般的なものなので売るなんてとんでもなく、そのつどフルパーで差し上げています。
というわけで、何かの役にたつかもしれないので、公開します。
スクリプトの知識がなくてもカスタマイズできると思います。(スクリプトの最後にカスタマイズ方法を書きました)

string anim_name = "maracas_play";
string sound_name = "manbo_x3";
key agent = NULL_KEY;
integer hdl;
integer anim_flag;
integer sound_flag;
default{
attach(key id){
if (id != NULL_KEY){
llPreloadSound(sound_name);
sound_flag = FALSE;
anim_flag = FALSE;
hdl = llListen(0,"",NULL_KEY,"");
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
}else{
llListenRemove(hdl);
agent = NULL_KEY;
llStopSound();
llStopAnimation(anim_name);
sound_flag = FALSE;
anim_flag = FALSE;
}
}
run_time_permissions(integer perm) {
if (perm & PERMISSION_TRIGGER_ANIMATION){
agent = llGetPermissionsKey();
}
}
listen(integer ch, string name, key id, string mes){
if ((mes == "manbo!")||(mes == "music start!")){
if (! sound_flag){
llLoopSound(sound_name,1.0);
sound_flag = TRUE;
}
if (! anim_flag){
llStartAnimation(anim_name);
anim_flag = TRUE;
}
}else if (mes == "stop"){
llStopSound();
sound_flag = FALSE;
llStopAnimation(anim_name);
anim_flag = FALSE;
}else if (mes == "action!"){
if (sound_flag){
llStopSound();
sound_flag = FALSE;
}
if (! anim_flag){
llStartAnimation(anim_name);
anim_flag = TRUE;
}
}
}
}

------------ここまで------------------------
カスタマイズする時は5箇所の変更でOKです。

1,2行目
"maracas_play","manbo_x3"がそれぞれ、アニメーションの名前とサウンドの名前です。

30行目
アニメーションと音楽をスタートさせれチャットコマンドの設定です。
マラカスの場合キーワードが2種類(manbo!, music start!)ありますが、1種類でいいときは
if (mes == "manbo!"){
のようにします。
チャットコマンドは日本語も使えます。

39行目
同じくアニメーションと音楽を止めるコマンドを設定します。

44行目
アニメーションだけを動作させるコマンドを設定します。




Posted by Gonzo at 13:36│Comments(2)スクリプト
この記事へのコメント
自己フォロー
ソラマメってタブが無効になっちゃうのね。
上記のスクリプト、本当はインデントつけているのだけど、全部キャンセルされちゃってます。実際に使う時は見やすく直したほうがいいかも。
Posted by GonzoGonzo at 2009年07月25日 13:40
さらに自己フォロー
あだちゃんにインデントを有効にするタグを教えてもらい、本文修正しました。
<pre>~</pre>だそうです。
Posted by GonzoGonzo at 2009年07月28日 21:12
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。