Changed/ja

From Second Life Wiki
Jump to navigation Jump to search

説明

イベント: changed( integer change ){ ; }

このイベントを引き金にしてオブジェクトあるいはプリムの変化する内容です。

• integer change CHANGE_* フラグのビットフィールドです

複数のchangeは単一のイベントで表現することができ、ビット演算の算術を用います。

フラグ 説明
CHANGED_INVENTORY 0x001 プリムのインベントリが変わりました。 (オーナーが追加したインベントリだけ)
CHANGED_COLOR 0x002 プリムの色か透過度が変わりました。
CHANGED_SHAPE 0x004 プリムの形が変わりました。
CHANGED_SCALE 0x008 プリムのサイズが変わりました。
CHANGED_TEXTURE 0x010 プリムのテクスチャかテクスチャの属性が変わりました。
CHANGED_LINK 0x020 オブジェクトを構成するプリムの数が変わったか、オブジェクトの上に座っているアバターの数が変わりました。
CHANGED_ALLOWED_DROP 0x040 オーナー以外のユーザ (編集不可能な場合はオーナーも含む) がプリムにインベントリを追加しました。
CHANGED_OWNER 0x080 オブジェクトのオーナーが変わりました。
CHANGED_REGION 0x100 オブジェクトのある地域が変わりました。
CHANGED_TELEPORT 0x200 オブジェクトが 装着 されたままテレポートしました。
CHANGED_REGION_START 0x400 地域が今オンラインになりました。
CHANGED_MEDIA 0x800 プリムメディア が変更されました。

サンプル

<lsl>default {

   changed(integer change)
   {
       if (change & CHANGED_INVENTORY) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The inventory has changed.");
       }
       if (change & CHANGED_COLOR) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The color or alpha changed.");
       }
       if (change & CHANGED_SHAPE) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The prims shape has changed.");
       }
       if (change & CHANGED_SCALE) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The prims size has changed.");
       }
       if (change & CHANGED_TEXTURE) //これは&ではなく&&であり、ビット演算です!
       {
           llOwnerSay("The prims texture or texture attributes have changed.");
       }
       if (change & CHANGED_LINK) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The number of links have changed.");
       }
       if (change & CHANGED_ALLOWED_DROP) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The inventory has changed as a result of a user without mod permissions dropping an item on the prim and it being allowed by the script.");
       }
       if (change & CHANGED_OWNER) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The owner of the object has changed.");
       }
       if (change & CHANGED_REGION) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The region the object is in has changed.");
       }
       if (change & CHANGED_TELEPORT) //これは&であり&&ではなく、ビット演算です!
       {
           llOwnerSay("The object has been teleported while attached.");
       }
   }

}</lsl>

この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。