모드 스크립트: 오브젝트

모드 스크립트 전반에 걸쳐 사용되는 객체에는 여러 가지 유형이 있습니다. 다음은 각 항목의 개요, 정의, 그리고 포함된 속성(기본값 포함)을 간략히 정리한 목록입니다. 일반적으로 언더스코어(_)로 시작하는 속성은 읽기 전용이며 변경할 수 없습니다. 객체의 속성에 접근할 때는 obj.get("property") 를 사용해야 하며, 새로운 값을 설정할 때는 obj.set("property", newvalue) 또는 obj.set({property: newvalue, property2: newvalue2})를 사용해야 합니다.

참고: 객체의 id 속성은 전역적으로 고유한 ID입니다. 서로 다른 유형의 객체 간을 막론하고, 두 객체가 동일한 id를 가질 수 없습니다. 또한, 객체의 id는 자주 참조되며 절대 변경되지 않기 때문에, 원한다면 obj.get("_id") 대신 obj.id를 사용하여 id에 접근할 수 있는 단축 방법이 있습니다(둘 다 작동합니다).

Mod Script 샌드박스 v1.5 전용입니다. 객체는 또한 obj.type을 지원하며, 이는 obj.get("type") 또는 obj.get("_type")과 동일합니다.

if ('graphic' === obj.type) {
  // 어떤 작업을 수행
}

Pathv2 (최신 VTT 엔진에서 이용 가능)

부동산 기본값 메모
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "pathv2" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_pageid 해당 객체가 속한 페이지의 ID. 읽기 전용.
형태 "" pol, free, eli, rec: 경로를 폴리라인, 자유형, 타원 또는 사각형으로 표시할지 여부를 결정합니다.
포인트 경로를 생성하는 데 사용되는 x,y 좌표점 배열을 포함하는 JSON 문자열.
채우다 "투명" 채우기 색상. " transparent "라는 문자열이나 16진수 색상 값(예: #000000)을 문자열로 사용하세요.
뇌졸중 #000000 선(테두리) 색상.
회전 0 회전(도).
레이어 "" 현재 레이어: gmlayer, objects, 맵, walls 또는 전경 중 하나. 벽 에 레이어된 줄무늬가 빛을 가린다.
스트로크_너비 5
y 0 경로 중심점의 Y좌표
x 0 경로 중심점의 X좌표
통제됨 "" 경로를 제어할 수 있는 플레이어 ID의 쉼표로 구분된 목록. 통제하는 플레이어는 경로를 삭제할 수 있습니다. 경로가 플레이어에 의해 생성된 경우, 해당 플레이어는 자동으로 목록에 포함됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 의미합니다.
배리어 타입 "벽" 동적 조명 배리어 유형 옵션으로는 wall, oneWay, transparent가 있습니다.
oneWayReversed 거짓 부울
겹침 시 페이드 참 이 속성이 true로 설정되어 있을 때, 객체 레이어 그래픽의 내부 경계와 전경 레이어 객체가 겹치면 해당 객체의 불투명도가 fadeOpacity에 지정된 값으로 변경됩니다. 값이 false일 경우, 겹침 여부와 관계없이 완전한 불투명도를 유지합니다.
fadeOpacity 0.3 이 값은 객체 레이어의 그래픽이 해당 객체와 겹칠 때 객체의 불투명도를 결정하며, fadeOnOverlap이 true로 설정된 경우
경관으로 렌더링 false 이 속성이 true일 경우, 이 오브젝트는 동적 조명과 숨김/표시 마스크에 의해 가려집니다.
상호작용 수동 재설정 false 이 값이 true로 설정되면 해당 객체에 대한 상호작용이 재설정됩니다.
상호작용으로 트리거됨 거짓 상호작용이 발생하면 true로 설정됩니다

shape 속성의 값은 다음과 같습니다:

  • pol- 폴리라인. 각 연속된 점 사이에 직선이 그려진다. 시작점과 끝점이 같으면 닫힌 도형이 만들어집니다.
  • free- 프리핸드. 곡선은 점들을 가이드로 사용하여 그려진다. 시작점과 끝점이 같으면 닫힌 도형이 만들어집니다.
  • eli - 타원. 타원은 경계 상자를 설정하는 점을 사용하여 그려집니다. 처음 두 항목만 사용됩니다.
  • rec - 직사각형. 점들을 사용하여 사각형을 그려 경계 상자를 설정합니다. 처음 두 항목만 사용됩니다.

points 속성은 점들의 배열을 포함하는 JSON 문자열입니다. 포인트는 x좌표와 y좌표를 가진 2차원 배열로 표현됩니다. (0,0)에서 (0,70)을 거쳐 (70,0)까지 이동한 후 다시 (0,0)으로 돌아오는 삼각형은 [[0,0],[0,70],[70,0],[0,0]]로 표현됩니다. x 및 y 속성은 페이지에서 PathV2 객체의 위치를 지정합니다. 그들은 도면의 중심이 어디에 위치해야 하는지 명시합니다. 일부 도형(타원과 직사각형)의 경우, 그건 꽤 쉽게 파악할 수 있습니다. 더 복잡한 도형(폴리라인 및 자유형)의 경우, ‘points’ 속성에서 최소값과 최대값을 찾아 그 두 값 사이의 등거리 지점을 사용해야 합니다.

Mod Script 샌드박스 v1.5 전용입니다. 인스턴스 메서드: toFront(), toBack(), toAbove(target), toBelow(target). 대상에는 그래픽, 텍스트, 경로, pathv2 객체 또는 해당 객체의 ID가 포함될 수 있습니다.

경로 (클래식 테이블탑)

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "경로" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_pageid 해당 객체가 속한 페이지의 ID. 읽기 전용.
_경로 그리기 명령으로 구성된 JSON 배열. 각 명령은 ["M", x, y] 또는 ["L", x, y] (이동 또는 선)이거나, 곡선의 경우 ["C", ...] 입니다. x와 y는 경로의 왼쪽 상단 모서리를 기준으로 한 오프셋입니다. 생성 시 경로를 전달합니다. 그 후에는 읽기 전용입니다.
채우다 "투명" 채우기 색상. " transparent " 문자열을 사용하거나, #000000과 같은 16진수 색상 코드를 문자열로 사용하세요.
뇌졸중 #000000 선(테두리) 색상.
회전 0 회전(도).
레이어 "" 현재 레이어: gmlayer, objects, 맵, walls 또는 foreground 중 하나. 벽에 레이어된 선들이 빛을 가린다.
스트로크_너비 5
가로 0
높이 0
상단 0 경로 중심의 Y좌표
좌측 0 경로 중심점의 X좌표
scaleX 1
scaleY 1
통제됨 "" 경로를 제어할 수 있는 플레이어 ID의 쉼표로 구분된 목록. 통제하는 플레이어는 경로를 삭제할 수 있습니다. 경로가 플레이어에 의해 생성된 경우, 해당 플레이어는 자동으로 목록에 포함됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있는 것으로 나타냅니다.
배리어 타입 "벽" 동적 조명 배리어 유형 옵션으로는 wall, oneWay, transparent가 있습니다.
oneWayReversed 거짓 부울
겹침 시 페이드 참 이 속성이 true로 설정된 경우, 객체 레이어 그래픽의 내부 경계와 전경 레이어 객체가 겹치면 해당 객체의 불투명도가 fadeOpacity에 지정된 값으로 변경됩니다. 값이 false일 경우, 겹침 여부와 관계없이 완전한 불투명도를 유지합니다.
fadeOpacity 0.3 이 값은 객체 레이어의 그래픽이 해당 객체와 겹칠 때 객체의 불투명도를 결정하며, fadeOnOverlap이 true로 설정된 경우입니다.
경관으로 렌더링 거짓 이 속성이 true일 경우, 이 오브젝트는 동적 조명과 숨김/표시 마스크에 의해 가려집니다.
상호작용 수동 재설정 거짓 이 값이 true로 설정되면 해당 객체에 대한 상호작용이 재설정됩니다.
상호작용으로 트리거됨 거짓 상호작용이 발생하면 true로 설정됩니다

클래식 경로를 생성할 때 경로 ( _path로 저장됨) 를 전달합니다. 이 형식에 대한 설명은 위의 _path 행에 나와 있습니다.

Mod Script 샌드박스 v1.5 전용입니다. 인스턴스 메서드: toFront(), toBack(), toAbove(target), toBelow(target). 대상에는 그래픽, 텍스트, 경로, pathv2 객체 또는 해당 객체의 ID가 포함될 수 있습니다.

창문

참고: 창문과 문은 다른 유형의 객체와 비교하여 반전된 축을 사용합니다. 예를 들어, 다른 객체에 대해 100인 상단 변수는 창문이나 문에 대해서는 y -100이 됩니다.

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "창문" 읽기 전용.
_pageid 이 창이 속한 페이지. 생성 시 pageid를 전달하십시오. 그 후에는 읽기 전용으로 전환됩니다.
색상 "#ff0000" 창의 16진수 색상.
x 0 창의 중심을 x축에 맞춥니다.
y 0 창의 중심을 y축에 맞춥니다.
isOpen 거짓 플레이어가 이 창을 통과할 수 있는지 여부를 결정합니다.
isLocked 거짓 플레이어가 창과 상호작용하는 것을 방지합니다.
경로 handle0 과 handle1이라는 두 개의 핸들이 있으며, 각 핸들에는 x 와 y가 있습니다. 해당 좌표는 이 객체의x/y 좌표에서 변환된 값이며, y축이 반전된 동일한 좌표계에서 표시됩니다.

예시

on('채팅:message', function(msg) {
  if (msg.type === 'api' && msg.content === '!cw') {
    const currentPageID = Campaign().get('playerpageid');
    const win = createObj('window', {
      x: 70,
      y: -70,
      pageid: currentPageID,
      path: {
        handle0: {
          x: -70,
          y: 0,
        },
        handle1: {
          x: 35,
          y: 0,
        },
      },
      color: '#000000'
    });
  }
  if (msg.type === 'api' && msg.content === '!mw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.set({
      x: 240,
      y: -139
    });
  }
  if (msg.type === 'api' && msg.content === '!dw') {
    const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
    win.remove();
  }
});

