OpenSim 開発者フォーラム

OSSLのNPC関連のパーミッション

 
プロフィール写真2019-06
OSSLのNPC関連のパーミッション
by 堀田 海月 - Monday, 15 October 2018, 10:13 PM
 

最近のOpenSim公式の設定の場合、OSSLに関しては、config-includeフォルダ内のossEnable.iniを参照するように設定されています。

OpenSim.ini の1000行目辺り
[OSSL]
   ¦
Include-osslEnable = "config-include/osslEnable.ini"

osslEnable.iniを見ますと、NPC関連の関数の設定は、80行と82行あたりに1つづつ、125行あたりに2個、163行あたりに18個、251行あたりに1個見えます。
一番最後のAllow_osIsNpcに関してはコメント化されてますがデフォルトでtrueなので問題ないと思われます。

問題はそれ以外の部分です。

  Allow_osNpcSetProfileAbout =      ${XEngine|osslNPC}
  Allow_osNpcSetProfileImage =      ${XEngine|osslNPC}
    ¦
  Allow_osNpcCreate =               ${XEngine|osslNPC}
  Allow_osNpcGetPos =               ${XEngine|osslNPC}
  Allow_osNpcGetRot =               ${XEngine|osslNPC}
  Allow_osNpcLoadAppearance =       ${XEngine|osslNPC}
  Allow_osNpcMoveTo =               ${XEngine|osslNPC}
  Allow_osNpcMoveToTarget =         ${XEngine|osslNPC}
  Allow_osNpcPlayAnimation =        ${XEngine|osslNPC}
  Allow_osNpcRemove =               ${XEngine|osslNPC}
  Allow_osNpcSaveAppearance =       ${XEngine|osslNPC}
  Allow_osNpcSay =                  ${XEngine|osslNPC}
  Allow_osNpcSetRot =               ${XEngine|osslNPC}
  Allow_osNpcShout =                ${XEngine|osslNPC}
  Allow_osNpcSit =                  ${XEngine|osslNPC}
  Allow_osNpcStand =                ${XEngine|osslNPC}
  Allow_osNpcStopAnimation =        ${XEngine|osslNPC}
  Allow_osNpcStopMoveToTarget =     ${XEngine|osslNPC}
  Allow_osNpcTouch =                ${XEngine|osslNPC}
  Allow_osNpcWhisper =              ${XEngine|osslNPC}

デフォルトの値が全て${XEngine|osslNPC}になっています。
実はこの、osslNPCと言う変数、上の行に記述があります。

  ; parcel macros
  ; Allowing ossl functions for anyone owning a parcel can be dangerous especially if
  ;    a region is selling or otherwise giving away parcel ownership. By default, parcel
  ;    ownership or group membership does not enable OSSL functions. Uncomment the
  ;    appropriate line below to allow parcel ownership and groups to do restricted
  ;    OSSL functions. It might be better to check the list below and edit the ones
  ;    to enable individually.
  osslParcelO = ""
  osslParcelOG = ""
  ; osslParcelO = "PARCEL_OWNER,"
  ; osslParcelOG = "PARCEL_GROUP_MEMBER,PARCEL_OWNER,"

  ; NPC macros
  ; These can be mis-used so limit use to those you can trust.
  osslNPC = ${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNER

osslNPCの内容は、${XEngine|osslParcelOG}ESTATE_MANAGER,ESTATE_OWNERになってますので、基本的にSIMのオーナーか、エステートマネージャーのみ動かせるということになります。

あとは、osslParcelOGと言う変数ですが、これもすぐ上にありまが、デフォルトは空文字になってます(osslParcelOG = "")。
つまり、全体のフラグ値を通して、SIMオーナーか、エステートマネージャー以外NPCを扱えないという設定なんですね。

そこでせめて土地の所有者か、土地グループのメンバーだけでも動かせるようにしたいと思うのですが、先の変数の上の部分の説明書きに、

土地を所有している人のためにossl機能を許可すると、特にある地域が土地の所有権を売却している、あるいは他の方法で譲渡している場合に危険です。デフォルトでは、土地所有者または土地のグループメンバーはOSSL機能を有効にしません。土地の所有者とグループメンバーが制限されたOSSL機能を実行できるようにするには、以下の該当する行のコメントを外します。下のリストを確認し、個別に有効にするように編集する方が良いかもしれません。(日本語訳)

と書いてあるので、コメントを外してまとめて許可するのは危険ですので、NPCに関してのみを許可します。

osslParcelOGNPC = "PARCEL_GROUP_MEMBER,PARCEL_OWNER," ;この行を追加
osslNPC = ${XEngine|osslParcelOGNPC}ESTATE_MANAGER,ESTATE_OWNER ;osslPercelOGをosslPercelOGNPCに書き換える。