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){
// 処理内容
}
});

