2008年07月24日

アイテムを装備するとアニメションを実行するスクリプトを

今晩は・・
凄く単純な事かもしれませんが
アイテムを装備するとアニメーションを自動で実行するを教えていただけないでしょうか?
もしくは公開されているHPでもかまいません。

イメージとしては、よくカフェとかで貰えるドリンクと一緒です。
シンプルなものであれはとてもうれしいです。
お手数ですがよろしくおねがいします。m(_ _)m


Posted by Philotes  at 19:23 │Comments(4)TrackBack(0)スクリプト関連

この記事へのトラックバックURL

http://oshiete.slmame.com/t315710

この記事へのコメント
私が自分用に作った扇子に入れるために作ったスクリプトです。

//==============================================================
// sensu_aogi 扇子
// 1.0.0
// 2008/07/05
// created by sasapy Beck

// Define
string ANIMATION_NAME = "sensu_aogi"; // アニメーション名

//--------------------------------------------------------------
// Main
default
{

// Attach Event
attach(key id)
{
if(id != NULL_KEY) // アタッチされた場合
{

// アタッチ位置に関係するアニメーションの場合、ここでチェック
// 特に関係なければいきなりllRequestPermissionsする

if(llGetAttached() == ATTACH_LHAND) // 左手にアタッチしているか
{
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION); // パーミッション要求
}
else // 左手以外にアタッチされた
{
llSay(PUBLIC_CHANNEL, "左手に装着してください");
llDetachFromAvatar(); // 強制デタッチ
}
}
else // デタッチされた場合
{
llStopAnimation(ANIMATION_NAME); // アニメーションの停止
}
}

// Permission Event
run_time_permissions(integer perm)
{
if(perm & PERMISSION_TRIGGER_ANIMATION) // 0x10
{
llStartAnimation(ANIMATION_NAME); // アニメーションの開始
}
}

// Change Event
// アタッチしたままテレポするとアニメーションが止まるため、アニメーションを開始する
// テレポが関係ないなら、イベントごと削除
changed(integer change)
{
if(change & CHANGED_TELEPORT) // CHANGED_TELEPORT = 0x200
{
llStopAnimation(ANIMATION_NAME); // アニメーションの停止
llStartAnimation(ANIMATION_NAME); // アニメーションの開始
}
}
}
//==============================================================
Posted by ささぴ at 2008年07月24日 19:56
手持ちのフルパのドリンクのスクリを覗いてみたらいいのではないでしょうか。

わたしの持っていたものでは

integer flag = 0;

default
{
state_entry()
{
llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
}

run_time_permissions(integer parm)
{
if(parm == PERMISSION_TRIGGER_ANIMATION)
{
llSetTimerEvent(15);
llStartAnimation("drink");
}
}

on_rez(integer st)
{
llResetScript();
}

attach(key id)
{
llStopAnimation("drink");
}


timer()
{

if(flag == 1)
{
llStartAnimation("drink");
}

if(flag == 3)
{
llStartAnimation("drink");
}

flag = flag + 1;

if(flag == 4)
{
flag = 0;
}

}
}

と なっていました。


あとはマカプさんとこのブログあたりで調べてみてはいかがですか。
http://miz.slmame.com/
Posted by ドリンクバー at 2008年07月24日 20:02
あっと、肝心なことを聞きそびれてしまいましたが、アニメーションはループするものでしょうか?それとも1回で終わるアニメーションなのでしょうか?
1回で終わるアニメーションであれば、それを何度も繰り返すんでしょうか?

私が載せたスクリプトはループするアニメーションを使っていますので、アタッチしたらスタートし、デタッチしたらストップするだけのものです。
Posted by ささぴ at 2008年07月24日 20:35
おふたりとも有り難うございました
目的のモノをつくることができました
たすかったですぅ
Posted by nai at 2008年07月24日 20:46