タッチ時に装着するスクリプトw

DK003

2008年10月15日 12:00


タッチ時に装着するスクリプトが知りたいらしいので、
ググったら速攻でてきたwww

llRequestPermissions(llDetectedKey(0),PERMISSION_ATTACH);
で、装着の許可を取得しに行き、取得できたら
llAttachToAvatar(ATTACH_RHAND);
で、装着させる感じですね。このATTACH_RHANDを
http://www33.atwiki.jp/lslwiki/pages/39.html
↑のアドレスを参照にして、修正したら装着する部位をかえれるわけですね。

==================================

default
{
  // 1.タッチをきっかけに始まるイベント
  touch_start(integer t)
  {
    // 装着の許可を取得しに行く
    llRequestPermissions(llDetectedKey(0),PERMISSION_ATTACH);
  }
  // 2.装着の許可がでたら始まるイベント
  run_time_permissions(integer p)
  {
    // 装着の許可が出ているか?
    if(p & PERMISSION_ATTACH)
    {
      // 装着させる
      llAttachToAvatar(ATTACH_RHAND);
    }
  }
}

==================================

↑のスクリプトを、じゃんけんゲーム作りたいらしいので、
「ぽん」という言葉を誰かがしゃべったら全員まとめてウェアーする処理に変更。

==================================

string key1 = "ぽん";
integer mode = 0;

default
{
  // 1.タッチをきっかけに始まるイベント
  touch_start(integer t)
{
    if(llGetAttached() != ATTACH_RHAND)
    {
      // 装着の許可を取得しに行く
      llRequestPermissions(llDetectedKey(0),PERMISSION_ATTACH);
      llListen(0,"","","");
    }else{
      llDetachFromAvatar();
    }
  }
  // 2.装着の許可がでたら始まるイベント
  run_time_permissions(integer p)
  {
    // 装着の許可が出ているか?
    if(p & PERMISSION_ATTACH)
    {
      // 装着させる(装着部位は以下参照)
      // http://www33.atwiki.jp/lslwiki/pages/39.html
      llOwnerSay("ok");
      mode = 1;
    }
  }
  // 3.じゃんけんぽん
  listen(integer channel,string name, key id, string message)
  {
    string m = message;
    if(llSubStringIndex(m,key1) != -1 && mode == 1)
    {
      llAttachToAvatar(ATTACH_RHAND);
      mode = 0;
    }
  }
}

==================================
質問に答えてみた