BlackSheep-LSL@Wiki内検索 / 「run_time_permissions」で検索した結果

検索 :
  • llRequestPermissions
    ...アバターが回答するとrun_time_permissions?イベントが発生し、パーミッションが取得できたのか、それともできなかったかの判定を行うことができる。 引数permに指定可能な定数は以下の通り。 定数名 値 説明 使用可能になる関数 PERMISSION_DEBIT 2 スクリプトオーナーの所持金からの支払許可 llGiveMoney PERMISSION_TAKE_CONTROLS 4 アバターのキー入力の検知許可 llTakeControls?/llReleaseControls PERMISSION_REMAP_CONTROLS 8 不明 不明 PERMISSION_TRIGGER_ANIMATION 16 アニメーションの実行許可 llStartAnimation?/llStopAnimation? PERMISSION_ATTACH 32 ...
  • llGetAnimationList
    ... } run_time_permissions(integer perm) { if(perm PERMISSION_TRIGGER_ANIMATION){ list anims = llGetAnimationList(llGetPermissionsKey()); integer len = llGetListLength(anims); integer i; for (i = 0; i len; i++){ llStopAnimation(llList2Key(anims, i)); } } } } 名前 ...
  • llGetCameraPos
    ... } run_time_permissions(integer perm){ if (! (perm PERMISSION_TRACK_CAMERA)) { llRequestPermissions(avatar, PERMISSION_TRACK_CAMERA); }else{ llSetTimerEvent(1.0); } } attach(key id){ if (id != NULL_KEY){ avatar = llGetOwner(); get_permission(); }else{ llSetTimerEvent(0.0); } } timer(){ vector p2 = llGetCameraPos();...
  • llGetPermissions
    llGetPermissions integer llGetPermissions() 現在取得しているパーミッションを得る。 戻り値はビットフィールドになっているので以下の定数を使って&演算を行い、必要なパーミッションが取得されているかどうかをチェックする。 定数名 説明 対応する関数 PERMISSION_DEBIT L$の支払い権限 llGiveMoney PERMISSION_TAKE_CONTROLS キー操作取得の権限 llTakeControls?、llReleaseControls PERMISSION_TRIGGER_ANIMATION アニメーション実行権限 llStartAnimation?、llStopAnimation? PERMISSION_ATTACH アタッチ制御権限 llAttachToAvatar、llDetachFromAv...
  • llBreakAllLinks
    ... } } run_time_permissions(integer perm) { if (perm PERMISSION_CHANGE_LINKS) { llBreakAllLinks(); } } } なお、この関数はアタッチメントにおいては効果が無い。 全てのリンクを解除するのではなく、一つのprimだけを外したい場合はllBreakLinkを使用すること。
  • llBreakLink
    ... } } run_time_permissions(integer perm) { if (perm PERMISSION_CHANGE_LINKS) { llBreakLink(link_number); } } } なお、この関数はアタッチメントにおいては効果が無い。 全てのリンクを解除すにはllBreakAllLinksを使用すること。
  • llGetAnimation
    ...fault { run_time_permissions(integer perm){ if (! (perm PERMISSION_TRIGGER_ANIMATION)) { llRequestPermissions(actor, PERMISSION_TRIGGER_ANIMATION); }else{ llSetTimerEvent(0.5); } } attach(key id){ if (id != NULL_KEY){ actor = llGetOwner(); llRequestPermissions(actor, PERMISSION_TRIGGER_ANIMATION); }else{ actor = NULL_KEY; llSe...
  • デモ商品を作ろう
    ...の回答が為されると、run_time_permissions?イベントが起きます。 run_time_permissions?イベントの中でアタッチメント制御が許可されたかどうかを調べるには以下のようにします。 run_time_permissions(integer p){ if (p PERMISSION_ATTACH){ // 許可された }else{ // 許可されなかった } } パーミッションが許可されて始めて、先ほどのアタッチを解除する関数llDetachFromAvatar()が使えます。 面倒ですが、この手続きは必須です。 次に、「アタッチされた」ときのイベントを見てみましょう。 これはズバリ、attach?イベントというのがあります。 attach?(key attached) at...
  • 高度なカメラ制御
    ... } } run_time_permissions(integer perm) { if (!(perm PERMISSION_CONTROL_CAMERA)) { llRequestPermissions(agent, PERMISSION_CONTROL_CAMERA); } } } llSetCameraParams関数の引数rulesはリスト型になっており、様々なカメラ制御用のパラメータをまとめて渡します。 引数rulesには以下の形式でパラメータを羅列します。 [パラメータ定数1, 設定値1, パラメータ定数2, 設定値2,....] パラメータ定数及び設定可能な値は以下の通りです。 パラメータ定数 定数値 設定値の型 初期設定値 設定値の範囲 説明 CAMERA_ACTIVE 12 integ...
  • リファレンス(イベント)
    ...ng sdata) run_time_permissions? パーミッション要求に返答があったとき(参考) run_time_permissions(integer perm) sensor? センサーが探知したとき(参考) sensor(integer num_detected) state_entry? ステートが開始されたとき state_entry() state_exit? 他のステートに遷移するとき state_exit() timer? タイマーに設定された時間が経過したとき(参考) timer() touch? タッチされているとき touch(integer num_detected) touch_end? タッチが終了したとき touch_end(integer num_detected) touch_start? タッチが開始されたとき tou...
  • お金を扱う
    ...issions関数 run_time_permissionsイベント アイテムの存在確認llGetInventoryType関数 ベンダースクリプト 今回のポイント はじめに ベンダー作成の続きです。 簡単なようでいて、意外に面倒なのがベンダーです(^^; やはりお金を扱うスクリプトですから、間違いのないような仕組みにしておかなければいけません・・・。 前回はタッチして商品の画像を切り替えるスクリプトを作りました。 今回はお金を受け取って商品を渡す部分に取り組みます。 そこまで出来ればベンダーとしては最低限のものにはなるでしょう。 buyとpay buildツールをいじっていて、オブジェクトをクリックしたときの動作に、「buy」と「pay」があるのを見て、 「どう違うんじゃい?」 と思った方もいらっしゃるのではないでしょうか。 ごく簡単...
  • アニメさせよう
    ...て返答がなされると、run_time_permissions?イベントが起こります。 ベンダースクリプトのお金のパーミッションのときと同様ですね。 run_time_permissions(integer perm) このイベントは、パーミッションが承認されても、却下されても、どちらでも発生しますので、承認されたかどうかの確認はイベント内で行わなければなりません。 run_time_permissions(integer perm) { if (perm PERMISSION_TRIGGER_ANIMATION){ // PERMISSION_TRIGGER_ANIMATIONパーミッションが許可された } else { // PERMISSION_TRIGGER_ANIMATIONパーミッションが許可されなかった }...
  • llAttachToAvatar
    ...} } run_time_permissions(integer perm) { if (perm PERMISSION_ATTACH) { llAttachToAvatar(ATTACH_RHAND); } } }
  • llGetPermissionsKey
    llGetPermissionsKey key llGetPermissionsKey() 現在取得しているパーミッションの対象者UUIDを返す。 戻り値は誰に対するパーミッションを取得しているかを示すUUIDである。 llGetPermissions関数を使用すると現在取得しているパーミッションを得ることができるが、例えばアニメーション実行権限を得ているからと言って、その権限が誰に対して有効なのかはわからない。 パーミッションは直前に呼び出されたllRequestPermissions関数で指定したアバターに対しての権限である。 例えばタッチしたときにアニメーションを実行するような仕組みを考えたとき、アニメーションのパーミッションが正しく取得されているかどうかを調べるには、タッチした人に対するパーミッションを保持しているかどうか以下のようにして判定する。 ...
  • 制御系
    ... 区分 概要 定義 run_time_permissions イベント パーミッション要求に返答があったとき[参考]初級lsl-11 run_time_permissions(integer perm) llGetPermissions 関数 スクリプトのパーミッション情報を知る integer llGetPermissions() llGetPermissionsKey 関数 スクリプトの保持しているパーミッション対象者のUUIDを得る[参考]初級lsl-13 key llGetPermissionsKey() llRequestPermissions 関数 パーミッションを要求する[参考]初級lsl-11 llRequestPermissions(key agent, integer perm) コントロール 関数・イベント名 区分 概要 定義 control イベ...
  • ステートのこと
    ... } } run_time_permissions(integer perm) { key perm_key = llGetPermissionsKey(); if (perm_key == agent) { if (perm PERMISSION_TRIGGER_ANIMATION){ key chk = llGetInventoryKey(animation_name); list anms = llGetAnimationList(agent); integer i; for (i = 0; i llGetListLength(anms); i++){ if (chk == llList2Key(anms, i)) { llS...
  • ポーズボール
    ... } } run_time_permissions(integer perm) { key perm_key = llGetPermissionsKey(); if (perm_key == siton) { if (perm PERMISSION_TRIGGER_ANIMATION){ list anms = llGetAnimationList(siton); integer i; for (i = 0; i llGetListLength(anms); i++){ llStopAnimation(llList2Key(anms, i)); } llStartAnimation(animation_name); } ...
  • llSetCameraParams
    llSetCameraParams llSetCameraParams(list rules) カメラを制御する。 制御用のパラメータはリスト変数に格納して引数rulesとして渡す。 引数rulesは以下の形式のリストでなければならない。 [パラメータ定数1, 値1, パラメータ定数2, 値2, . . . ] llSetCameraParams関数を使うには、カメラ制御パーミッションを取得していなければならない。 カメラ制御パーミッションは定数PERMISSION_CONTROL_CAMERAで定義されており、以下のようにして取得要求を出す。 llRequestPermissions(id, PERMISSION_CONTROL_CAMERA); 変数idはカメラ制御を行うアバターのUUIDである。 引数rulesに指定できるパラメータ定数と値...
  • llReleaseControls
    llReleaseControls llReleaseControls() キーコントロールを終了する。 キーコントロールとはアバターのキー入力を取得する制御で、llTakeControls?関数を使って開始される。 llTakeControls?関数でキーコントロールを開始するにはPERMISSION_TAKE_CONTROLSパーミッションが必要であるが、llReleaseControls関数を実行するとコントロールが終了するだけでなく、PERMISSION_TAKE_CONTROLSパーミッションも解除される。 再びキーコントロールを開始する際にはllRequestPermissions関数を使って再度パーミッションの取得から始めなければならない。 ...
  • llGetCameraRot
    llGetCameraRot rotation llGetCameraRot() カメラの角度を取得する。 この関数を実行するにはPERMISSION_TRACK_CAMERAの取得が必要。 llGetCameraPos関数と組み合わせて使うことで、アバターがどこを見ているかを調べることができる。 サンプルはllGetCameraPos関数の説明を参照。 名前 コメント
  • ノートを使おう
    ... } run_time_permissions(integer perm) { if (perm PERMISSION_DEBIT){ state load; } else { llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } } } state active { state_entry(){ set_commodity(); } touch_start(integer detected){ integer i = llDetectedLinkNumber(0); if (i == 2) { // back button current_id --; if (current_id 0...
  • llGiveMoney
    llGiveMoney llGiveMoney(key destination, integer amount) destinationに指定したUUIDの相手にお金(amountL$)を渡す。 パーミッションPERMISSION_DEBITを取得しなければ使えない。 このパーミッションPERMISSION_DEBITはオブジェクトのオーナーでなければ取得できないため、実質的にオーナーから他のアバターへの支払のみが実行可能ということになる(他のアバターからお金を巻き上げるようなことはできない)。 詳細は以下の記事を参照のこと。 お金を扱う(初級スクリプト第十一回) 名前 ...
  • リファレンス(名前順)
    A llAbs integer型の絶対値を得る integer llAbs(integer val) llAcos アークコサインを得る float llAcos(float val) llAddToLandBanList 土地からアバターをBANする llAddToLandBanList(key agent, float hours) llAddToLandPassList 土地の通行許可をアバターに与える llAddToLandPassList(key agent, float hours) llAdjustSoundVolume サウンドのボリュームを調整する llAdjustSoundVolume(float volume) llAllowInventoryDrop インベントリへのドロップを許可(あるいは非許可に)する llAllowInventoryDrop(inte...
  • リファレンス(機能別)
    関数 関数アバター/オブジェクト系アバター グループ オブジェクト UUID リンク イベント系タッチ アタッチ シット 衝突 センサー デテクト インターフェース系UI チャット 取引 制御系パーミッション コントロール カメラ REZ コンテンツ スクリプト 属性系面 テクスチャ 色 透明度 特殊効果系アニメーション 音 ビデオ パーティクル ビークル データ系数学 文字列 リスト 時間 データ 暗号化 土地系BAN 土地 天候 地面 物理3D系位置 回転 物理 外部機能系Email HTTP XML-RPC アバター/オブジェクト系 アバター llGetAgentInfo 指定アバターの状態を得る(飛行・AWAYなどの動作及びアタッチメントの有無等) integer llGetAgentInfo(key id) llGetAgentSize 指定アバターのサイズを得る v...
  • llPassCollisions
    llPassCollisions llPassCollisions(integer pass) 子primで発生した衝突イベントをルートprimにも通知するかどうかを設定する。 引数passにTRUEを指定した場合はルートprimにも通知され、FALSEは通知されない。 通常、リンクオブジェクトにおける衝突イベント(collision_start?、collision?、collision_end?)はprimごとに発生する。 しかしながら子prim内に衝突イベントを処理するスクリプトが存在しない場合、代わりにルートprimで衝突イベントが処理される。 ルートprimにも衝突イベントを処理するスクリプトがなければ、そのオブジェクトは衝突に関しては何も処理を行わない。 従って、もしも子primでのみ衝突イベントを処理し、ルートprimではタッチイベントを処理し...
  • llResetTime
    llResetTime llResetTime() スクリプトの稼働時間(秒数)をゼロにする。 スクリプトの稼働時間を取得するにはllGetTime関数を使う。 取得と同時に稼働時間をゼロにするにはllGetAndResetTime関数を使う。 これが何に使えるかと言うと、要はスクリプト内で使えるストップウォッチだと思えばよい。 スクリプト内のタイマーと言うとtimer?イベントが筆頭に上がるが、timer?イベントは一定時間ごとにアラームを発する目覚まし時計のようなものなので、細かい時間の計測には向かない。 例えば以下のコードはrotationの掛け算を30回行うのに要した秒数を計測する。 default{ touch_start( integer total_number ){ integer i; rotation r1 ...
  • llClearCameraParams
    llClearCameraParams llClearCameraParams() スクリプトで制御していたカメラのパラメータを全てリセットしてデフォルト状態に戻す。 使用する際にはPERMISSION_CONTROL_CAMERAパーミッションが必要である。 スクリプトからカメラを制御するにはllSetCameraParams関数を使う。
  • llGetRegionFlags
    llGetRegionFlags integer llGetRegionFlags() SIMの設定内容を得る。 設定内容とは「太陽の位置固定」とか「サンドボックス」等のSIMごとに設定されているルールのことを指す。 戻り値は以下の値を含むビットフィールドである。 定数名 値(16進数) 値(10進数) 説明 REGION_FLAG_ALLOW_DAMAGE 0x1 1 ダメージ有効 REGION_FLAG_FIXED_SUN 0x10 16 太陽の位置固定 REGION_FLAG_BLOCK_TERRAFORM 0x40 64 地形編集不可 REGION_FLAG_SANDBOX 0x100 256 サンドボックス REGION_FLAG_DISABLE_COLLISIONS 0x1000 4096 衝突判定無効 REGION_F...
  • 土地系
    土地系 BAN 関数・イベント名 区分 概要 定義 llAddToLandBanList 関数 土地からアバターをBANする llAddToLandBanList(key agent, float hours) llAddToLandPassList 関数 土地の通行許可をアバターに与える llAddToLandPassList(key agent, float hours) llRemoveFromLandBanList 関数 BANリストから指定アバターを削除する llRemoveFromLandBanList(key avatar) llRemoveFromLandPassList 関数 通行許可リストから指定アバターを削除する llRemoveFromLandPassList(key avatar) 土地 関数・イベント名 区分 概要 定義 llEdgeOfWor...
  • llDetachFromAvatar
    llDetachFromAvatar llDetachFromAvatar() オブジェクトをデタッチする。 デタッチするのはスクリプト実行中のオブジェクト(自分自身)である。 この関数の実行にはPERMISSION_ATTACHパーミッションが必要となる。 当然ながら、アタッチメントでなければ効果はない。 また、ルートprimから実行しなけれなならないという制約もあるので注意。
  • llCollisionSound
    llCollisionSound llCollisionSound(string impact_sound, float impact_volume) 衝突時の音を設定する。 引数impact_soundにはサウンド名またはUUIDを指定する。 サウンド名で指定する場合、オブジェクトのコンテンツ内にサウンドが入っていなければならない。 impact_volumeは音量である。0.0~1.0の間で指定する。 音量に0.0を指定した場合、何故か衝突時のパーティクルがデフォルトに戻るというバグがあるらしいが未確認。 衝突時のパーティクルを設定するにはllCollisionSpriteを使う。
  • llGetPrimitiveParams
    llGetPrimitiveParams list llGetPrimitiveParams(list params) primの属性値を返す。 引数paramsには取得したい属性のリストを指定する。 戻り値は引数に指定した属性に応じたリスト型のデータとなる。 基本的に、buildツールを使って指定可能なprimの設定値は全てこの関数を使用して取得できる。 また、この関数の戻り値を使ってllSetPrimitiveParams?関数を実行すると、buildツールと同様にprimを編集することが可能である。 これはつまりbuildの自動化が実現できることを意味する。 鏡面コピースクリプトなどは、この関数を使ってコピー元のprimの属性値を取得し、必要なパラメータに鏡面変換をかけた後、llSetPrimitiveParams?関数でコピー後のprimを形成する。 ...
  • llAllowInventoryDrop
    llAllowInventoryDrop llAllowInventoryDrop(integer add) オブジェクトのコンテンツへのアイテムドロップを許可/不許可にする。 引数addにTRUEを指定した場合はドロップ許可、FALSEにすると不許可である。 通常、オブジェクトのmodify権限を持っていない場合は、コンテンツの中にアイテムを入れることはできない。 しかしこの関数を使ってドロップを許可すると、誰でも任意のアイテムをコンテンツに入れることができるようになる。 なお、FALSEを指定してドロップを不許可にしたからといって、modify権限を持っているユーザーがドロップできなくなるわけではない。 つまりこの関数は、modify権限持っていないユーザーに関して、コンテンツへのアイテムドロップを許可するかしないかを設定する関数である。 参考までに、...
  • llCreateLink
    llCreateLink llCreateLink(key target, integer parent) オブジェクトをリンクさせる。 引数targetにはリンク相手のUUIDを指定する。 parentにTRUEを指定した場合は自分(スクリプトを含むオブジェクト)が親となり、FALSEを指定した場合はtargetのオブジェクトが親となる。 この関数を実行するにはPERMISSION_CHANGE_LINKSパーミッションを取得する必要がある。 相手先のオブジェクトにはパーミッションがなくても良いが、双方のオブジェクトのオーナーが同一で、かつmodify権限を持っていなければならない。 アタッチメントやsit中のオブジェクトはリンク/リンク解除を行うことはできないという制限もある。 リンクが実行されるとchangedイベントが発生するが、このときのフラグは...
  • パーティクル
    パーティクルとは パーティクル関数(llParticleSystem関数) パーティクルモジュールパラメータの説明マスク・パラメータ パターン・パラメータ その他詳細パラメータ 応用編 パーティクルとは 小技というわけではありませんが、パーティクルシステムについては設定すべきパラメータが非常に多く、わかりにくいという声をしばしば聞きます。 ですので今回はパーティクルシステムの解説とサンプル・スクリプトを書いておくことにします。 パーティクルとは粒子のことです。 SLのパーティクルシステムは、煙や火、水しぶきなどの粒子を表現するための仕組みのことを言います。 スクリプトを使う以外にパーティクルを制御する方法はありません。 従って、粒子を使った表現をしようと思ったら、パーティクルシステムのスクリプトを使わなければなりません。 よく見かけるパーティクルを列...
  • テレポート
    テレポートハック 移動型テレポーター テレポートハック 初心者さん向けのスクリプト解説記事を書いたところ、 「んなことはわかってる!もっと役に立つことを書かんかい!」 というお叱りを受けたので(笑)、ある程度スクリプトのことはわかっている人向けに、スクリプトの小技を紹介するカテゴリを設けました。 まずは有名どころから。 「テレポートハック」と呼ばれるスクリプトです。 最初にスクリプトコードを載せておきます。 01 vector offset = 0.0, 0.0, 10.0 ; // テレポート位置 02 rotation rot = ZERO_ROTATION; 03 04 default { 05 state_entry(){ 06 llSitTarget(offset, rot); 07 } 08 ...
  • 衝突判定
    はじめに 衝突イベント 衝突版自動ドア 今回のポイント 最後に はじめに 初級スクリプトとして触れておきたい事項も最後となりました。 最後に扱うのはオブジェクトの衝突についてです。 物理オブジェクトを扱いだすと、いろいろな場面で衝突判定をしたりするのですが、通常のオブジェクトにおける衝突判定も実は結構有用です。 例えば以前、センサーを利用した自動ドアを作りました。 あのスクリプトは衝突を用いて書き直すことが可能です。 衝突・・・なんていうと猛スピードで激突するイメージかもしれませんが、lslで言う衝突はもっと軽いものも含みます。 例えばアバターが歩いてきてオブジェクトを踏んだとき、それだけで衝突のイベントが起きるのです。 自動ドアの前にマットを用意しておいて、それを踏んだらドアが開く、という古典的な仕掛けが実現できます。 実際に衝突を使った自動ド...
  • llCollisionSprite
    llCollisionSprite llCollisionSprite(string impact_sprite) 衝突時のパーティクルを設定する。 物理オブジェクトを地面に落としたときなど、何やら火花っぽいものが飛び散ったりするが、あれが衝突時のパーティクルである。 この関数を使うと、衝突したときにハートが飛び散る矢とか、なんか変なものを作ることができる。 引数impact_spriteにはパーティクルに使用するテクスチャ名またはUUIDを指定する。 テクスチャ名で指定する場合、オブジェクトのコンテンツ内にテクスチャが入っていなければならない。 impact_spriteに""(空文字)を指定した場合はデフォルトのパーティクルに戻る。 衝突時のサウンドを設定するにはllCollisionSoundを使う。
  • llGetUnixTime
    llGetUnixTime integer llGetUnixTime() 1970年1月1日午前0時0分0秒からの経過秒数を返す。 UNIXでいうところのtime_tに相当。 名前 コメント
  • アバター/オブジェクト系
    アバター/オブジェクト系 アバター 関数・イベント名 区分 概要 定義 llGetAgentInfo 関数 指定アバターの状態を得る(飛行・AWAYなどの動作及びアタッチメントの有無等) integer llGetAgentInfo(key id) llGetAgentSize 関数 指定アバターのサイズを得る vector llGetAgentSize(key id) llPointAt 関数 現在動作せず llPointAt(vector pos) llRequestAgentData 関数 アバターデータの取得を要求する key llRequestAgentData(key id, integer data) llStopPointAt 関数 現在動作せず llStopPointAt() グループ 関数・イベント名 区分 概要 定義 llDetectedGroup 関数...
  • llRegionSay
    llRegionSay llRegionSay(integer channel, string text) 土地全域に聞こえるチャットメッセージtextをチャンネルchannelで送信する。 LSLではチャットメッセージをlisten?して処理を行うことが多く、不用意にllRegionSayを多用すると負荷が高くなる可能性がある。 チャットメッセージの送信範囲は必要に応じて使い分けるべき。 他のチャット関連関数も参照のこと。 llWhisper・・・範囲10m llSay・・・範囲20m llShout・・・範囲100m llOwnerSay・・・オーナーにのみ送信 llInstantMessage・・・特定アバターのみ(IM) llMessageLinked・・・リンクprim間の通信。listenに影響なし。 チャンネル0(パブリ...
  • llGetRegionTimeDilation
    llGetRegionTimeDilation float llGetRegionTimeDilation() SIMの処理速度を判断するためのパーセンテージを返す。 戻り値は0.0~1.0の小数である。 1.0は処理遅延が発生していないことを示す。 0.0であれば完全に処理が止まっている(この関数自体返ってこない気がするw)。 0.5とかなら、通常の半分程度の戦闘力しか発揮していない状態ということになる。 llGetRegionFPS関数とともに、SIMの稼働状況を確認するために使われる関数である。 名前 コメント
  • llGetInventoryPermMask
    llGetInventoryPermMask integer llGetInventoryPermMask(string item, integer mask) コンテンツ内にある指定したアイテム名の権限を調べる。 引数maskには調べたい権限の対象者を指定する。 定数 値 説明 MASK_BASE 0 基本(現在のオーナーの権限に等しい) MASK_OWNER 1 現在のオーナーの権限 MASK_GROUP 2 グループの権限 MASK_EVERYONE 3 その他の人々の権限 MASK_NEXT 4 次のオーナーの権限 戻り値はビットフィールドになっているので、以下の定数と&演算を行って権限をチェックする。 定数 値(16進数) 値(整数値) 説明 PERM_ALL 0x7FFFFFFF 2147483647 Move/Mod...
  • 鍵をかける
    はじめに 鍵をかけることの意味操作できる人を限定する方法 鍵をかける 強制排除スクリプト はじめに やもさんより質問いただいたスクリプトについて解説です。 [やもさんからの質問] 最近自分で服を作るようになり試着の為の更衣室を用意したのですが ドアに鍵をかけるか、自分にしか開けられないドアするにはどのようにしたら良いのでしょうか? これって結構ニーズのある話だと思います。 着替えの最中は裸になることも多く、やはり人に見られたくない場合がありますので・・・。 また、Kirさんからも関連のある質問をいただきました。 [Kirさんからの質問] なんとか、オーナー限定にて動作するように改良したいのですが、 if (llDetectedKey(0) == llGetOwner()){ handle=llListen(channel, "&qu...
  • イベント系
    イベント系 タッチ 関数・イベント名 区分 概要 定義 touch イベント タッチされているとき touch(integer num_detected) touch_end イベント タッチが終了したとき touch_end(integer num_detected) touch_start イベント タッチが開始されたとき touch_start(integer num_detected) llSetTouchText 関数 パイメニューの「Touch」を他の文字列に変更する llSetTouchText(string text) アタッチ 関数・イベント名 区分 概要 定義 attach イベント アタッチ/デタッチされたとき[参考]初級lsl-21 attach(key id) llAttachToAvatar 関数 オブジェクトをAttachさせる ...
  • llCollisionFilter
    llCollisionFilter llCollisionFilter(string name, key id, integer accept) 衝突判定にフィルターを設定する。 フィルターとは、特定のアバターやオブジェクトの衝突判定を有効にしたり無効にしたりすることを言う。 引数name及びidにはフィルター対象となるアバター/オブジェクトの名前/UUIDを指定する。 引数acceptがTRUEの場合は衝突判定を有効とし、FALSEの場合は無効とする。 以下のようにすると"Miz Cremorne"の衝突判定を無効とし、無敵状態にする。 llCollisionFilter("Miz Cremorne", "xxxx...xxxxx", FALSE); (注:UUIDは適当に書いてあるので実際に...
  • エラー対応
    エラーが出る原因と対処方法についてまとめてみました。 LSLに関わって発生するエラーには主に3種類あります。 コンパイルエラー(Compiler Errors) ランタイムエラー(Run-Time Errors) ビルドエラー(Build Errors) 以下にエラーの種類と原因、対処方法について書いていますので参考にしてみて下さい。 コンパイルエラーSyntax Error Type mismatch Function call mismatches type or number of arguments Name not defined within scope Name previously declared within scope Use of vector or quaternion method on incorrect type Lists can...
  • llGetObjectPermMask
    llGetObjectPermMask integer llGetObjectPermMask(integer mask) オブジェクトの権限を取得する。 引数maskには調べたい権限の対象者を指定する。 定数 値 説明 MASK_BASE 0 基本(現在のオーナーの権限に等しい) MASK_OWNER 1 現在のオーナーの権限 MASK_GROUP 2 グループの権限 MASK_EVERYONE 3 その他の人々の権限 MASK_NEXT 4 次のオーナーの権限 戻り値はビットフィールドになっているので、以下の定数と&演算を行って権限をチェックする。 定数 値(16進数) 値(整数値) 説明 PERM_ALL 0x7FFFFFFF 2147483647 Move/Modify/Copy/Transfer(フルパーミッション) P...
  • モジュール化
    はじめに スクリプトのサイズ モジュール化の概念 モジュール化の手法 ドア・システム・スクリプト基本的なモジュールslide door module standard door module door main module short touch module group touch module 拡張モジュールsensor module phantom door module モジュール化の効果 モジュール化のデメリット はじめに LSLでは巨大なプログラムを作ることができません。 というのも一つのLSLのサイズは16KByteまでという制限があるためです。 この制限は、スクリプトコードの本体のサイズだけでなく、スクリプトが動作したときのメモリを含めたサイズです。 スクリプトを正しく書いていても、サイズが大きくなって16KByteの制限を越えてしまうと、 「St...
  • インターフェース系
    インターフェース系 UI 関数・イベント名 区分 概要 定義 llDialog 関数 ダイアログを表示する[参考]初級lsl-8 llDialog(key id, string message, list buttons, integer chat_channel) llMapDestination 関数 マップに指定位置を表示する[参考]初級lsl-9 llMapDestination(string sim_name, vector position, vector lookat) llSetSitText 関数 パイメニューの「Sit」を他の文字列に変更する llSetSitText(string text) llSetText 関数 フロートテキストを設定する[参考]初級lsl-9 llSetText(string text, vector color, float al...
  • @wiki全体から「run_time_permissions」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

記事メニュー
目安箱バナー