API: 객체

Roll20 API를 통해 사용되는 여러 종류의 객체가 있습니다. 다음은 각각의 빠른 목록, 그것이 무엇인지 및 어떤 속성을 포함하는지 (기본 값과 함께)입니다. 일반적으로 밑줄(_)로 시작하는 속성은읽기 전용이며 변경할 수 없습니다. obj.get("property")을 사용하여 개체의 프로퍼티에 액세스하고obj.set("property", newvalue)또는obj.set({property: newvalue, property2: newvalue2})을 사용하여 새 값을 설정해야 합니다.

참고:객체의id속성은 전 세계적으로 고유한 ID이므로 서로 다른 유형의 객체라 할지라도 두 객체가 동일한 ID를 가져서는 안 됩니다. 또한 객체의 ID는 자주 액세스하고 변경되지 않으므로 원하는 경우obj.get("_id")대신obj.id을 사용하여 액세스할 수 있는 바로 가기가 있습니다(둘 다 작동합니다).


경로

속성 기본값 노트
_id  

이 객체에 대한 고유 ID. 이 게임의 모든
객체 전체에서 전역적으로 고유합니다. 읽기 전용입니다.

_type "경로" 객체 유형을 식별하거나
객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
_pageid    객체가 있는 페이지의 ID입니다. 읽기 전용입니다.
_path    A JSON string describing the lines in the path. Read-only, except when creating a new path. See the section on Paths for more information.
fill "transparent" Fill color. Use the string "transparent" or a hex color as a string, for example "#000000"
stroke "#000000" Stroke (border) color.
회전 0 회전(도 단위).
레이어 "" 현재 레이어, "gmlayer", "객체", "맵" 또는 "벽" 중 하나입니다. 벽 레이어는 동적 조명에 사용되며, 벽 레이어의 경로는 빛을 차단합니다.
스트로크_폭 5  
너비 0  
높이 0  
top 0 경로의 중심에 대한 Y 좌표
# left 0 X-coordinate for the center of the path
scaleX 1  
scaleY 1  
controlledby ""

Comma-delimited list of player IDs who can control the path. Controlling players may delete the path. If the path was created by a player, that player is automatically included in the list.

All Playersis represented by having 'all' in the list.

barrierType "wall"

Dynamic Lighting Barrier type options include "wall", "oneWay", and "transparent"

oneWayReversed false

boolean

For more information on the format of _path data, see the section on paths.

 


Window

Note: Window and Door use an inverted axis compared to other types of objects. For instance, a top variable that would be 100 for another object is y -100 for window or door.

속성 기본값 노트
_id   A unique ID for this object. 모든 객체에서 전역적으로 고유합니다. 읽기 전용입니다.
_type "window" 읽기 전용입니다.
색상   경로의 16진수 색상입니다.
x 0 도어의 x축 중심 좌표입니다.
y 0 도어의 y축 중심 좌표입니다.
isOpen false 플레이어가 이 창을 통해 이동할 수 있는지 여부를 결정합니다.
isLocked false 플레이어가 창과 상호작용할 수 없도록 합니다.
경로   각각 x 및 y 좌표가 있는 두 개의 핸들(핸들0 및 핸들1)로 표시됩니다.

예시