문

참고: 창문과 문은 다른 유형의 객체에 비해 축이 반대로 배치되어 있습니다. 예를 들어, 다른 객체에서는 100이 되는 ‘top’ 변수는 창문이나 문에서는 y -100이 됩니다.

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "문" 읽기 전용.
_pageid 이 문이 속한 페이지. 생성 시 pageid를 전달하십시오. 그 후에는 읽기 전용으로 전환됩니다.
색상 "" 문의 16진수 색상.
x 0 문의 중심점을 x축에 맞춰 조정하십시오.
y 0 문의 y축 중심을 조정하십시오.
isOpen 거짓 플레이어가 이 문을 통과할 수 있는지 여부를 결정합니다.
isLocked 거짓 플레이어가 문과 상호작용하는 것을 방지합니다.
비밀 여부 거짓 플레이어 시야에서 문 아이콘을 제거하고 장벽 역할을 합니다.
경로 handle0 과 handle1이라는 두 개의 핸들이 있으며, 각 핸들에는 x 와 y가 있습니다. 해당 좌표는 이 객체의x/y 좌표로부터의 오프셋이며, y축이 반전된 동일한 좌표계를 따릅니다.

문자 입력

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "문자 입력" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_pageid 해당 객체가 속한 페이지의 ID. 읽기 전용.
상단 0
좌측 0
가로 0
높이 0
문자 입력 ""
글자 크기 16 최상의 결과를 얻으려면 편집 메뉴의 사전 설정 크기(8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300)를 사용하십시오.
회전 0
색상 rgb(0, 0, 0)
뇌졸중 "투명"
폰트 패밀리 "Arial" 이 설정이 되어 있지 않으면, 나중에 text 속성의 값을 변경할 때 font_size가 8로 줄어듭니다. 사용 가능한 값(대소문자 구분 없음): Arial, Patrick Hand, Contrail One, Shadows Into Light, Candal. 잘못된 이름을 지정하면 이름이 지정되지 않은 고정폭 세리프 글꼴이 사용됩니다.
레이어 "" 현재 레이어: gmlayer, objects, 맵, walls 또는 foreground 중 하나.
통제됨 "" 텍스트를 제어할 수 있는 플레이어 ID의 쉼표로 구분된 목록. 제어하는 플레이어는 텍스트를 삭제할 수 있습니다. 텍스트가 플레이어에 의해 생성된 경우, 해당 플레이어는 자동으로 목록에 포함됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 나타냅니다.
겹침 시 페이드 참 이 속성이 true로 설정된 경우, 오브젝트 레이어 그래픽의 내부 경계와 전경 레이어 오브젝트가 겹치면 해당 그래픽의 불투명도가 fadeOpacity에 지정된 값으로 변경됩니다. 값이 false일 경우, 겹침 여부와 관계없이 완전한 불투명도를 유지합니다.
fadeOpacity 0.3 이 값은 객체 레이어의 그래픽이 해당 객체와 겹칠 때 객체의 불투명도를 결정하며, fadeOnOverlap이 true로 설정된 경우
경관으로 렌더링 거짓 이 속성이 true일 경우, 이 오브젝트는 동적 조명과 숨김/표시 마스크에 의해 가려집니다.
상호작용 수동 재설정 거짓 이 값이 true로 설정되면 해당 객체에 대한 상호작용이 재설정됩니다.
상호작용으로 트리거됨 거짓 상호작용이 발생하면 true로 설정됩니다

Mod Script 샌드박스 v1.5 전용입니다. 인스턴스 메서드: toFront(), toBack(), toAbove(target), toBelow(target). 대상에는 그래픽, 텍스트, 경로, pathv2 객체 또는 해당 객체의 ID가 포함될 수 있습니다.

핀

'pin' 객체는 맵에 직접 표시되는 대화형 마커인 '맵 핀'을 나타냅니다. 핀은 이미지를 표시하고, 툴팁을 보여주며, GM 메모를 포함할 수 있으며, 저널의 핸드아웃과 연결될 수 있습니다. 그것들은 보이거나 숨겨질 수 있어 극적인 공개를 가능하게 하거나, 발견된 장소를 밝히는 역할을 할 수 있으며, 더 상호작용적인 플레이를 위한 정보 표시기로 사용될 수도 있습니다. 핀에 대한 추가 정보는 고객 지원 센터에서 확인할 수 있습니다.

부동산 기본값 참고
_id 다른 Roll20 객체와 마찬가지로 고유한 ID를 가집니다. 읽기 전용.
_type 핀 핀의 유형. 읽기 전용.
_pageid "" 이 핀이 속한 페이지의 ID입니다. 읽기 전용.
x 0 페이지 상의 핀의 X 좌표.
y 0 페이지 상의 핀의 Y 좌표.
bgColor #242424 핀 배경색(16진수 또는 투명). #RRGGBB 또는 #RRGGBBAA(반투명) 형식의 HTML 색상 문자열을 지원합니다.
형태 "눈물방울" 핀 모양. 유효한 값은 물방울, 원, 다이아몬드, 정사각형입니다.
아이콘 "베이스-닷" customizationType이 icon일 때 표시되는 기본 아이콘
핀 이미지 "" customizationType이 image일 때 표시되는 이미지 URL
사용자 정의 유형 "아이콘" 핀에 아이콘을 표시할지, 아니면 핀 이미지를 표시할지 여부를 결정합니다. customizationType: image를 사용할 때는 pinImage 에 유효한 이미지 URL을 지정해야 합니다. customizationType을 아이콘 과 이미지 간에 전환해도 pinImage는 지워지지 않으며, URL은 그대로 유지됩니다.
useTextIcon 거짓 useTextIcon이 true인 경우, 핀에는 아이콘이나 이미지 대신 텍스트 레이블이 표시됩니다. 해당 레이블은 iconText에서 가져온 것이며, 처음 3개의 캐릭터만 표시됩니다.
아이콘 텍스트 "" useTextIcon이 true일 때 표시되는 텍스트 레이블 (첫 3 캐릭터만 사용됨)
도구 설명 이미지 크기 "중형" 핀의 툴팁에 표시되는 이미지의 크기. 유효한 값은 small, medium, large, xl입니다 .
링크 "" 이 핀이 연결된 핸드아웃의 ID입니다. linkType은 핸드아웃 또는 ""만 허용합니다.
링크 유형 "" 연결된 객체의 유형. 유효한 값: 핸드아웃, "" (빈 문자열).
subLink "" 링크된 핸드아웃에서 스크롤하여 이동해야 할 헤더 텍스트. subLinkType (headerPlayer 또는 headerGM)과 함께 사용됩니다.
subLinkType "" 하위 링크의 유형. 유효한 값: headerPlayer, headerGM, "" (빈 문자열).
제목 "" 핀에 표시된 제목 텍스트.
참고 "" 일반 문자열. 캐릭터 필드나 핸드아웃 블롭 필드 중 어느 것도 아닙니다.
gmNotes "" 일반 문자열, GM 전용. 캐릭터 필드나 핸드아웃 블롭 필드 중 어느 것도 아닙니다.
도구 설명 이미지 "" 핀에 표시되는 툴팁 이미지의 Roll20 이미지 식별자
visibleTo "" 'all'은 모든 사람에게 핀을 보여줍니다. ""는 이를 플레이어에게 숨깁니다.
autoNotesType "" 자동 생성 노트의 형식. 유효한 값: "" (빈 문자열), blockquote.
도구 설명 표시 대상 "모두" 툴팁을 볼 수 있는 사용자를 제어합니다. 유효한 값: all, "" (빈 문자열).
도구 설명 제목 표시 대상 "모두" 툴팁 제목을 볼 수 있는 사용자를 제어합니다. 유효한 값: all, "" (빈 문자열).
nameplateVisibleTo "모두" 이름표 표시 대상자를 제어합니다. 유효한 값: all, "" (빈 문자열).
imageVisibleTo "모두" 이미지를 볼 수 있는 사람을 제어합니다. 유효한 값: all, "" (빈 문자열).
notesVisibleTo "모두" 누가 노트를 볼 수 있는지 제어합니다. 유효한 값: all, "" (빈 문자열).
gmNotesVisibleTo "모두" GM 메모를 볼 수 있는 사람을 제어합니다. 유효한 값: all, "" (빈 문자열).
축척 1.0 핀의 크기 조정 계수. 0.25과 2.0 사이여야 합니다.
이미지디싱크드 거짓 핀의 이미지가 연결된 개체와 동기화되지 않았는지 여부. 동기화되지 않은 속성을 설정하면 세 가지 모두 동일한 값으로 설정됩니다.
notesDesynced 거짓 핀의 메모가 연결된 개체와 동기화되지 않았는지 여부. 동기화되지 않은 속성을 설정하면 세 가지 모두 동일한 값으로 설정됩니다.
gmNotesDesynced 거짓 해당 핀의 GM 메모가 연결된 객체와 동기화되지 않았는지 여부. 동기화되지 않은 속성을 설정하면 세 가지 모두 동일한 값으로 설정됩니다.

참고 1: 핀에 사용자 정의 콘텐츠를 사용하려는 경우(핸드아웃의 이미지, 메모 및 GM 메모를 덮어쓰기 위해), 동기화되지 않은 속성 중 적어도 하나를 ‘true’로 설정해야 합니다(이렇게 하면 모든 속성이 설정됩니다).

참고 2: 유효한 아이콘 값: base-dot, base-castle, base-skullSimple, base-spartanHelm, base-radioactive, base-heart, base-star, base-starSign, base-pin, base-speechBubble, base-file, base-plus, base-circleCross, base-dartBoard, base-badge, base-flagPin, base-crosshair, base-scrollOpen, base-diamond, base-photo, base-fourStarShort, base-circleStar, base-lock, base-crown, base-leaf, base-signpost, base-beer, base-compass, base-video, 기본-열쇠, 기본-상자, 기본-마을, 기본-검(위쪽), 기본-집, 기본-집2, 기본-교회, 기본-정부, 기본-대장간, 기본-마굿간, 기본-기어, 기본-다리, 기본-산, 기본-감탄, 기본-질문.

