セカCHU☆

SecondLifeのこと

LSLエディタが改良されてるね

2008年08月23日 19時25分48秒 | セカンドライフのすくりぷと
今まで漢字が使えなかったのが、いつの間にか使えるようになってますね
lslのコメントをローマ字で書くとすぐ1行いっぱいになっちゃってたから、漢字が使えるのすっごく便利
便利記念に、あんまり役に立たないscriptの覚書を書いてみようと思いまぁす

戦車の砲台script
integer stat = 0; //撃ってないか、撃ち終わったか
integer sex = 0; //最初に選択する性別
integer hundle; //聞き耳
list play_anim = ["canon-f","canon-m"]; //性別に対応したアニメの名前

default
{
  state_entry()
  {
//ここは空っぽでいいの?
  }

  attach(key id)
  {
    if (id != NULL_KEY)
    {//装着した時だけ、dialogを出してポーズが選べるよ
      hundle = llListen(-44,"",llGetOwner(),"");
      llDialog(llGetOwner(),"I am a....",["man","woman"],-44);
    }
  }

  touch_start(integer total_number)
  {
    if (stat == 0)
    {//まだ撃ってない時の処理
      stat = 1;
      if (llDetectedKey(0)==llGetOwner())
      {//タッチしたのが所有者の時だけ、弾発射ー
        llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
        llStartAnimation(llList2String(play_anim,sex));
        llSleep(1.9);
        llPlaySound("tankfire",1);
        llMessageLinked(LINK_ALL_OTHERS,0,"flash",NULL_KEY);
      }
    } else {//撃った後の処理
      stat = 0;
      if (llDetectedKey(0) == llGetOwner())
      {//タッチしたのが所有者の時だけ、アニメ終了
        llRequestPermissions(llGetOwner(),PERMISSION_TRIGGER_ANIMATION);
        llStopAnimation(llList2String(play_anim,sex));
      }
    }
  }
   
  listen(integer ch,string uname,key uid,string mes)
  {//装着してポーズを選ぶまでの間は聞き耳。
  //聞いたら性別をセットして聞き耳終わるよ。
    if (mes == "man")
    {
      sex = 1;
      llListenRemove(hundle);
    } else if (mes == "woman")
    {
      sex = 0;
      llListenRemove(hundle);
    }
  }
}

戦車の爆発script

default
{
  state_entry()
  {
//ここは空っぽでいいの?
  }

  link_message(integer sender_number, integer num, string str, key id)
  {
    if (str == "flash")
    {//"flash"のLinkMessageが来たら爆発表示するよ
      llSetTexture("muzzleflash",ALL_SIDES);
      llSleep(0.2);
      llSetTexture(TEXTURE_TRANSPARENT,ALL_SIDES);
    }
  }
}


どっちから見ても正面に見える看板
default
{
  state_entry()
  {

  }

  touch_start(integer total_number)
  {
    llOwnerSay("touched");
    string texture = "Snapshot";//POPのテクスチャ名
    llParticleSystem(
    [  PSYS_PART_FLAGS , ( 0 |
        PSYS_PART_EMISSIVE_MASK |
        PSYS_PART_INTERP_COLOR_MASK |
        PSYS_PART_INTERP_SCALE_MASK
        )
       ,PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE
       ,PSYS_PART_START_ALPHA, 1.0
       ,PSYS_PART_END_ALPHA, 1.0
       ,PSYS_PART_START_COLOR, <1,1,1>//色
       ,PSYS_PART_END_COLOR, <1,1,1>//色
       ,PSYS_PART_START_SCALE, <2,2,2>//大きさ 最大4x4x4
       ,PSYS_PART_END_SCALE, <2,2,2>//大きさ 最大4x4x4
       ,PSYS_SRC_MAX_AGE, 0.0
       ,PSYS_PART_MAX_AGE, 3.0
       ,PSYS_SRC_ACCEL, <0.0, 0.0, 0.0>
       ,PSYS_SRC_OMEGA, <0.0, 0.0, 0.0>
       ,PSYS_SRC_ANGLE_BEGIN, PI
       ,PSYS_SRC_ANGLE_END, 0*DEG_TO_RAD
       ,PSYS_SRC_BURST_PART_COUNT, 1
       ,PSYS_SRC_BURST_RATE, 1.0
       ,PSYS_SRC_BURST_SPEED_MIN, 0.0
       ,PSYS_SRC_BURST_SPEED_MAX, 0.0
       ,PSYS_SRC_TEXTURE,texture
    ]);
  }
}

touchで飛び跳ねる箱
integer TOUCH=0;  // touch hantei
integer DOCCHI=0;

default
{
  state_entry()
  {

  }
  
  touch_start(integer total_number)
  {
    if (TOUCH == 0){
      llSetTimerEvent(1.5);
      TOUCH = 1;
      llSetText("hop",<1,1,1>,1);
    } else {
      llSetTimerEvent(0.0);
      TOUCH = 0;
      llSetText("off",<1,1,1>,1);
    }
  }

  timer()
  {
    llApplyImpulse(<0,0,10>,FALSE);
  }
}


最新の画像もっと見る