on('chat: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이 될 것인 상단 변수는 창문이나 문에 대해 y -100입니다.

속성

기본값

노트

_id

 

이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에서 전역적으로 고유합니다. 읽기 전용입니다.

_type

“door”

읽기 전용입니다.

색상

 

경로의 16진수 색상입니다.

x

0

문의 x축 중심 좌표입니다.

y

0

문의 y축 중심 좌표입니다.

isOpen

false

이 문을 통해 플레이어가 이동할 수 있는지를 결정합니다.

isLocked

false

Prevents players from being able to interact with the door.

isSecret

false

Removes a door icon from player view and functions as a barrier.

path

 

Represented as two handles (handle0 and handle1) each with x and y coordinates.


텍스트

속성 기본값 노트
_id   A unique ID for this object. Globally unique across all objects in this game. 읽기 전용.
_유형 "text" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_pageid   객체가 있는 페이지의 ID입니다. 읽기 전용.
top 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" 이 값이 설정되지 않은 경우 "텍스트" 속성의 값 변경 시 글꼴 크기가 8로 줄어듭니다. 가능한 값 (대소문자를 구분하지 않음): "Arial", "Patrick Hand", "Contrail One", "Shadows Into Light", 그리고 "Candal". 유효하지 않은 이름을 지정하면, 이름이 없는 고정폭 세리프 글꼴이 사용됩니다.
레이어 "" "gmlayer", "objects", "map", 또는 "walls".
controlledby "" 텍스트를 제어할 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다. 제어하는 플레이어는 텍스트를 삭제할 수 있습니다. 텍스트를 생성한 플레이어는 자동으로 목록에 포함됩니다.

모든 플레이어 은 목록에 'all'이 포함되어 나타납니다.


그래픽(토큰/지도/카드 등)

속성 기본값 노트
_id   이 객체의 고유 ID입니다. 이 게임의 모든 오브젝트에서 전 세계적으로 고유합니다. 읽기 전용.
_유형 "그래픽" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용.
_subtype "토큰" 토큰 또는 카드일 수 있습니다 (토큰 및 맵의 경우) 또는 카드 (카드의 경우). 읽기 전용입니다.
_cardid   그래픽이 카드인 경우 ID로 설정됩니다. 읽기 전용입니다.
_pageid   객체가 있는 페이지의 ID입니다. 읽기 전용입니다.
imgsrc   그래픽 이미지의 URL입니다. 아래의 imgsrc 및 아바타 제한 사항에 대한 참고 사항을 참조하십시오.
bar1_link   Bar 1이 캐릭터에 연결되어 있는 경우 ID로 설정됩니다.
bar2_link    
bar3_link    
대표   이 토큰을 대표하는 캐릭터의 ID입니다.
왼쪽 0 지도의 왼쪽 가장자리에서 그래픽의 중심까지의 픽셀 수입니다.
상단 0 지도의 상단 가장자리에서 그래픽의 중심까지의 픽셀 수입니다.
너비 0 그래픽의 너비(픽셀)
높이 0 그래픽의 높이(픽셀)
회전 0 토큰의 방향(도)
레이어 "" "gmlayer", "objects", "map", 또는 "walls"
isdrawing false 이 속성은 고급 컨텍스트 메뉴에서 변경됩니다.
flipv false 세로로 뒤집기.
fliph false 가로로 뒤집기.
특수 능력 이름 "" 토큰의 이름.
gmnotes "" GM에게만 표시되는 토큰에 대한 메모.
controlledby "" 그래픽을 제어할 수 있는 플레이어 ID 목록을 쉼표로 구분한 것입니다. 제어하는 플레이어는 그래픽을 삭제할 수 있습니다. 그래픽이 플레이어에 의해 생성된 경우, 해당 플레이어는 자동으로 목록에 포함됩니다.

모든 플레이어 목록에 'all'이 포함되어 있습니다.

bar1_value "" 바 1의 현재 값입니다. 이것은 숫자 또는 텍스트일 수 있습니다.
bar2_value ""  
bar3_value ""  
bar1_max "" 바 1의 최대 값입니다. _value와 _max가 모두 설정된 경우, 토큰 위에 바의 백분율을 표시할 수 있습니다.
bar2_max ""  
bar3_max ""  
aura1_radius "" 페이지 설정에서 설정된 단위를 사용하여 오라의 반경입니다. 정수 또는 소수일 수 있습니다. 오라를 지우려면 빈 문자열로 설정하세요.
aura2_radius ""  
aura1_color "#FFFF99" 16진수 색상 또는 오라입니다.
aura2_color "#59E594"  
aura1_square false 오라는 원인가 사각형인가?
aura2_square false  
tint_color "transparent" 16진수 색상 또는 "투명"입니다. 그래픽의 색상을 물들입니다.
statusmarkers "" 현재 활성화된 statusmarkers의 쉼표로 구분된 목록입니다. 자세한 내용은 아래의 참고 사항을 참조하세요.
token_markers "" 게임에 현재 있는 각 토큰 마커에 대한 객체를 포함한 문자열화된 JSON 배열입니다. 아래에 예제를 찾을 수 있습니다.
showname false 토큰의 이름표를 표시할지 여부입니다.
showplayers_name false 이름표를 모든 플레이어에게 표시합니다.
showplayers_bar1 false 바 1을 모든 플레이어에게 표시합니다.
showplayers_bar2 false  
showplayers_bar3 false  
showplayers_aura1 false Show Aura 1 to all players.
showplayers_aura2 false  
playersedit_name true 플레이어가 토큰의 이름을 편집할 수 있도록 허용합니다. showplayers_name이 false인 경우에도 플레이어에게 이름표를 보여줍니다.
playersedit_bar1 true 플레이어가 토큰의 Bar 1을 편집할 수 있도록 허용합니다. showplayers_bar1이 false인 경우에도 플레이어에게 Bar 1을 보여줍니다.
playersedit_bar2 true  
playersedit_bar3 true  
playersedit_aura1 true Allow controlling players to edit the token's Aura 1. Also shows Aura 1 to controlling players, even if showplayers_aura1 is false.
playersedit_aura2 true  
light_radius "" Dynamic lighting radius.
light_dimradius "" Start of dim light radius. 만약 light_dimradius가 빈 문자열이라면, 토큰은 light_radius 거리까지 밝은 빛을 발산합니다. 만약 light_dimradius에 값이 있다면, 토큰은 light_dimradius 값까지 밝은 빛을 발산하고, 거기서부터 light_radius 값까지 어둠의 빛을 발산합니다.
light_otherplayers false 토큰의 빛을 모든 플레이어에게 보여줍니다.
light_hassight false 빛은 "시야"를 가진 플레이어들에게 "시야 강제 설정" 목적으로 제어됩니다.
light_angle "360" 광원의 각도 (도 단위). 예를 들어, "180"은 광원이 "시야"의 "앞쪽 반"에만 보이는 것을 의미합니다.
light_losangle "360" 그래픽의 시야 각도 (light_hassight이 true로 설정된 경우를 가정) (도 단위).
lastmove "" 토큰의 마지막 이동. 좌표의 쉼표로 구분된 목록입니다. 예를 들어, "300,400"는 토큰이 마지막 이동에서 left=300, top=400에서 시작했다는 것을 의미합니다. 토큰의 현재 top + left 값은 항상 마지막 이동의 "끝점"으로 가정됩니다. Waypoints are indicated by multiple sets of coordinates. For example, "300,400,350,450,400,500" would indicate that the token started at left=300, top=400, then set a waypoint at left=350, top=450, another waypoint at left=400, top=500, and then finished the move at its current top + left coordinates.
light_multiplier "1" Multiplier on the effectiveness of light sources. A multiplier of two would allow the token to see twice as far as a token with a multiplier of one, with the same light source.
adv_fow_view_distance "" The radius around a token where Advanced Fog of War is revealed.
light_sensitivity_multiplier 100 Multiplier on the effectiveness of light sources. A multiplier of 200 would allow the token to see twice as far as a token with a multiplier of 100, with the same light source.
night_vision_effect
  Changes the Night Vision Effect. Other options include “Dimming” and “Nocturnal”
bar_location   Adjusts the location of the token bars. 옵션에는 'overlap_top', 'overlap_bottom', 'bottom'이 있습니다.
compact_bar
  바가 압축되어 있는지 여부를 조정합니다. 다른 옵션은 compact입니다.
lockMovement false Graphic을 고정하는 옵션입니다. 참 또는 거짓 값입니다.

토큰 마커 예시

{
          "id":59, // the database id for the
          "name":"Bane", // the name (non-unique) of the marker
          "tag":"Bane::59", // how the token is actually referenced
          // this will include the id for custom markers, but not
          // for default markers.
          "url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^the url for the token marker's image }

중요한 링크된 캐릭터 + 토큰에 대한 참고 사항

캐릭터에 연결된 토큰의 경우, 토큰의 controlledby 필드는 캐릭터의 controlledby 필드에 의해 무시됩니다.

토큰 바 (예: bar1_value 및 bar1_max)는 토큰이 속성에 연결된 경우 (예: bar1_link 이 설정된 경우), 바에 값을 설정하면 해당 속성의 current 및/또는 max 값도 자동으로 업데이트되므로 수동으로 둘 다 설정할 필요가 없습니다.

게임 내에서 속성(또는 토큰 막대)이 수정될 때,변경:속성(그리고 속성별로, 예를 들어변경:속성:현재) 이벤트가 발생한 후에변경:그래픽(그리고변경:그래픽:막대1_값) 이벤트가 발생합니다. 두 이벤트 중 하나에 응답할 수 있지만, 속성 이벤트가 발생할 때 아직 기본 막대 값이 업데이트되지 않습니다.

상태 표시기에 대한 중요한 사항

2013년 8월 6일부터 토큰의 상태 표시기 처리 방식이 변경되었습니다. 그래픽 객체의 "statusmarkers" 속성은 이제 토큰에 활성화되어야 하는 모든 상태 표시기 색상/아이콘의 쉼표로 구분된 목록입니다. 형식은 다음과 같습니다:

//쉼표로 구분된 (배열로 만들기 위해 join 사용 또는 배열로 만들기 위해 split 사용). 
//상태 아이콘/색상 뒤에 "@" 기호가 오는 경우
//"@" 뒤에 오는 숫자는 아이콘의 배지로 표시됩니다 statusmarkers = "빨강,파랑,해골,죽은,갈색@2,녹색@6"

statusmarkers속성에 직접 액세스할 수 있지만, 기존 스크립트와의 하위 호환성을 유지하고 문자열 분할 및 구문 분석을 처리하는 코드를 직접 작성할 필요 없이 상태 마커로 쉽게 작업할 수 있는 방법을 제공하기 위해 상태 마커 작업을 위해 설정하거나 가져올 수 있는 객체에 '가상' 속성 집합을 제공합니다. 각 상태 마커에는 "status_<markername>" 속성이 있습니다. 예를 들어:

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

이러한 가상 프로퍼티에는 이벤트가 없으므로 토큰의 상태 마커 변경을 수신하려면change:graphic:statusmarkers을 사용해야 하며, 예를 들어change:graphic:status_red는 유효한 이벤트가 아니며 절대 실행되지 않습니다.

마커 트레이에 나타나는 순서와 동일한 사용 가능한 전체 상태 표시기 목록입니다:

"빨강", "파랑", "초록", "갈색", "보라", "분홍", "노랑", "죽은", "해골", "졸린", "반 하트", "반 흐림", "금지", "달팽이", "번개-나선", "스패너", "사슬-하트", "화학-볼트", "죽음-영역", "나를-마셔", "가장자리-균열", "닌자-가면", "스톱워치", "낚시-그물", "오버드라이브", "강한", "주먹", "자물쇠", "세 잎-클로버", "털털-날개", "때린", "발자국", "화살표-모양", "오라", "등-통증", "검은 깃발", "피-흘리는 눈", "번개-방패", "부서진-하트", "거미줄", "부서진-방패", "날아가는-깃발", "방사능", "트로피", "부서진-해골", "얼어붙은-구슬", "구르는-폭탄", "흰-탑", "잡기", "비명", "수류탄", "경비총", "모두를-위해", "천사-복장", "양궁-목표"

페이지

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에 대해 전 세계적으로 고유합니다. 읽기 전용입니다.
_type "페이지" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
_zorder "" 페이지의 객체 순서를 지정하는 ID 목록입니다. toFront and toBack 그리고 이와 관련된 콘텍스트 메뉴 항목을 사용하여 이 목록을 다시 정렬할 수 있습니다. 읽기 전용입니다.
special Ability Name "" 페이지의 제목입니다.
showgrid true 지도에서 그리드 표시하기.
showdarkness false 지도에서 안개 표시하기.
showlighting false 동적 조명 사용하기.
width 25 단위로 너비.
높이 25 단위로 높이.
snapping_increment 1 Size of a grid space in units.
grid_opacity 0.5 Opacity of the grid lines.
fog_opacity 0.35 Opacity of the fog of war for the GM.
background_color "#FFFFFF" Hexadecimal color of the map background.
gridcolor "#C0C0C0" 격자선의 16진수 색상.
grid_type "정사각형" "정사각형", "16진수", 또는 "hexr" 중 하나. (hex는 Hex(V)에 해당하고, hexr은 Hex(H)에 해당함.)
scale_number 5 하나의 단위의 거리.
scale_units "ft" The type of units to use for the scale.
gridlabels false Show grid labels for hexagonal grid.
diagonaltype "foure" One of "foure", "pythagorean" (Euclidean), "threefive", or "manhattan".
archived false Whether the page has been put into archive storage.
lightupdatedrop false Only update Dynamic Lighting when an object is dropped.
lightenforcelos false 시야 적용.
lightrestrictmove false 시야를 가진 객체가 동적 조명 벽을 통과하지 못하도록 함.
lightglobalillum false 어디에서든 토큰이 "보일 수 있는" 경우 밝은 빛이 존재한다고 가정됨.
jukeboxtrigger   페이지 로드 시 재생을 제어함. 옵션에는 'nonestopall' 또는 트랙의 id이 포함됩니다.

캠페인

속성 기본값 노트
_id "root" 이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에 대해 전역적으로 고유합니다. 읽기 전용입니다.
_type "campaign" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 그러나 Campaign 객체는 하나뿐이며 Campaign()로 액세스할 수 있습니다. 읽기 전용입니다.
turnorder "" 턴 순서의 JSON 문자열입니다. 아래 참조하세요.
initiativepage false 턴 순서 창이 열릴 때 추적기에 사용되는 페이지의 ID입니다. false로 설정되면, 턴 순서 창이 닫힙니다.
playerpageid false 플레이어 북마크가 설정된 페이지의 ID입니다. 플레이어는 플레이어별 페이지를 재정의하지 않는 한 기본적으로 이 페이지를 볼 수 있습니다.
플레이어별 페이지 false { "player1_id": "page_id", "player2_id": "page_id" ... } 형식의 객체 (JSON 문자열이 아님)입니다. 이 객체에 설정된 플레이어는 playerpageid를 재정의합니다.
_journalfolder "" 게임의 폴더 구조에 대한 데이터가 포함된 JSON 문자열입니다. 읽기 전용입니다.
_jukeboxfolder "" 게임의 주크박스 재생 목록 구조에 대한 데이터가 포함된 JSON 문자열입니다. 읽기 전용.

 턴 순서

턴 순서는 현재 턴 순서 목록을 나타내는 JSON 문자열입니다. 이는 객체의 배열입니다. 현재, 턴 순서에는 한 번에 한 페이지에서만 객체를 포함할 수 있습니다. 현재 턴 순서의 페이지 ID는 "initiativepage" 속성입니다. 두 개를 동기화하여 유지하십시오. 그렇지 않으면 이상한 결과가 발생할 수 있습니다.

턴 순서를 사용하려면 현재 턴 순서 상태를 나타내는 객체를 가져오기 위해JSON.parse()을 사용해야 합니다 (참고: 빈 문자열""인지 확인하고 빈 배열로 직접 초기화하십시오). 다음은 턴 순서 객체의 예입니다.

[
    {
     "id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //테이블 상의 그래픽 객체의 ID입니다. 이 값이 설정되면 턴 순서 목록은 테이블 상의 그래픽을 기반으로 목록의 이름과 아이콘을 자동으로 가져옵니다.
     "pr":"0", //리스트에서 항목의 현재 값입니다. 숫자 또는 텍스트일 수 있습니다.
     "custom":"" //항목에 대한 사용자 정의 제목입니다. ID가 "-1"이 아닌 값으로 설정된 경우 무시됩니다.
    },
    {
     "id":"-1", //사용자 정의 항목의 경우, ID를 반드시 "-1"로 설정해야 합니다 (숫자가 아닌 문자열임에 유의하세요.
     "pr":"12",
     "custom":"테스트 사용자 정의" //사용자 정의 항목에 대해 표시할 이름입니다.
    }
]

턴 순서를 수정하려면 현재 턴 순서 객체를 편집한 다음,JSON.stringify()을 사용하여 캠페인의 속성을 변경하세요. 리스트의 턴 순서와 배열의 순서는 동일하므로 예를 들어push()은 리스트의 끝에 항목을 추가하고,unshift()은 시작 부분에 추가합니다.

var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTE: 먼저 턴오더가 빈 문자열이 아닌지 확인합니다. 빈 배열처럼 취급합니다.
else turnorder = JSON.parse(Campaign().get("turnorder"));

//Add new custom entry to the end of the turn order.
turnorder.push({
    id: "-1",
    pr: "15",
    custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
 

플레이어

속성 기본값 노트
_id   이 객체의 고유 ID입니다. 이 게임의 모든 오브젝트에서 전 세계적으로 고유합니다. 읽기 전용.
_유형 "player" Can be used to identify the object type or search for the object. Read-only.
_d20userid   User ID — site-wide. For example, the player's user page on the wiki is /User:ID, where ID is the same value stored in _d20userid. Read-only.
_displayname "" The player's current display name. May be changed from the user's settings page. 읽기 전용.
_온라인 false 읽기 전용.
_마지막페이지 "" 플레이어가 GM으로서 본 마지막 페이지의 페이지 ID입니다. 이 속성은 플레이어나 GM으로 참여한 플레이어에 대해서는 업데이트되지 않습니다. 읽기 전용.
_매크로바 "" 플레이어의 매크로 바에 있는 매크로들의 쉼표로 구분된 문자열입니다. 읽기 전용.
speakingas "" The player or character ID of who the player has selected from the "As" dropdown. When set to the empty string, the player is speaking as him- or herself. When set to a character, the value is "character|ID", where ID is the character's ID. When the GM is speaking as another player, the value is "player|ID", where ID is the player's ID.
color "#13B9F0" The color of the square by the player's name, as well as the color of their measurements on the map, their ping circles, etc.
showmacrobar false 플레이어의 매크로 바가 표시되는지 여부입니다.

매크로

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에서 전 세계적으로 고유합니다. 읽기 전용입니다.
_type "macro" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
_playerid   이 매크로를 생성한 플레이어의 ID입니다. 읽기 전용입니다.
이름 "" 매크로의 이름입니다.
행동 "" 매크로의 텍스트입니다.
visibleto "" 매크로를 생성한 플레이어 외에도 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다.

모든 플레이어 은 목록에 'all'이 있는 것으로 나타납니다.

istokenaction false 이 매크로는 토큰을 선택할 때 표시되어야 하는 토큰 동작입니까?

 


굴릴 수 있는 테이블

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에서 전역적으로 고유합니다. 읽기 전용입니다.
_type "rollabletable" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
특수 능력 이름 "new-table"  
showplayers true  

Table Item 

속성 기본값 노트
_id   A unique ID for this object. Globally unique across all objects in this game. Read-only.
_type "tableitem" Can be used to identify the object type or search for the object. 읽기 전용입니다.
_rollabletableid "" 이 항목이 속하는 테이블의 ID입니다. 읽기 전용입니다.
아바타 "" 테이블 항목에 사용되는 이미지의 URL입니다. 아바타와 imgsrc 제한에 대한 참고 사항을 참조하십시오.
이름 ""  
몸무게 1 테이블 항목의 다른 항목과 비교한 무게입니다. 간단히 말해서, 무게가 3인 아이템은 무게가 1인 아이템보다 테이블에서 선택될 확률이 세 배 높습니다.

캐릭터

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체를 통틀어 유일한 ID입니다. 읽기 전용입니다.
_type "character" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
아바타 "" 캐릭터에 사용되는 이미지의 URL입니다. 아바타 및 imgsrc 제한 사항에 대한 참고 사항을 참조하십시오.
이름 ""  
소개 "" 캐릭터의 전기. 아래 참고 사항을 참조하여 노트, GM노트 및 전기 필드에 액세스하십시오.
gmnotes "" GM만 볼 수 있는 캐릭터에 대한 노트. 아래 참고 사항을 참조하여 노트, GM노트 및 전기 필드에 액세스하십시오.
보관됨 false  
inplayerjournals "" 이 캐릭터를 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다. "all"을 사용하여 모든 플레이어에게 볼 수 있는 권한을 부여하십시오.

모든 플레이어은 목록에 'all'이 있는 것으로 표시됩니다.

controlledby "" 이 캐릭터를 제어하고 편집할 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다. "all"을 사용하여 모든 플레이어에게 편집할 수 있는 권한을 부여하십시오.

모든 플레이어은 목록에 'all'이 있는 것으로 표시됩니다.

_defaulttoken "" 한 개의 문자열을 포함하는 JSON입니다. 이 문자열은 캐릭터의 기본 토큰 데이터를 포함합니다. 주의: 이는 "bio" 및 "notes"와 유사한 "blob"입니다. 따라서 get()에 콜백 함수를 전달해야 합니다. 읽기 전용입니다.

속성

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에서 전역적으로 고유합니다. 읽기 전용입니다.
_type "attribute" 이 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
_characterid "" ID of the character this attribute belongs to. Read-only. Mandatory when using createObj.
name "Untitled"  
current "" The current value of the attribute can be accessed in chat and macros with the syntax@{Character Name|Attribute Name}or in abilities with the syntax@{Attribute Name}.
max "" The max value of the attribute can be accessed in chat and macros with the syntax@{Character Name|Attribute Name|max}or in abilities with the syntax@{Attribute Name|max}.

 Important: See the note below about working with Character Sheets for information on how Character Sheet default values affect the use of Attributes.


Ability

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에 대해 전역적으로 고유합니다. 읽기 전용입니다.
_type "특기" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
_characterid "" 이 특기가 속한 캐릭터입니다. 읽기 전용입니다. createObj을 사용할 때 필수입니다.
이름 "Untitled_Ability"  
설명 "" 캐릭터 시트 인터페이스에 설명이 나타나지 않습니다.
행동 "" 능력의 텍스트입니다.
istokenaction false 이 능력이 부모 캐릭터에 연결된 토큰을 선택할 때 나타나는 토큰 동작입니까?

핸드아웃

속성 기본값 노트
_id   이 객체에 대한 고유 ID입니다. 이 게임의 모든 객체에서 전역적으로 고유합니다. 읽기 전용입니다.
_type "handout" 객체 유형을 식별하거나 객체를 검색하는 데 사용할 수 있습니다. 읽기 전용입니다.
avatar "" 핸드아웃에 사용되는 이미지의 URL입니다. avatar 및 imgsrc 제한에 대한 참고 사항을 참조하십시오.
special Ability Name "Mysterious Note"  
참고 "" 핸드아웃에 있는 텍스트를 포함합니다. 아래의 참고 사항을 참조하여 Notes 및 GMNotes를 사용하십시오.
gmnotes "" 핸드아웃에 있는 GM만 보는 텍스트를 포함합니다. 아래의 참고 사항을 참조하여 Notes 및 GMNotes를 사용하십시오.
inplayerjournals "" 이 핸드아웃을 볼 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다. 모든 플레이어에게 표시하려면 "all"을(를) 사용하십시오.

모든 플레이어은 목록에 'all'이 있으면 표시됩니다.

보관된 false  
controlledby "" 이 핸드아웃을 제어하고 편집할 수 있는 플레이어 ID의 쉼표로 구분된 목록입니다.

모든 플레이어은 목록에 'all'이 있으면 표시됩니다.

참고:API는 폴더 계층 구조에 액세스할 수 없습니다. API로 생성된 핸드아웃은 루트 수준에 배치됩니다.


덱에서 카드를 "뽑기", "나누기" 또는 "섞기" 위한 도우미 API 메서드가 있음을 참고하세요. SeeAPI Update forum post from March 2018.

속성 기본값 노트
_id "" id of the deck
_type "deck"  
name "" name of the deck
_currentDeck "" a comma-delimited list of cards which are currently in the deck (including those which have been played to the tabletop/hands). Changes when the deck is shuffled.
_currentIndex -1 다음에 뽑힐 카드는 무엇인가요?
_currentCardShown true 덱 맨 위의 현재 카드를 보여줍니다.
플레이어들에게 보여줍니다. true 덱을 플레이어들에게 보여줍니다.
플레이어들이 카드를 뽑을 수 있습니까? true 플레이어들은 카드를 뽑을 수 있나요?
아바타 "" 이 덱의 '뒷면'
목록에 노출됨 false 게임 보드에서 덱을 표시합니까? (현재 덱이 보이는 상태인가요?)
players_seenumcards true 플레이어들은 다른 플레이어의 패에 있는 카드 수를 볼 수 있나요?
players_seefrontofcards false 플레이어가 다른 플레이어의 패를 볼 때 카드 앞면을 볼 수 있나요?
gm_-seenumcards true GM이 각 플레이어의 패에 있는 카드 수를 볼 수 있나요?
GSM_SEEFRONTOFCARDS false GM이 각 플레이어의 패를 살펴볼 때 카드 앞면을 볼 수 있나요?
인피니트 카드 false 이 덱에는 '무한한' 수의 카드가 있습니까?
_cardSequencer -1 카드를 뽑을 때 덱을 진행하기 위해 내부적으로 사용됩니다.
cardsplayed "faceup" 이 덱에서 카드는 어떻게 테이블에 놓이나요? 'faceup' 또는 'facedown'.
defaultheight "" 테이블에 놓인 카드의 기본 높이는 얼마인가요?
기본 너비 ""  
디스카운트파일모드 "none" 이 덱에는 어떤 종류의 버리기 더미가 있나요? '없음' = 버려진 카드 더미 없음, '선택 뒷면' = 플레이어가 카드 뒷면을 보고 한 장 선택 가능, '선택 앞면' = 앞면을 보고 선택 가능, '드로우탑' = 가장 최근에 버린 카드 뽑기, '드로우바텀' = 가장 오래된 버려진 카드 뽑기입니다.
_discardPile "" 이 덱의 현재 버려진 카드 더미는 무엇인가요? 쉼표로 구분된 카드 목록입니다. 이 카드는 플레이에서 제거된 카드이며, 리콜이 실행될 때까지 셔플을 통해 덱에 다시 넣을 수 없습니다.

카드

속성 기본값 노트
이름 "" 카드의 이름
아바타 "" 카드의 앞면
_덱id "" 덱의 아이디
_타입 "카드"  
_아이디 ""  

각 플레이어는 하나의 손만 가질 수 있다.

속성 기본값 노트
currentHand "" comma-delimited list of cards currently in the hand. Note that this is no longer read only. Ideally, it should only be adjusted with the card deck functions.
_type "hand"  
_parentid "" ID of the player to whom the hand belongs
_id ""  
currentView "bydeck" when player opens hand, is the view 'bydeck' or 'bycard'?

Jukebox Track

속성 기본값 노트
_id   A unique ID for this object. Globally unique across all objects in this game. Read-only.
_type "jukeboxtrack" Can be used to identify the object type or search for the object. Read-only.
playing false 트랙이 재생 중인지 여부를 결정하는 데 사용되는 부울 값입니다. "true"로 설정하고 softstop을 "false"로 설정하면 트랙이 재생됩니다.
softstop false 한 번 이상 끝나지 않은 트랙인지 여부를 결정하는 데 사용되는 부울 값입니다. 트랙이 재생되도록 하려면 이 값을 "false"로 설정해야 합니다.
제목 "" 주크박스 탭에서 트랙의 표시되는 레이블입니다.
볼륨 30 트랙의 볼륨 레벨입니다. 정수로 설정해야 합니다(문자열이 아니어야 함), 그렇지 않으면 기능이 손상될 수 있습니다. 0-100까지의 값(백분율).
반복 false 트랙을 반복할까요? 그렇다면 true로 설정하세요.

커스텀 FX

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

imgsrc 및 avatar 속성 제한

이제는imgsrc 및아바타 속성을 편집할 수 있지만, Roll20의 모든 사용자에게 안전을 제공하기 위해 다음과 같은 제한 사항을 적용했습니다.

  • Roll20 라이브러리()에 업로드된 이미지 파일을 사용해야 하며, 외부 사이트(예: Imgur)나 Roll20 마켓플레이스가 아닌 이미지 파일을 사용해야 합니다. 이미지는 'https://s3.amazonaws.com/files.d20.io/images/' (메인 서버에 업로드된 이미지) 또는 'https://s3.amazonaws.com/files.staging.d20.io/images/' (개발 서버에 업로드된 이미지)로 시작해야 합니다. 브라우저의 개발자 도구를 사용하여 이미지의 소스 URL을 볼 수 있습니다.


미래에는 API 스크립트와 함께 사용하기 위해 이미지를 업로드 할 수있는 도구를 추가 할 수도 있지만, 현재는 자체 라이브러리에 업로드 된 이미지를 사용하십시오. 라이브러리에서 이미지를 삭제하면 해당 이미지를 사용하는 모든 게임에서 해당 이미지가 제거됩니다. 이는 API 스크립트를 사용하는 게임을 포함합니다.


노트, GM 노트 및 바이오 필드를 비동기적으로 사용하는 방법

캐릭터와 핸드 아웃의 "notes", "gmnotes"또는 "bio"필드에 액세스하려면 get() 함수의 두 번째 인수로 콜백 함수를 전달해야합니다. 다음은 예입니다:

var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
    log(bio); //캐릭터 바이오에 대해 무언가를 수행하세요.
});

이러한 필드의 값을 일반적으로 설정할 수 있습니다. 현재 (2016/05/09 기준) 이러한 비동기 필드에는 버그가 있어 createObj에 값을 전달하여 설정하면 객체가 이상한 상태로 남아있는 문제가 있습니다. 이 문제가 해결 될 때까지 .set을 사용하여 이러한 값을 설정해야합니다. 포럼에 대한 세부 정보. 또한, (2016/11/05 기준) notes 및 gmnotes 속성을 동일한 set() 호출에서 설정하려고하면 호출의 두 번째 속성이 잘못 설정됩니다. 포럼에 대한 세부 정보.


캐릭터 시트 작업

캐릭터 시트 기능은 시트에서 각 속성에 대한 기본값을 지정할 수 있기 때문에 속성 객체 유형의 사용에 영향을줍니다. 그러나 속성이 기본값으로 설정된 경우 해당 캐릭터에 대해 실제 속성 개체가 아직 게임에 생성되지 않았습니다. 우리는이 복잡성을 숨기기위한 편의 기능을 제공합니다. 특히 게임이 캐릭터 시트를 사용하는 경우 앞으로 속성의 값을 가져 오기위해이 기능을 사용해야합니다.

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()에 전달하여 결과를 자동으로 계산할 수 있는 주사위 엔진을 사용할 수 있습니다.

문자 시트가 API와 상호 작용하는 방식에 대한 자세한 내용은문자 시트문서를 참조하세요.

getAttrByName속성 개체 자체가 아닌 속성 값만가져옵니다. "current" 또는 "max" 외의 속성을 참조하거나 속성을 변경하려면 findObjs등의 다른 함수를 사용해야 합니다.

해당 속성이 존재하지 않는 경우,getAttrByName() 함수는undefined을 반환합니다.


객체 생성

createObj(type, attributes)

참고: 현재 'graphic', 'text', 'path', 'character', 'ability', 'attribute', 'handout', 'rollabletable', 'tableitem' 및 'macro' 객체를 생성할 수 있습니다.

게임에서createObj 함수를 사용하여 새로운 객체를 생성할 수 있습니다. 객체의 유형 (위의 객체 목록에서 유효한_type 속성 중 하나) 및 객체에 대한 속성 목록을 포함하는attributes 객체를 전달해야 합니다. 객체가 부모 객체를 가지고 있는 경우 (예: 속성과 능력은 캐릭터에 속하며, 그래픽, 텍스트 및 경로는 페이지에 속합니다 등), 속성 목록에 부모의 ID를 전달해야 합니다 (예: 속성을 생성할 때characterid 속성을 포함해야 합니다). 또한 새로운 객체를 생성할 때 읽기 전용 속성을 설정할 수 없으며, 이들은 자동으로 기본값으로 설정됩니다. 이 경우에만 예외적으로 'path' 속성을 포함하여 Path를 생성해야하지만, 경로가 초기에 생성된 후에는 수정할 수 없습니다.

createObj 을 사용하면 새로운 개체가 반환되므로 계속해서 작업할 수 있습니다.

게임에 추가되는 모든 캐릭터에 대해 새로운 Strength 속성을 생성합니다.
on("add:character", function(obj) {
    createObj("attribute", {
        name: "Strength",
        current: 0,
        max: 30,
        characterid: obj.id
    });
});

객체 삭제

object.remove()

참고: 현재 'graphic', 'text', 'path', 'character', 'ability', 'attribute', 'handout', 'rollabletable', 'tableitem' 및 'macro' 객체를 삭제할 수 있습니다.

.remove()함수를 사용하여 기존 게임 개체를 삭제할 수 있습니다. .remove() 함수는 createObj 함수로 생성할 수 있는 모든 개체에서 작동합니다. 함수를 개체에 직접 호출합니다. 예를 들어, mycharacter.remove();.


글로벌 객체

스크립트 어디에서나 전역적으로 사용 가능한 여러 객체가 있습니다.

Campaign() (함수)

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


state

state 변수는 게임에서 실행되는 모든 스크립트에서 접근할 수 있는 전역 범위의 객체입니다. 어떤 함수나 콜백에서든 언제든 전역 변수인 state를 사용하여state 객체에 접근할 수 있습니다. 또한상태개체는샌드박스를 실행할 때마다 유지되므로 나중에 스크립트를 실행할 때 필요한 정보를 저장하는 데 사용할 수 있습니다.

참고: API에서만 필요한 정보는 상태 객체를 사용하여 저장해야 합니다. 이는 플레이어 컴퓨터로 전송되지 않으며 게임 파일 크기를 늘리지 않습니다. 롤20 객체의 속성에 게임 내에서 필요한 값을 저장하세요.

저장 가능한 유형

state객체는JSON표준에서 지원하는 간단한 데이터 유형만 지속할 수 있습니다.

유형 Examples 설명
Boolean  거짓 값은 또는거짓 입니다.
Number 123.5 10 1.23e20 자바스크립트에서 지원하는 어떤 숫자 형식이든 가능합니다. 부동 소수점 또는 정수입니다.
문자열 'Hello Fantasy' "oh, and World" 표준 문자열입니다.
배열 [ 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: 'all the things' };  // 이렇게 절대로 하지 마세요!!!

 

  • 스크립트에서state라는 로컬 변수를 사용하지 마세요. 이렇게하면 스크립트를 나중에 사용하는 사용자들에게 혼란을 줄 수 있으며 코드가 부주의하게 편집되면 문제가 발생할 수 있습니다.
function turn(){
    var state = Campaign().get('turnorder'); // Bad Practice, Avoid it!
    // ...
}

 

  • 항상하나 이상의 네임스페이스 속성 아래에 속성을 배치하십시오. 충분히 설명적인 네임스페이스 속성을 사용하십시오. 스크립트또는설정같은 이름을 피하십시오. 최선은 모듈 이름이나 본인의 이름 또는 핸들을 사용하는 것입니다.
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(
        'Test Module',
        '<span style="color: '+state.MyModuleNS.config.color1+';">'+
            'State test'+
        '</span> '+
        '<span style="color: '+state.MyModuleNS.config.color2+';">'+
            'Script v'+state.MyModuleNS.version+' started '+(++state.MyModuleNS.count)+' times!'+
        '</span>'
    );
});