그래픽 (토큰/맵/카드/기타)

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "그래픽" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_하위 유형 "토큰" 토큰 (토큰 및 맵), 카드, 또는 주사위 토큰일 수 있습니다. 읽기 전용.
_cardid 그래픽이 카드인 경우 ID로 설정합니다. 읽기 전용.
_pageid 해당 객체가 속한 페이지의 ID. 읽기 전용.
이미지 소스 그래픽 이미지의 URL입니다. 아래의 imgsrc 및 아바타 제한 사항에 대한 참고 사항을 확인해 주세요.
bar1_link 바 1이 캐릭터와 연결된 경우 ID로 설정합니다.
bar2_link
bar3_link
bar4_link
대표한다 이 토큰이 나타내는 캐릭터의 ID입니다.
좌측 0 맵의 왼쪽 가장자리부터 그래픽의 중심까지의 픽셀 수.
상단 0 맵 상단 가장자리부터 그래픽 중심까지의 픽셀 수.
가로 0 그래픽의 너비(픽셀 단위).
높이 0 그래픽의 높이(픽셀 단위).
회전 0 토큰의 방향을 도(°) 단위로 표시합니다.
레이어 "" 현재 레이어( gmlayer, objects, 맵, walls 또는 전경 중 하나).
그리다 거짓 이 속성은 고급 컨텍스트 메뉴에서 변경됩니다.
자동 정렬 비활성화 거짓 그래픽 격자 정렬 기능을 비활성화합니다.
토큰 메뉴 비활성화 거짓 그래픽 토큰 메뉴 설정(토큰 버블 및 라디얼 메뉴) 비활성화
flipv 거짓 세로로 뒤집기.
플립 거짓 가로로 뒤집기.
이름 "" 토큰의 이름.
gmnotes "" GM 전용 메모. 동기식 문자열로, 대개 URL 인코딩된 HTML입니다( %3Cp%3E 등으로 시작할 수 있습니다). 이 필드는 캐릭터나 핸드아웃용 블롭 필드가 아닙니다.
통제됨 "" 그래픽을 제어할 수 있는 플레이어 ID의 쉼표로 구분된 목록. 제어하는 플레이어는 그래픽을 삭제할 수 있습니다. 해당 그래픽이 플레이어에 의해 생성된 경우, 해당 플레이어는 자동으로 목록에 포함됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 나타냅니다.
bar1_값 "" 현재 바 1의 값. 이것은 숫자나 텍스트일 수 있습니다.
bar2_값 ""
bar3_값 ""
bar4_값 ""
bar1_최대값 "" 바 1의 최대값. _value와 _max가 모두 설정된 경우, 토큰 위에 표시되는 막대는 Bar 1의 백분율을 나타낼 수 있습니다.
bar2_max ""
bar3_최대값 ""
bar4_max ""
오라1_반경 "" 페이지 설정에서 지정된 단위를 기준으로 한 오라의 반경. 정수 또는 부동 소수점 숫자일 수 있습니다. 오라를 지우려면 빈 문자열로 설정하십시오.
오라2_반경 ""
오라1_컬러 #FFFF99 오라의 16진수 색상.
오라2_컬러 #59E594
오라1_옵션 "원" 오라의 형태를 설정합니다. 유효한 옵션은 circle 또는 square 입니다. 참고: 다음 항목과 동기화됨 aura1_square와 동기화됨
오라2_옵션 "원" 오라의 형태를 설정합니다. 유효한 옵션은 원 또는 사각형입니다. 참고: 다음 항목과 동기화되어 있습니다. aura2_square와 동기화되어 있습니다
오라1_사각형 거짓 오라는 원인가 사각형인가?
오라2_스퀘어 거짓
색조 색상 "투명" 16진수 색상 또는 투명. 그래픽의 색상을 채색합니다.
상태 표시기 "" 현재 활성화된 상태 표시기의 쉼표로 구분된 목록입니다. 사용자 정의 마커는 Campaign의 _token_markers에 있는 name::id 태그를 사용합니다. 아래의 참고 사항을 확인해 주세요.
표시된 이름 거짓 토큰의 이름표가 표시되는지 여부.
출연진 이름 거짓 모든 플레이어에게 이름표를 보여주세요.
showplayers_bar1 거짓 모든 플레이어에게 바 1을 표시합니다.
showplayers_bar2 거짓
showplayers_bar3 거짓
showplayers_bar4 false
쇼플레이어_오라1 거짓 모든 플레이어에게 오라 1을 보여줍니다.
쇼플레이어_오라2 거짓
플레이어편집_이름 참 제어하는 플레이어가 토큰의 이름을 수정할 수 있도록 허용합니다. 또한 showplayers_name이 false인 경우에도 제어 중인 플레이어에게 이름표를 표시합니다.
플레이어편집_바1 참 조종하는 플레이어가 토큰의 ‘바 1’을 수정할 수 있도록 허용합니다. showplayers_bar1이 false인 경우에도 제어 중인 플레이어에게 1번 바를 표시합니다.
플레이어편집_바2 참
플레이어편집_바3 참
playersedit_bar4 참
bar1_권한 수 "" bar1 오버레이의 표시 방식을 설정합니다. 유효한 값: everyone, hidden. ""는 편집자만 해당 값을 볼 수 있음을 의미합니다
bar2_권한_개수 ""
bar3_권한 수 ""
bar4_권한_수 ""
플레이어 에디트 오라1 참 조종하는 플레이어가 토큰의 오라 1을 수정할 수 있도록 허용합니다. showplayers_aura1이 false로 설정되어 있더라도, 제어 중인 플레이어에게는 Aura 1이 표시됩니다.
플레이어 에디트 오라2 참
빛 반경 "" 사용 중단된 구버전 동적 조명: 밝은 빛의 반경. bright_light_distance를 참조하십시오.
빛_조명_반경 "" 사용 중단된 구버전 동적 조명: 약한 빛 반경의 시작점. light_dimradius가 빈 문자열인 경우, 해당 토큰은 light_radius 거리까지 밝은 빛을 발산합니다. light_dimradius에 값이 지정된 경우, 토큰은 light_dimradius 값까지 밝은 빛을 발산하고, 그 지점부터 light_radius 값까지 약한 빛을 발산합니다. ‘동적 조명’ 문서의 ‘low_light_distance’ 항목을 참조하십시오.
다른 플레이어 조명 거짓 사용 중단된 구버전 동적 조명: 이 토큰의 빛을 모든 플레이어에게 표시합니다. 이것은 has_night_vision이 아닙니다.
빛_해시사이트 false 사용 중단된 구버전 동적 조명: 이 조명은 ‘시야 적용’ 규칙에 따라 제어하는 플레이어에게 시야를 제공합니다. has_bright_light_vision 항목을 참조하십시오.
빛_각도 "360" 사용 중단된 구버전 동적 조명: 각도(도). 180은 경기장 앞쪽 절반에 걸쳐 조명을 비춥니다. has_directional_bright_light, directional_bright_light_center 및 directional_bright_light_total을 참조하십시오.
빛_로스앤젤레스 "360" 사용 중단된 구버전 동적 조명: 그래픽의 시야각(도 단위)( light_hassight가 true로 설정된 경우). 동적 조명 문서의 has_limit_field_of_vision, limit_field_of_vision_center, limit_field_of_vision_total 항목을 참조하십시오.
측면 "" 파이프(|)로 구분된 측면 이미지 목록. 각 항목은 URL 인코딩 처리되어 있습니다. |에서 분할한 다음, decodeURIComponent를 사용하여 디코딩합니다.
currentSide 0 양쪽으로 찢어 넣으세요. Mod Script 샌드박스 v1.5 전용입니다. currentSide를 설정하면 마켓 이미지를 포함하여 imgsrc가 자동으로 업데이트됩니다. 동일한 .set() 에 유효한 imgsrc가 포함되어 있는 경우, 대신 해당 imgsrc가 사용됩니다.
마지막 수 "" 토큰의 마지막 이동. 이것은 쉼표로 구분된 좌표 목록입니다. 예를 들어, “300,400”은 토큰이 좌측=300, 상단=400 위치에서 마지막 이동을 시작했음을 의미합니다. 토큰의 현재 상단 및 좌측 값은 항상 마지막 이동의 “종착점”으로 간주됩니다. 경유지는 여러 세트의 좌표로 표시됩니다. 예를 들어, “300,400,350,450,400,500”은 토큰이 left=300, top=400에서 시작하여, left=350, top=450에 웨이포인트를 하나 설정하고, left=400, top=500에 또 다른 웨이포인트를 설정한 뒤, 현재 top + left 좌표에서 이동을 완료했음을 나타냅니다.
빛_배율 "1" 사용 중단된 구버전 동적 조명 배율. 1은 정상 시력입니다. 현재의 동적 조명 기능은 light_sensitivity_multiplier를 사용하며, 여기서 100이 기본값입니다.
adv_fow_시야 거리 "" 토큰 주변에서 고급 전장의 안개가 드러나는 반경.
광감도 배율 100 광원의 효율성에 대한 증폭계수. 200의 배율은 동일한 광원을 사용할 때 100의 배율을 가진 토큰보다 두 배 멀리 볼 수 있게 합니다.
야간 투시 효과 null 야간 투시 효과. null은 표준 효과입니다. 그 밖의 설정으로는 ‘조명 조절 ’과 ‘야간 모드’가 있습니다.
바 위치 null 토큰 바가 있는 곳. null은 기본 배치 위치입니다. 기타 값: overlap_top, overlap_bottom, bottom.
compact_bar null 바 스타일. null이 기본값입니다. compact는 compact 바를 사용합니다.
잠금 동작 거짓 그래픽을 고정하는 옵션. 부울 참 또는 거짓 값
겹침 시 페이드 참 이 속성이 true로 설정된 경우, 객체 레이어 그래픽의 내부 경계와 전경 레이어 객체가 겹치면 해당 객체의 불투명도가 fadeOpacity에 지정된 값으로 변경됩니다. false인 경우, 겹침 여부와 관계없이 설정된 baseOpacity 값을 유지합니다.
fadeOpacity .3 이 값은 객체 레이어의 그래픽이 해당 객체와 겹칠 때 객체의 불투명도를 결정하며, fadeOnOverlap이 true로 설정된 경우
경관으로 렌더링 거짓 이 속성이 true일 경우, 이 오브젝트는 동적 조명과 숨김/표시 마스크에 의해 가려집니다.
베이스 불투명도 1.0 모든 레이어에서 그래픽의 초기 불투명도.
상호작용 수동 재설정 거짓 이 값이 true로 설정되면 해당 객체에 대한 상호작용이 재설정됩니다.
상호작용으로 트리거됨 거짓 상호작용이 발생하면 true로 설정됩니다

