【Cluster】特定のアクセサリー着用時のみ入室させるサンプル

AccessoryPermission(Scriptable Item)

const posin = new Vector3(0, 0, 10); // 入室先位置情報
const accarr = ["アクセサリーID", "アクセサリーID", "アクセサリーID"]; // 入室可能なアクセサリーID

$.onInteract((playerHandle) => {

    let myaccarr = playerHandle.getAccessoryProductIds();
    let judge = false;
    for(let i = 0; i < accarr.length; i++){
      for(let j = 0; j < myaccarr.length; j++){
        if (myaccarr[j] === accarr[i]) {
          judge = true;
        }
      }
    }
    if(judge){
      playerHandle.setPosition(posin);
    }

});

以下はイベント開催時のみ判定を有効化する場合。

const posin = new Vector3(0, 0, 10); // 入室先位置情報
const accarr = ["アクセサリーID", "アクセサリーID", "アクセサリーID"]; // 入室可能なアクセサリーID

$.onInteract((playerHandle) => {

  // イベント時は判定あり入室
  if($.isEvent()){

    let myaccarr = playerHandle.getAccessoryProductIds();
    let judge = false;
    for(let i = 0; i < accarr.length; i++){
      for(let j = 0; j < myaccarr.length; j++){
        if (myaccarr[j] === accarr[i]) {
          judge = true;
        }
      }
    }
    if(judge){
      playerHandle.setPosition(posin);
    }

  // 通常時は判定なし入室
  } else {

      playerHandle.setPosition(posin);
 
  }

});

以下は移動でなく何らかの処理をさせる場合。

const accarr = ["アクセサリーID", "アクセサリーID", "アクセサリーID"]; // 入室可能なアクセサリーID

$.onInteract((playerHandle) => {

    let myaccarr = playerHandle.getAccessoryProductIds();
    let judge = false;
    for(let i = 0; i < accarr.length; i++){
      for(let j = 0; j < myaccarr.length; j++){
        if (myaccarr[j] === accarr[i]) {
          judge = true;
        }
      }
    }
    if(judge){
      // 処理内容
    }

});
タイトルとURLをコピーしました