객체 찾기/필터링

API는 여러 개의 도우미 함수를 제공하여 객체를 찾는 데 사용할 수 있습니다.

getObj(type, id)
이 함수는 객체의 _type과 _id를 전달하면 하나의 객체를 가져옵니다. 가능한 경우 다른 찾기 함수보다 이 함수를 사용하는 것이 가장 좋습니다. 왜냐하면 이 함수만이 모든 객체 컬렉션을 반복하지 않아도 되기 때문입니다.

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) {    
  //Do something with obj, which is in the current page and is a graphic.
});

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

  • caseInsensitive(참/거짓): 참이면 문자열 속성은 문자열의 대소문자를 구분하지 않고 비교됩니다.
var targetTokens = findObjs({
    name: "target"
}, {caseInsensitive: true});
// 'target', 'Target', 'TARGET' 등 이름이 'target'인 모든 토큰을 반환합니다.

filterObjs(callback)

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

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

getAllObjs()

게임 내 모든 오브젝트(모든 유형)의 배열을 반환합니다. 필터 오브젝트를 호출하고 모든 오브젝트에 대해을 반환하는 것과 같습니다.


getAttrByName(character_id, 속성_이름, 값_유형)

속성이 없는 경우 문자 시트의 기본값을 사용하여 속성 값을 가져옵니다. value_type은 선택적 매개변수로, '현재' 또는 '최대'를 지정하는 데 사용할 수 있습니다.

getAttrByName속성 개체 자체가 아닌 속성 값만가져옵니다. "current" 또는 "max" 이외의 속성 속성을 참조하거나 속성 속성을 변경하려면 위의 다른 함수 중 하나를 사용해야 합니다(예:findObjs).

반복 섹션의 경우, 형식을 사용할 수 있습니다.repeating_section_$n_attribute, 여기서n 은 반복 행 번호입니다 (0부터 시작). 예를 들어,repeating_spells_$2_name 은반복_spells의 세 번째 행의name 값을 반환합니다.

다음과 같이getAttrByName와 동등한 동작을 달성할 수 있습니다.

// 현재와 최대는 속성과 게임 시스템에 완전히 의존합니다.
// 질문에 대한 자동으로 결정할 수 있는 함수는 없습니다.
function myGetAttrByName(character_id,
                         attribute_name,
                         attribute_default_current,
                         attribute_default_max,
                         value_type) {
    attribute_default_current = attribute_default_current || '';
    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');
    }
}
도움이 되었습니까?
21명 중 19명이 도움이 되었다고 했습니다.