현재의 동적 조명 속성(위의 구버전 light_* 필드 외에):

부동산 기본값
has_bright_light_vision 거짓
야간 시야 기능 거짓
야간 시야용 틴트 null
야간 시야 거리 0
밝은 빛을 내뿜는다 거짓
밝은 빛의 거리 0
저조도_방출 거짓
저조도 거리 0
dim_light_opacity 0
lightColor "투명한"
시야 제한 필드 여부 거짓
시야 중심 제한 0
전체 시야각 제한 0
야간 투시 기능의 제한 필드가 있는지 거짓
야간 투시경 중심 영역 제한 0
야간 투시경 시야 범위(총합) 0
has_directional_bright_light 거짓
방향성_밝은_빛_중앙 0
방향성_강광_합계 0
has_directional_dim_light 거짓
방향성_저조도_중앙 0
방향성_차원_조명_합계 0
툴팁 ""
show_tooltip 거짓
gm_only_tooltip 거짓
renderAsDarkness 거짓

Mod Script 샌드박스 v1.5 전용입니다. currentSide를 설정하면 imgsrc가 자동으로 업데이트됩니다:

const setRandomSide = (obj) => {
  if ('graphic' === obj.type) {
    obj.set({
      currentSide: randomInteger(obj.get('sides')?.split('|').length ?? 1) - 1
    });
  }
};

Mod Script 샌드박스 v1.5 전용입니다. 그래프에 표시된 방법:

  • createCopy(properties) — createObj와 동일한 방식으로 복사하며, 마켓의imgsrc/sides도 포함합니다. 새로운 그래픽을 반환합니다.
  • toFront(), toBack(), toAbove(target), toBelow(target) — 전역 함수와 동일합니다. 대상에는 객체나 ID가 될 수 있습니다.
obj.createCopy({ pageid, 레이어, left: x, top: y });

토큰 마커 예시

게임 전체에서 사용할 수 있는 마커 목록은 Campaign().get('_token_markers')입니다. 각 항목은 다음과 같은 형식입니다:

{
  "id":59, //
  의 데이터베이스 ID   "name":"Bane", // 마커의 이름 (고유하지 않음)
  "tag":"Bane::59", // 토큰이 실제로 참조되는 방식
  // 여기에는 사용자 정의 마커의 ID는 포함되지만,
  // 기본 마커의 ID는 포함되지 않습니다.
  "url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
  // ^토큰 마커 이미지의 URL
}

연결된 캐릭터 및 토큰에 관한 중요 사항: 캐릭터에 연결된 토큰의 경우, 토큰의 ` controlledby ` 필드는 해당 캐릭터의 ` controlledby ` 필드에 의해 재정의된다는 점에 유의하십시오. 토큰이 속성(예:bar1_link가 설정된 경우)에 연결된 토큰 바(예:bar1_value 및 bar1_max)의 경우, 바에 값을 설정하면 해당 속성의 현재값 및/또는 최대값도 자동으로 업데이트되므로, 두 값을 모두 수동으로 설정할 필요가 없습니다. 또한, 게임 내에서 속성(또는 토큰 바)이 수정되면 change:attribute (및 속성별 이벤트, 예:change:attribute:current) 이벤트가 발생하고, 그 다음에 change:graphic (및 change:graphic:bar1_value) 이벤트가 발생합니다. 두 이벤트 중 하나에 응답하도록 선택할 수 있지만, 속성 이벤트가 먼저 발생하기 때문에 속성 이벤트가 발생할 때 기본 바 값은 아직 업데이트되지 않습니다.

상태 표시기에 관한 중요 안내 2013년 8월 6일부터 토큰의 상태 표시기 처리 방식이 변경되었습니다. Graphic 객체의 statusmarkers 속성은 이제 토큰에서 활성화되어야 하는 모든 상태 마커 색상/아이콘을 쉼표로 구분한 목록으로 구성됩니다. 형식은 다음과 같습니다:

//쉼표로 구분된 (조인을 사용하여 생성하거나 분할을 사용하여 배열로 변환).
//상태 아이콘/색상 뒤에 “@” 기호가 따라오면, “
” 뒤의 숫자 //“@”는 아이콘의 배지로 표시됩니다.
statusmarkers = "red,blue,skull,dead,brown@2,green@6"

statusmarkers 속성에 직접 접근할 수는 있지만, 기존 스크립트와의 하위 호환성을 유지하고, 문자열을 직접 분할하거나 파싱하는 코드를 작성하지 않고도 상태 마커를 손쉽게 다룰 수 있도록 하기 위해, 상태 마커를 처리하는 데 사용할 수 있는 설정 및 조회 가능한 가상 속성 세트를 객체에 제공해 드립니다. 각 상태 마커에는 status_<markername> 속성이 있습니다. 예를 들어:

obj.get("status_red"); // 마커가 활성화되지 않은 경우 false를 반환하고, 활성화된 경우 true를 반환하며, 마커에 현재 배지가 설정된 경우 문자열(예: "2" 또는 "5")을 반환합니다.
obj.get('status_bluemarker'); //하위 호환성을 위해 여전히 지원되며, obj.get("status_blue");와 동일합니다.
obj.set("status_red", false); //마커를 제거합니다.
obj.set("status_skull", "2"); //해골 아이콘에 "2" 배지를 설정하고, 아직 활성화되지 않았다면 토큰에 추가합니다.

이러한 가상 속성에는 이벤트가 없으므로, 토큰의 상태 표시기 변경 사항을 감지하려면 change:graphic:statusmarkers를 사용해야 합니다. 예를 들어, change:graphic:status_red는 유효한 이벤트가 아니며 절대 발생하지 않습니다. 사용 가능한 상태 마커의 전체 목록(마커 트레이에 표시되는 순서와 동일):

"빨강", "파랑", "초록", "갈색", "보라", "분홍", "노랑", "죽음", "해골", "졸음", "반쪽 심장", "반쪽 안개", "금지", "달팽이", "번개 나선", "스패너", "사슬에 묶인 심장", "화학 볼트", "죽음의 구역", "마셔라", "가장자리 균열", "닌자 가면", "스톱워치", "어망", "오버드라이브", "강함", "주먹", "자물쇠", "세잎", "푹신한 날개", "구타당한", "발자국", "화살 맞은", "오라", "허리 통증", "검은 깃발", "피 흘리는 눈", "볼트 방패", "부서진 심장", "거미줄", "부서진 방패", "날아가는 깃발", "방사능", "트로피", "부서진 두개골", "얼어붙은 구슬", "구르는 폭탄", "하얀 탑", "잡기", "비명", "수류탄", "초소 총", "모두를 위한 하나", "천사 복장", "양궁 표적"

페이지

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "페이지" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_zorder "" 페이지에서 객체의 정렬 순서를 지정하는 ID의 쉼표로 구분된 목록. 저장된 문자열에는 종종 끝에 쉼표가 붙어 있으므로, 이를 분할할 때는 빈 세그먼트를 제거하십시오. toFront 와 toBack은 이 목록을 다시 작성합니다. 읽기 전용.
이름 "" 페이지 제목.
showgrid 참 맵에 격자를 표시하세요.
어둠을 보여줘 거짓 맵에 전장의 안개를 표시합니다.
쇼 조명 거짓 사용 중단된 구버전 동적 조명: 동적 조명을 사용하려면 동적 조명 문서의 ` dynamic_lighting_enabled ` 항목을 참조하십시오.
가로 25 단위에서의 너비.
높이 25 단위에서의 높이.
스냅 증가량 1 격자 공간의 크기(단위).
그리드 불투명도 0.5 격자선의 불투명도.
안개_투명도 0.35 GM의 전장의 안개 불투명도
배경색 "#ffffff" 맵 배경의 16진수 색상. 소문자로 저장됨.
그리드 색상 #C0C0C0 격자의 16진수 색상.
그리드_타입 "정사각형" 정사각형, 육각형 (Hex V), 육각형 (Hex H), 이등변형 또는 등변형 중 하나.
규모 번호 5 1 단위의 거리.
스케일 단위 "ft" 척도에 사용할 단위 유형.
그리드 레이블 거짓 육각형 격자에 격자 레이블 표시
대각선 유형 "포어" 네 가지 중 하나, 즉 피타고라스 (유클리드), 쓰리파이브, 또는 맨해튼.
보관됨 false 해당 페이지가 아카이브 저장소로 이동되었는지 여부.
라이트업데이트드롭 거짓 오브젝트가 드롭될 때만 업데이트된 동적 조명을 업데이트하십시오.
라이트엔포스로스 거짓 사용 중단된 구버전 동적 조명: 오브젝트에 대해 시야(LoS)를 강제 적용합니다.
빛제한이동 거짓 시야를 가진 오브젝트가 동적 조명 벽을 통과하지 못하도록 하세요.
라이트글로벌일루미네이션 거짓 사용 중단된 구버전 동적 조명: 토큰이 “볼 수 있는” 곳 어디에서든 이 값이 true인 경우, 그곳에 밝은 빛이 있는 것으로 간주됩니다. ‘동적 조명’ 문서의 daylight_mode_enabled 항목을 참조하십시오.
adv_fow_enabled 거짓 사용 중단된 구버전 고급 전장의 안개.
adv_fow_dim_reveals 거짓 사용 중단된 구버전 고급 전장의 안개 효과: 약한 빛이 안개를 드러냅니다.
adv_fow_show_grid 거짓 사용 중단됨: 구버전 고급 전장의 안개: 안개 속에서도 격자선을 표시합니다.
grid_offset_x 0 수평 격자 오프셋.
grid_offset_y 0 수직 격자 오프셋.
force_lighting_refresh null 동적 조명 갱신을 요청하도록 설정되었습니다. 기본값은 부울 값이 아니라 null입니다.
쥬크박스 트리거 null 페이지 진입 시 재생. 옵션으로는 ‘없음’, ‘중지’, ‘모두’ 또는 트랙 ID가 있습니다.
동적 조명 활성화됨 거짓 동적 조명 사용
daylight_mode_enabled 거짓 일광 모드 사용
daylightModeOpacity 1 일광 모드에서 빛의 밝기를 설정합니다
탐색기 모드 "꺼짐" 옵션: 끄기, 기본
어둠 효과 "없음" 옵션: 없음, 다크포그, 라이트포그
_배치 0 Mod Script 샌드박스 v1.5 전용입니다. 페이지 메뉴의 정렬 기준. 기존 페이지에서는 스파스 값(예: 2000)이 사용됩니다. 이 숫자 순으로 정렬하십시오. 배열 인덱스로는 사용하지 마십시오. 배치 메서드를 통하지 않는 한 읽기 전용입니다.
_경로 "," Mod Script 샌드박스 v1.5 전용입니다. 쉼표로 구분된 페이지 폴더 ID. 값은 보통 쉼표로 시작하며, 끝에 쉼표가 하나 더 붙을 수도 있습니다. 분할할 때 빈 세그먼트는 제거합니다. 배치 메서드를 통하지 않는 한 읽기 전용입니다.
_wrapperAutoColor #ffffff Mod Script 샌드박스 v1.5 전용입니다. 계산된 래퍼 색상. 읽기 전용.
useAutoWrapper 참 Mod Script 샌드박스 v1.5 전용입니다. true인 경우 _wrapperAutoColor를 사용합니다.
wrapperColor null Mod Script 샌드박스 v1.5 전용입니다. useAutoWrapper가 false일 때 사용됩니다.

Mod Script 샌드박스 v1.5 전용입니다. 방법: placeBefore(obj), placeAfter(obj) (obj는 페이지 또는 페이지 폴더), placeIn(obj) (obj는 페이지 폴더). 폴더 수준을 이동하면 _path가 업데이트됩니다.

페이지폴더

Mod Script 샌드박스 v1.5 전용입니다.

pageFolder 객체는 페이지 메뉴에 있는 폴더입니다. 이것들을 생성하거나 삭제할 수 있습니다. 폴더를 삭제하면 해당 폴더의 하위 폴더들이 메뉴에서 한 단계 위로 이동합니다.

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "pageFolder" 읽기 전용.
이름 "새 폴더" 페이지 메뉴에 표시됩니다.
_배치 0 페이지 메뉴에서 주문하세요.
_경로 "," 쉼표로 구분된 상위 페이지 폴더 ID.

방법: placeBefore(obj), placeAfter(obj) (페이지 또는 페이지 폴더), placeIn(obj) (페이지 폴더). 폴더를 변경하면 해당 폴더와 그 하위 폴더들의 _path가 업데이트됩니다. remove()는 자식 폴더들을 위쪽으로 이동시킨 다음, 해당 폴더를 삭제합니다.

var folder = createObj('pageFolder', { name: 'Dungeons' });

캠페인

부동산 기본값 참고
_id "루트" 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "캠페인" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 단, Campaign 객체는 단 하나뿐이며 Campaign()을 통해 액세스할 수 있다는 점에 유의하십시오. 읽기 전용.
턴 순서 "" 턴 순서를 나타내는 JSON 문자열. 아래를 참조하십시오.
이니셔티브 페이지 false 턴 순서 창이 열렸을 때 추적기에 사용되는 페이지의 ID. false로 설정하면 턴 순서 창이 닫힙니다.
플레이어페이지ID false 플레이어 북마크가 설정된 페이지의 ID. 아래의 ‘playerspecificpages’ 항목에서 재정의되지 않는 한, 플레이어에게는 기본적으로 이 페이지가 표시됩니다.
플레이어별 페이지 false 다음 형식의 객체(JSON 문자열 아님): {player1_id: page_id, player2_id: page_id } … } 이 객체의 특정 페이지에 설정된 플레이어는 playerpageid를 재정의합니다.
_저널폴더 "" 게임의 폴더 구조에 대한 데이터를 포함하는 JSON 문자열. 읽기 전용.
_jukeboxfolder "" 게임의 주크박스 재생 목록 구조에 대한 데이터를 포함하는 JSON 문자열. 읽기 전용.
_토큰_마커_ "[]" 게임에서 사용할 수 있는 토큰 마커(기본 제공 및 사용자 정의)의 JSON 배열. 읽기 전용. ‘그래픽’ 항목 아래의 ‘토큰 마커 예제’를 참조하십시오.
전경 레이어 표시 참 true일 때, 플레이어는 전경 레이어의 오브젝트를 볼 수 있습니다. 거짓일 때, 그들은 하지 않을 것이다. 참고: 이 설정은 모든 페이지에 영향을 미치는 글로벌 설정입니다.
tokenBubbleMax 3 유효한 값은 토큰 버블의 개수를 나타내는 3 또는 4입니다. 업그레이드된 VTT 엔진에서 이용 가능합니다.

이러한 추가 속성들은 get을 통해가 아니라 Campaign()이 반환하는 객체에서 읽을 수 있습니다:

부동산 샌드박스 참고
샌드박스 버전 둘 다요 "1.0" 또는 "1.5"
노드 버전 둘 다요 샌드박스 프로세스의 Node.js 버전 문자열
시트명 v1.5 전용 설정된 캐릭터 시트의 약칭
계산된 요약 v1.5 전용 사용 가능한 Beacon 계산 속성 이름
actionSummary v1.5 전용 사용 가능한 비콘 시트 작업
log(Campaign().sandboxVersion);

턴 순서 턴 순서는 현재 턴 순서 목록을 나타내는 JSON 문자열입니다. 객체들의 배열입니다. 현재 턴 순서에는 한 번에 하나의 페이지에 있는 객체만 포함될 수 있습니다. 턴 순서의 현재 페이지 ID는 ‘initiativepage’ 속성입니다. 둘을 반드시 동기화 상태로 유지해야 합니다. 그렇지 않으면 이상한 결과가 발생할 수 있습니다. 턴 순서를 처리하려면 JSON.parse() 를 사용하여 현재 턴 순서 상태를 나타내는 객체를 가져와야 합니다(참고: 먼저 빈 문자열 "" 가 아닌지 확인하세요.…만약 그렇다면, 빈 배열로 직접 초기화하세요). 다음은 턴 순서 객체의 예시입니다:

[
  {
    "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //그래픽 객체의 ID. 이 설정이 활성화되면, 턴 순서 목록은 테이블탑 그래픽을 기반으로 목록의 이름과 아이콘을 자동으로 불러옵니다.
    "pr":"0", //목록 내 항목의 현재 값. 숫자나 텍스트일 수 있습니다.
    "custom":"" // 항목에 대한 사용자 정의 제목. ID가 "-1" 이외의 값으로 설정된 경우 무시됩니다.
  },
  {
    "id":"-1", // 사용자 정의 항목의 경우 ID는 반드시 "-1"로 설정해야 합니다(이는 숫자가 아닌 문자열이라는 점에 유의하십시오).
    "pr":"12",
    "custom":"Test Custom" //사용자 정의 항목에 표시될 이름.
  }
]

턴 순서를 수정하려면, 현재 턴 순서 객체를 편집한 다음 JSON.stringify() 를 사용하여 Campaign의 속성을 변경하십시오. 목록의 턴 순서는 배열의 순서와 동일하다는 점에 유의하십시오. 예를 들어, push()는 목록의 끝에 항목을 추가하고, unshift() 는 맨 앞에 항목을 추가하는 식입니다.

var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //참고: 먼저 turnorder가 단순히 빈 문자열이 아닌지 확인합니다. 값이 있다면 빈 배열로 처리하십시오.
else turnorder = JSON.parse(Campaign().get("turnorder"));
// 턴 순서 끝에 새로운 사용자 정의 항목을 추가합니다.
turnorder.push({
  id: "-1",
  pr: "15",
  custom: "턴 카운터"
});
Campaign().set("turnorder", JSON.stringify(turnorder));

플레이어

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "플레이어" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_d20사용자ID 사용자 ID — 사이트 전체. 예를 들어, 위키상의 플레이어 사용자 페이지는/User:ID이며, 여기서 ID는 _d20userid에 저장된 값과 동일합니다. 읽기 전용.
_displayname "" 플레이어의 현재 표시할 이름. 사용자 설정 페이지에서 변경할 수 있습니다. 읽기 전용.
_온라인 false 읽기 전용.
_마지막 페이지 "" 플레이어가 GM으로 마지막으로 본 페이지의 페이지 ID. 이 속성은 플레이어로 참여한 플레이어나 GM에게는 업데이트되지 않습니다. 읽기 전용.
_매크로바 "" 플레이어의 매크로 바에 있는 매크로들을 쉼표로 구분한 문자열입니다. 읽기 전용.
말하자면 "" ‘As’ 드롭다운 메뉴에서 플레이어가 선택한 플레이어나 캐릭터의 ID입니다. 빈 문자열로 설정된 경우 플레이어는 본인의 목소리로 말합니다. 문자로 설정된 경우, 값은 character|<ID> 이며, 여기서 <ID> 는 해당 캐릭터의 ID입니다.
색상 #13B9F0 플레이어 이름 옆에 있는 사각형의 색상뿐만 아니라, 맵상의 위치 표시, 핑 원 등의 색상도 포함됩니다.
매크로 표시줄 false 플레이어의 매크로 바가 표시되어 있는지 여부.

매크로

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "매크로" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_playerid 이 매크로를 생성한 플레이어의 ID입니다. 읽기 전용.
이름 "" 매크로 이름.
액션 "" 매크로의 텍스트.
보이는 "" 매크로를 생성한 플레이어 외에 해당 매크로를 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록. '모든 플레이어'는 목록에 모든 항목이 포함되어 있는 것으로 나타냅니다.
이토큰액션 false 이 매크로는 토큰이 선택되었을 때 표시되어야 하는 토큰 액션인가요?

목록에서 뽑기

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "접이식 테이블" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
이름 "새 테이블"
출연진 참

Mod Script 샌드박스 v1.5 전용입니다. createToken(properties)는 테이블 항목의 아바타(마켓 이미지 허용)를 변으로 사용하는 그래픽을 생성합니다. 그래픽을 반환합니다. 테이블 항목 중 아바타가 있는 항목이 없으면 아무것도 생성되지 않습니다.

테이블 항목

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type 테이블 항목 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_rollabletableid "" 이 항목이 속한 테이블의 ID. 읽기 전용.
아바타 "" 테이블 항목에 사용된 이미지의 URL. 아래의 아바타 및 imgsrc 제한 사항에 대한 참고 사항을 확인하세요.
이름 ""
무게 1 동일 테이블 내 다른 항목 대비 테이블 항목의 가중치. 간단히 말해, 가중치 3인 항목은 가중치 1인 항목보다 테이블에서 굴릴 때 선택될 확률이 세 배 더 높습니다.

캐릭터

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "캐릭터" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
아바타 "" 캐릭터에 사용된 이미지의 URL. 아래의 아바타 및 imgsrc 제한 사항에 대한 참고 사항을 확인하세요.
이름 ""
자기소개 "" 이 캐릭터의 약력. 아래 참고 사항을 참조하여 Notes, GMNotes 및 bio 필드에 접근하는 방법을 확인하십시오.
gmnotes "" GM만 볼 수 있는 캐릭터 노트. 아래 참고 사항을 참조하여 Notes, GMNotes 및 bio 필드에 접근하는 방법을 확인하십시오.
보관됨 false
인플레이어 저널스 "" 이 캐릭터를 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록. '모두'를 선택하면 모든 플레이어가 볼 수 있는 능력을 갖게 됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 의미합니다.
통제됨 "" 이 캐릭터를 제어하고 편집할 수 있는 플레이어 ID의 쉼표로 구분된 목록. '모두'를 선택하면 모든 플레이어가 편집 능력을 갖게 됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 의미합니다.
_기본 토큰 "" 캐릭터의 기본 토큰이 설정된 경우, 해당 토큰을 나타내는 JSON 문자열입니다. 이것은 ‘bio ’나 ‘notes’와 같은 블롭이므로, get()은 콜백을 매개변수로 받습니다. set() 을 호출하지 마십시오. setDefaultTokenForCharacter를 사용하여 작성하세요.
inParty false 해당 캐릭터가 파티에 속해 있는지 여부.
태그 "[]" 문자열로 구성된 JSON 배열. 공백이나 쉼표가 없어야 합니다. 유효하지 않은 태그는 제거되며, Mod 출력 콘솔에 경고 메시지가 전송됩니다. 두 샌드박스 버전 모두에서 이용 가능합니다.

Mod Script 샌드박스 v1.5 전용입니다. sheetEnvironment는 "구버전" 또는 "beacon"입니다. get을 통해 호출하는 것이 아니라 character.sheetEnvironment 로 호출하십시오.

Mod Script 샌드박스 v1.5 전용입니다. createToken(properties, options, callback)은 캐릭터의 기본 토큰을 기반으로 그래픽을 생성합니다. 기본 토큰이 없는 경우, 캐릭터 초상화가 사용됩니다. 아바타 도 없다면 생성도 실패합니다. 마켓 이미지는 허용됩니다. _defaulttoken은 비동기 방식이므로, 그래픽은 반환되지 않고 콜백 으로 전달됩니다.

옵션 기본값 참고
preferAvatar false imgsrc로 캐릭터 초상화를 사용하는 것을 선호합니다.
다각적인 false 사이드 생성 방식: false는 기본 토큰의 설정을 그대로 유지합니다.true/ensure는 사이드가 없는 경우 imgsrc와 아바타를 추가합니다. replace는 기존 사이드를 덮어씁니다. append/prepend는imgsrc/아바타를 추가합니다.
obj.createToken({ pageid, layer, left: x, top: y }, { multisided: 'ensure' }, function (token) {
  token.set('status_green', 5);
});

속성

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "속성" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_캐릭터ID "" 이 속성이 속한 캐릭터의 ID. 읽기 전용. createObj를 사용할 때는 필수입니다.
이름 "제목 없음"
현재 "" 채팅과 매크로에서는 @{캐릭터 이름|속성 이름} 구문을, 능력에서는 @{속성 이름} 구문을 사용하여 해당 속성의 현재 값을 확인할 수 있습니다.
최대 "" 채팅과 매크로에서는 @{캐릭터 이름|속성 이름|max} 구문을, 능력에서는 @{속성 이름|max} 구문을 사용하여 해당 속성의 최대값을 확인할 수 있습니다.

중요: 캐릭터 시트 기본값이 속성 사용에 어떤 영향을 미치는지에 대한 정보는 아래의 ‘캐릭터 시트 사용’ 관련 참고 사항을 확인하십시오.

능력

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 객체에 걸쳐 전 세계적으로 유일합니다. 읽기 전용.
_type "능력" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_캐릭터ID "" 이 능력이 속한 캐릭터. 읽기 전용. createObj를 사용할 때는 필수입니다.
이름 "제목 없음_능력"
설명 "" 해당 설명은 캐릭터 시트 인터페이스에 표시되지 않습니다.
액션 "" 능력의 기술 내용.
이토큰액션 false 이 능력은 부모 캐릭터에 연결된 토큰이 선택될 때 표시되어야 하는 토큰 액션인가요?

핸드아웃

부동산 기본값 참고
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 오브젝트에 대해 전역적으로 고유합니다. 읽기 전용.
_type "핸드아웃" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
핀 "[]" 이 핸드아웃의 각 부분과 연관된 핀들을 나타내는 객체 배열을 포함하는 JSON 문자열.
아바타 "" 핸드아웃에 사용된 이미지의 URL. 아래의 아바타 및 imgsrc 제한 사항에 대한 참고 사항을 확인하세요.
이름 "신비한 쪽지"
메모 "" 핸드아웃에 있는 텍스트를 포함합니다. 노트 및 GM노트 사용에 관한 아래 참고 사항을 확인하십시오.
gmnotes "" GM만 볼 수 있는 핸드아웃의 텍스트를 포함합니다. 노트 및 GM노트 사용에 관한 아래 참고 사항을 확인하십시오.
인플레이어 저널스 "" 이 핸드아웃을 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록. '모두'를 선택하면 모든 플레이어에게 표시됩니다. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 의미합니다.
보관됨 false
통제됨 "" 이 핸드아웃을 제어하고 편집할 수 있는 플레이어 ID의 쉼표로 구분된 목록. '모든 플레이어'는 목록에 모든 항목이 포함되어 있음을 의미합니다.
태그 "[]" 문자열로 구성된 JSON 배열. 캐릭터 태그와 동일한 규칙이 적용됩니다. 두 샌드박스 버전 모두에서 이용 가능합니다.

참고: Campaign().get("_journalfolder")는 읽기 권한이 있습니다. 스크립트는 저널 폴더에 쓰기 작업을 수행할 수 없습니다. 스크립트로 생성된 핸드아웃은 루트 디렉터리에 저장됩니다.

갑판

카드를 뽑고, 나눠주고, 섞고, 다시 불러오고, 집어 올리고, 가져가고, 내고, 건네주는 데 도움이 되는 모드 스크립트 함수들이 있습니다: shuffleDeck, cardInfo, recallCards, dealCardsToTurn, drawCard, pickUpCard, takeCardFromPlayer, playCardToTable, giveCardToPlayer. 두 샌드박스 버전 모두에서 이용 가능합니다. 함수 설명서를 참조하십시오.

부동산 기본값 참고
_id "" 덱의 ID
_type 갑판
이름 "" 덱 이름
_현재덱 "" 덱에 현재 포함된 카드들의 쉼표로 구분된 목록(테이블탑/핸드에 플레이된 카드 포함). 덱이 섞일 때 변경됩니다.
_currentIndex -1 덱에서 현재 우리 위치에 해당하는 인덱스, ‘다음에 어떤 카드가 뽑힐까?’
_현재표시된카드 참 덱 맨 위에 현재 카드를 표시합니다
출연진 참 플레이어들에게 덱을 보여주세요
플레이어스캔드로우 참 플레이어들은 카드를 뽑을 수 있나요?
아바타 "" 이 카드 덱/덱의 카드 뒷면
목록에 노출됨 false 게임 보드에 덱을 표시합니다 (현재 덱이 보이나요?)
플레이어_시노움카드 true 플레이어들은 다른 플레이어의 손에 든 카드 장수를 볼 수 있나요?
플레이어_프론트_오브_카드_보기 false 플레이어들은 다른 플레이어의 패를 들여다볼 때 카드 앞면을 볼 수 있나요?
gm_seenumcards true GM은 각 플레이어의 패에 들어 있는 카드 장수를 볼 수 있나요?
gm_seefrontofcards false GM은 각 플레이어의 패를 살펴볼 때 카드의 앞면을 볼 수 있나요?
인피니티카드 false 이 카드 덱/덱에는 카드가 무한히 많이 들어 있나요?
_카드 시퀀서 -1 카드 뽑을 때 덱을 앞으로 밀어내기 위해 내부적으로 사용됨.
카드 플레이 "얼굴 위로" 이 덱의 카드는 어떻게 테이블탑에 플레이하나요? 앞면이 보이게 또는 뒷면이 보이게.
기본 높이 "" 테이블탑에 놓인 카드의 기본 높이는 얼마인가요?
기본 너비 ""
버림 더미 모드 "없음" 이 덱에는 어떤 종류의 버림 더미가 있나요? none = 버림 더미 없음, choosebacks = 플레이어가 카드 뒷면을 보고 그중 하나를 선택할 수 있음, choosefronts = 카드 앞면을 보고 선택, drawtop = 가장 최근에 버려진 카드를 뽑음, drawbottom = 가장 오래된 버려진 카드를 뽑음.
_폐기 더미 "" 이 덱의 현재 버림 카드 더미는 어떻게 되나요? 쉼표로 구분된 카드 목록. 이 카드들은 게임에서 제거된 상태이며, 리콜이 수행되기 전까지는 셔플 시 덱에 다시 넣지 않습니다.

카드

부동산 기본값 메모
이름 "" 카드 이름
아바타 "" 카드 앞면
카드 뒷면 "" 카드 뒷면 이미지 덮어쓰기
_deckid "" 덱 ID
_type 카드
_id ""

Mod Script 샌드박스 v1.5 전용입니다. createToken(properties, options)은 마치 카드가 테이블 위에 놓인 것처럼 그래픽을 생성합니다(마켓 이미지 사용 가능). 그래픽을 반환합니다.

옵션 기본값 메모
asCard true 만약 사실이라면, 그 그림은 카드입니다. false인 경우, 카드처럼만 보이는 다면 토큰입니다.
faceup 데크 기본값 앞면 또는 뒷면 표시; currentSide를 설정합니다.

손

각 플레이어는 한 손만 가져야 합니다.

속성 기본값 메모
현재 손 "" 현재 손에 있는 카드들의 쉼표로 구분된 목록. 이것은 더 이상 읽기 전용이 아님을 유의하십시오. 이상적으로는 카드 덱 기능으로만 조정해야 합니다.
_type "손"
_부모ID "" 해당 핸드의 소유자 플레이어 ID
_id ""
현재 뷰 "갑판" 플레이어가 패를 공개할 때, 화면은 덱 단위로 표시되나요, 아니면 카드 단위로 표시되나요?

주크박스 트랙

속성 기본값 메모
_id 이 객체에 대한 고유 식별자. 이 게임 내 모든 오브젝트에 대해 전 세계적으로 유일합니다. 읽기 전용.
_type "jukeboxtrack" 객체 유형을 식별하거나 해당 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
플레이 중인 룰 false 트랙이 재생 중인지 여부를 판단하는 데 사용되는 부울 값. 이 값을 true 로, softstop을 false 로 설정하면 트랙이 재생됩니다.
소프트스톱 false 비루프 트랙이 최소한 한 번 이상 완료되었는지 여부를 판단하는 데 사용되는 부울 값. 트랙이 재생되도록 하려면 이 값을 false 로 설정해야 합니다.
제목 "" 주크박스 탭에서 트랙의 표시되는 레이블.
부피 30 트랙의 음량 수준. 이 값은 반드시 정수(문자열이 아님)로 설정해야 하며, 그렇지 않으면 기능이 손상될 수 있습니다. 0-100 사이의 값(백분율).
반복 false 트랙을 반복 재생해야 합니까? 그렇다면 true로 설정하십시오.

커스텀 FX

속성 기본값 메모
_id 이 객체에 대한 고유 ID입니다. 이 게임 내 모든 오브젝트에 대해 전 세계적으로 유일합니다. 읽기 전용.
_type "custfx" 객체 유형을 식별하거나 해당 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
이름 "" FX 리스팅에서 FX의 표시 이름.
정의 {} FX를 설명하는 자바스크립트 객체.

imgsrc 및 avatar 속성의 제한 사항

이제 imgsrc 및 avatar 속성을 편집할 수 있지만, 모든 Roll20 사용자에게 안전을 보장하기 위해 해당 속성에 대해 다음과 같은 제한 사항을 적용했습니다:

  • Roll20 라이브러리에 업로드된 이미지 파일을 사용해야 합니다. 외부 사이트(예: Imgur)나 Roll20 마켓에 있는 파일은 사용할 수 없습니다. 저장된 URL은 Roll20 CDN으로 다시 작성됩니다(대개 https://files.d20.io/images/...). s3.amazonaws.com 접두사를 필수로 지정하지 마시고, get("imgsrc") 가 전달한 URL과 일치할 것이라고 기대하지 마십시오.
  • 전달하는 URL에 쿼리 문자열을 포함시켜 주세요.
  • 그래픽 imgsrc 값에서 더 이상 ‘thumb’ 크기 이름을 사용할 필요가 없습니다. 이미지 URL은 수정된 저장 형식과 CDN 위치에 맞게 조정됩니다. obj.get('imgsrc') 가 생성 시점에 전달한 URL과 일치할 것이라고 기대하지 마십시오. findObjs()는 URL을 정규화하고 일치시키므로, 유효한 URL이라면 어떤 것이든 검색할 수 있습니다.

이미지 라이브러리에서 이미지를 삭제하면, 해당 이미지를 사용하는 모든 게임(사용자 제작 스크립트를 사용하는 게임 포함)에서 해당 이미지가 제거됩니다.

Mod Script 샌드박스 v1.5 전용입니다. createCopy 및 createToken은 기존 오브젝트에서 복사하여 마켓 이미지를 사용하는 그래픽을 생성할 수 있습니다.

노트, GM노트, 바이오 필드 사용 비동기

‘캐릭터’ 및 ‘핸드아웃’의 ‘메모’, ‘gmnotes’ 또는 ‘약력’ 필드에 접근하려면 get() 함수의 두 번째 인수로 콜백 함수를 전달해야 합니다. 예를 들어 보겠습니다:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
  log(bio); //여기서 캐릭터의 약력을 활용해 작업을 수행합니다.
});

객체가 생성된 후에 set() 을 사용하여 이 필드들을 설정하십시오. createObj 함수에는 bio, notes, gmnotes를 전달하지 마십시오. notes 와 gmnotes는 별도의 set() 호출로 설정하십시오. 'graphic gmnotes'는 일반 문자열이며, 이 목록에 포함되지 않습니다. _defaulttoken 캐릭터는 BLOB입니다. 콜백을 사용하여 읽을 수 있으며, setDefaultTokenForCharacter를 사용하여 쓸 수 있습니다.

캐릭터 시트 작업하기

캐릭터 시트 기능은 속성 객체 유형의 사용에 영향을 미칩니다. 시트에는 시트 내 각 속성에 대한 기본값을 지정할 수 있는 기능이 있기 때문입니다. 그러나 속성이 기본값으로 설정된 경우, 해당 캐릭터에 대해 게임 내에 실제 속성 객체가 아직 생성되지 않았습니다. 우리는 이러한 복잡성을 사용자에게 숨겨주는 편리한 기능을 제공합니다. 앞으로 속성의 값을 가져오려면 이 함수를 사용해야 합니다. 특히 게임이 캐릭터 시트를 사용한다는 것을 알고 있다면 더욱 그렇습니다. getAttrByName(character_id, attribute_name, value_type) 캐릭터의 ID와 속성의 이름 (ID가 아님, 예:HP 또는 Str)을 지정하기만 하면 되며, value_type에 대해 현재 값을 가져올지 최대 값을 가져올지는 선택적으로 지정할 수 있습니다. 예를 들어 보겠습니다:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); // str의 현재 값, 예: "12"
getAttrByName(character.id, "str", "max"); // str의 최대값, 예: "[[floor(@{STR}/2-5)]]"

자동 계산된 값을 가진 필드는 값의 결과가 아닌 수식을 반환합니다. 그런 다음 해당 공식을 sendChat()에 전달하면 주사위 엔진이 자동으로 결과를 계산해 줍니다. 캐릭터 시트가 모드 스크립트와 어떻게 연동되는지에 대한 자세한 내용은 캐릭터 시트 설명서도 꼭 확인해 주세요. 또한 setAttrs, getSheetDefaultValue, getSheetItem 및 setSheetItem (모두 샌드박스)도 참조하십시오. Mod Script 샌드박스 v1.5 전용입니다. getComputed, setComputed, performAction. 함수 설명서를 참조하십시오.

getAttrByName은 속성 객체 자체가 아닌 속성의 값만 반환합니다. current이나 max 이외의 속성 값을 참조하거나, 속성 값을 변경하려면 findObjs와 같은 위의 다른 함수 중 하나를 사용해야 합니다. 속성 객체가 존재하지 않는 경우, getAttrByName() 은 시트에 해당 이름에 대한 기본값이 정의되어 있으면 그 값을 반환하고, 그렇지 않으면 undefined를 반환합니다.

객체 생성

createObj(유형, 속성)

다음과 같은 '그래픽', '텍스트', '경로', 'pathv2', '캐릭터', '능력', '속성', '핸드아웃', 'rollabletable', 'tableitem', '매크로', 'card', '덱', 'custfx', 'window', 'door', 그리고 '핀' 객체입니다. Mod Script 샌드박스 v1.5 전용입니다. 'pageFolder'. createObj 함수를 사용하여 게임 내에서 새로운 오브젝트를 생성할 수 있습니다. 객체의 유형(위의 객체 목록에 있는 유효한 _type 속성 중 하나)과, 해당 객체의 속성 목록을 포함하는 attributes 객체를 반드시 전달해야 합니다. 객체에 상위 객체가 있는 경우(예: 속성과 능력은 캐릭터에 속하고, 그래픽, 텍스트, 경로는 페이지에 속하는 등), 속성 목록에 상위 객체의 ID를 반드시 포함해야 합니다(예: 속성을 생성할 때는 characterid 속성을 반드시 포함해야 합니다). 또한, 새로운 객체를 생성할 때도 읽기 전용 속성을 설정할 수 없으며, 해당 속성은 자동으로 기본값으로 설정된다는 점에 유의하십시오. 단 한 가지 예외는 경로(Path)를 생성할 때 ‘path’ 속성을 반드시 포함해야 한다는 점이지만, 일단 경로가 생성된 후에는 이 속성을 수정할 수 없습니다. createObj는 새로운 객체를 반환하므로, 이 객체를 사용하여 작업을 계속할 수 있습니다.

// 샌드박스가 준비된 후 추가되는 캐릭터에 ‘힘’ 속성을 생성합니다.
// 'ready'가 호출되기 전에 add:character 바인딩을 적용하면, 이미 존재하는 캐릭터에 대해서도 이 이벤트가 발생합니다.
on("ready", function() {
  on("add:character", function(obj) {
    createObj("속성", {
      name: "Strength",
      current: 0,
      max: 30,
      characterid: obj.id
    });
  });
});

객체 삭제

객체 제거()

'graphic', 'text', 'path', 'pathv2', 'character', '능력', '속성', '핸드아웃', 'rollabletable', 'tableitem', '매크로', 'card', 'deck', 'custfx', 'window', 'door' 및 'pin' 객체를 삭제할 수 있습니다. Mod Script 샌드박스 v1.5 전용입니다. 'pageFolder'.

.remove() 함수를 사용하여 기존 게임 오브젝트를 삭제할 수 있습니다. .remove() 함수는 createObj 함수로 생성할 수 있는 모든 객체에 적용됩니다. 객체에 직접 함수를 호출합니다. 예를 들어, mycharacter.remove();.

글로벌 객체

스크립트의 어디에서나 전역적으로 사용할 수 있는 여러 개체가 있습니다.

캠페인() (함수)

Campaign 객체를 반환하는 함수입니다. 캠페인이 하나뿐이므로, 이 글로벌 변수는 항상 게임 내 유일한 캠페인을 가리킵니다. Campaign().get("playerpageid")를 사용하여 객체가 현재 페이지에 있는지 확인하는 등의 작업에 유용합니다.

state

상태 변수는 게임 내에서 실행되는 모든 스크립트가 접근할 수 있는 전역 범위의 객체입니다. 'state'라는 전역 변수를 사용하기만 하면, 언제든지 어떤 함수나 콜백에서든 상태 객체에 접근할 수 있습니다. 또한, 상태 객체는 Mod 스크립트 샌드박스 실행 간에도 유지되므로, 향후 스크립트 실행 시 활용하고자 하는 정보를 여기에 저장할 수 있습니다. 참고: state 객체는 플레이어의 컴퓨터로 전송되지 않으며 게임 파일의 크기를 늘리지 않으므로, 모드 스크립트에서만 필요한 정보를 저장하는 데 사용해야 합니다. 게임 내에서 필요한 값들을 Roll20 오브젝트의 속성에 저장하세요.

저장 가능한 유형

상태 객체는 JSON 표준에서 지원하는 간단한 데이터 유형만 영구 저장할 수 있습니다.

유형 예시 설명
부울 true false true 또는 false 값.
숫자 123.5 10 1.23e20 자바스크립트에서 지원하는 모든 숫자 형식. 부동 소수점 또는 정수.
문자열 '헬로 판타지' "아, 그리고 세상" 표준 문자열.
배열 [ 1, 2, 3, 4 ]
[ 'A', 'B', 'C'][1, 2, ['bob', 3], 10, 2.5]
어떤 유형이든 정렬된 컬렉션으로, 다른 배열도 포함됩니다.
대상 { key: 1, value: 'roll20' } 문자열 키를 가지며 값으로 어떤 유형이든 가질 수 있는 단순한 키/값 객체로, 다른 객체도 포함됩니다.

경고: 함수는 처음에 상태에 저장될 때는 정상적으로 작동하는 것처럼 보이지만, 샌드박스 재시작과 같이 상태가 영구 저장소에서 처음 복원될 때 사라집니다.

  • 참고: 여기에는 이벤트나 findObjs(), getObj(), filterObjs(), createObj() 등의 함수를 통해 가져오는 Roll20 객체도 포함됩니다.

중요한 안내 사항

상태 객체는 샌드박스 내의 모든 스크립트에서 공유됩니다. 다른 스크립트에 영향을 주지 않으려면 몇 가지 간단한 지침을 따르는 것이 중요합니다:

  • 절대 루트 상태 객체에 직접 할당하지 마십시오.
state = { break: '모든 것' }; // 절대로 이렇게 하지 마세요!!!
  • 스크립트에서 스크립트에서 state라는 이름의 지역 변수를 사용하지 마십시오. 이 방법은 작동하겠지만, 나중에 스크립트를 사용하는 사람들에게 혼란을 줄 수 있으며 코드가 부주의하게 수정될 경우 문제를 일으킬 수 있습니다.
function turn(){
  var state = Campaign().get('turnorder'); // 좋지 않은 관행이니 피하세요!
  // ...
}
  • 항상 항상 속성을 적어도 하나의 네임스페이스 속성 아래에 배치하십시오. 충분히 설명적인 네임스페이스 속성을 사용하십시오. "스크립트 "나 " 설정"과 같은 이름은 피하십시오. 모듈 이름이나 본인의 이름, 혹은 닉네임을 사용하는 것이 가장 좋습니다.
if( ! state.MyModuleNamespace ) {
  state.MyModuleNamespace = { module: 'my module', ok: 'this is fine!', count: 0 };
}
state.MyModuleNamespace.count++;

사용 예시

다음은 상태 객체를 적절하게 사용하는 실제 예시입니다.

on('ready', function() {
  "use strict";
  // 네임스페이스 속성이 있는지 확인하고, 없으면 생성합니다
  if( ! state.MyModuleNS ) {
    state.MyModuleNS = {
      version: 1.0,
      config: {
        color1: '#ff0000',
        color2: '#0000ff'
      },
      count: 0
    };
  }
  // 상태 속성을 사용하여 채팅에 전송할 메시지를 구성합니다.
  sendChat(
    '테스트 모듈',
    '<span style="color: '+state.MyModuleNS.config.color1+';">'+
    '상태 테스트'+
    '</span> '+
    '<span style="color: '+state.MyModuleNS.config.color2+';">'+
    '스크립트 v'+state.MyModuleNS.version+' 시작됨 '+(++state.MyModuleNS.count)+'회 실행되었습니다!'+
    '</span>'
  );
});

객체 찾기/필터링

Mod 스크립트는 오브젝트를 찾는 데 사용할 수 있는 여러 가지 보조 함수를 제공합니다.

getObj(type, id)
이 함수는 객체의 _type과 _id를 전달하면 해당 객체 하나를 반환합니다. 가능한 경우 다른 find 함수보다 이 함수를 사용하는 것이 가장 좋습니다. 이 함수는 객체 컬렉션 전체를 반복 처리할 필요가 없는 유일한 함수이기 때문입니다.
on("change:graphic:represents", function(obj) {
  if(obj.get("represents") != "") {
    var character = getObj("character", obj.get("represents"));
  }
});

findObjs(attrs)

이 함수에 속성 목록을 전달하면, 일치하는 모든 객체를 배열로 반환합니다. 이 기능은 모든 페이지에 걸쳐 모든 유형의 객체에 적용된다는 점에 유의하십시오. 따라서 테이블탑 객체를 다루는 경우, 적어도 _type 및 _pageid에 대한 필터를 포함하는 것이 좋습니다.

var currentPageGraphics = findObjs({
  _pageid: Campaign().get("playerpageid"),
  _type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
  //현재 페이지에 있는 그래픽 객체인 obj를 사용하여 작업을 수행합니다.
});

선택적으로 두 번째 인수를 전달할 수도 있으며, 이 인수에는 다음을 포함한 옵션 목록이 담긴 객체가 포함됩니다:

  • caseInsensitive (true/false): true인 경우, 문자열 속성은 대소문자를 구분하지 않고 비교됩니다.
var targetTokens = findObjs({
  name: "target"
}}, {caseInsensitive: true});
// 'target', 'Target', 'TARGET' 등의 이름을 가진 모든 토큰을 반환합니다.
  • startsWith (true/false): true인 경우, 문자열 속성이 접두사로 일치합니다.
  • tagMatch: 태그 일치 시: 'all' (기본값; 객체에 나열된 모든 태그가 있음), 'any' (적어도 하나), 'only' (나열된 집합과 정확히 일치).
var knights = findObjs({ type: '캐릭터', name: 'Sir' }, { startsWith: true });

filterObjs(콜백)

제공된 콜백 함수를 각 객체에 대해 실행하며, 콜백이 true를 반환하면 해당 객체가 결과 배열에 포함됩니다. 현재 대부분의 용도에서 filterObjs()를 사용하는 것은 권장되지 않습니다. findObjs()는 더 나은 실행 속도를 위해 내장된 인덱싱 기능을 갖추고 있기 때문에, 원하는 유형의 객체를 먼저 가져온 후 배열의 기본 .filter() 메서드를 사용하여 필터링하는 것이 거의 항상 더 효과적입니다.

var results = filterObjs(function(obj) {
  if(obj.get("left") < 200 && obj.get("top") < 200) return true;
  else return false;
});
//results는 테이블탑의 왼쪽 상단 모서리에 위치한 모든 객체로 구성된 배열입니다.

getAllObjs()

게임 내 모든 객체(모든 유형)의 배열을 반환합니다. filterObjs를 호출하고 모든 객체에 대해 true를 반환하는 것과 같습니다.

getAttrByName(캐릭터_ID, 속성_이름, 값_유형)

속성의 값을 가져옵니다. 해당 속성이 존재하지 않을 경우 캐릭터 시트의 기본값을 사용합니다. value_type은 선택적 매개변수로, 이를 사용하여 현재 값이나 최대값을 지정할 수 있습니다. getAttrByName은 속성 객체 자체가 아닌 속성의 값만 반환합니다. current이나 max 이외의 속성 값을 참조하거나, 속성 값을 변경하려면 findObjs와 같은 위의 다른 함수 중 하나를 사용해야 합니다. 반복되는 섹션의 경우, repeating_section_$n_attribute 형식을 사용할 수 있습니다. 여기서 n은 반복되는 행 번호입니다(0부터 시작). 예를 들어, repeating_spells_$2_name은 repeating_spells 테이블의 세 번째 행에 있는 name의 값을 반환합니다. 다음과 같은 방법으로 getAttrByName과동등한 동작을 구현할 수 있습니다:









  attribute_default_max = attribute_default_max || '';   value_type = value_type || 'current';   var attribute = findObjs({     type: 'attribute',     characterid: character_id,     name: attribute_name   }, {caseInsensitive: true})[0];   if (!attribute) {     attribute = createObj('attribute', {       characterid: character_id,       name: attribute_name,       current: attribute_default_current,       max: attribute_default_max     });   }   if (value_type == 'max') {     return attribute.get('max');   } else {     return attribute.get('current');   } }



















도움이 되었습니까?
26명 중 23명이 도움이 되었다고 했습니다.