4.5 KiB
Stat Checks — 능력치로 난이도 굴리기
Stat Checks는 시나리오에 명령 하나를 추가합니다. 바로 check입니다. 캐릭터의 능력치를 가져와 주사위 굴림과 보너스를 더하고, 합계를 난이도와 비교한 뒤 성공이냐 실패냐에 따라 이야기를 이어 갑니다. 비주얼 노벨은 이것으로 경비병을 설득하고, 타일 RPG는 녹슨 문을 부수는 데 씁니다. 능력치 자체는 Stats Engine과 게임의 규칙(RPG Plus에서는 Classic RPG Rules)이 가져 옵니다.
게임 안에서
RPG Plus 프롤로그에서 길이 갈라지는 자리에 나그네가 앉아 있습니다. 선택지 하나는 자기가 거는 판정 — 매력 대 10 — 을 스스로 밝힙니다:
선택 후에는 굴림이 한 줄로 표시됩니다:
여기서 주인공은 매력 8의 1레벨 무뢰배입니다. d20이 3이 나와 합계는 11 대 10 — 성공입니다. 이야기는 성공 갈래로 이어지고, 나그네는 주인공에게 부적을 던져 줍니다.
합계가 10에 미치지 못했다면 그 줄에는 실패가 표시되고, 이야기는 그녀가 고개를 돌리는 다른 갈래로 흘러갔을 것입니다.
그 뒤의 시나리오
rpg_plus_game/scenarios/rpg_plus/prologue.scenario에서 가져 온 것입니다(줄은 줄임):
option "정중하게 길을 묻는다 [매력 10]" -> :ask_way
option "말없이 지나친다" -> :leave
:ask_way
check cha 10 who=rpg_hero else=snub -> :gift
:gift
text "예의 바르네. 별일이야..."
action item.add id=classic/clover_charm
goto -> :leave
:snub
text "알아서 찾게 될 거야..."
check cha 10은 매력을 난이도 10에 대해 굴립니다. 성공하면 화살표 뒤의 레이블로, 실패하면 else=의 레이블로 건너뜁니다. else=가 없으면 실패는 그저 다음 줄로 이어집니다.
check 명령
check <stat> <difficulty> [who=player] [dice=d20] [bonus=2] [else=label] [quiet=1] -> :label
<stat>— 게임의 능력치 id. 예:cha,str.<difficulty>— 넘어야 할 숫자. 합계가 이것 이상이면 판정은 성공입니다.who=— 캐릭터 id, 또는player(기본값).dice=—d20,2d6,1d100등.none은 아무것도 굴리지 않아 판정이 단순 기준선이 됩니다. 능력치만으로, 늘 같은 방식으로 결정됩니다 — 노벨에 유용합니다("충분히 용감한가, 아닌가").bonus=— 합계에 더해집니다. 음수여도 됩니다.else=— 실패일 때 갈 레이블.quiet=1— 굴림 줄을 표시하지 않습니다.
합계는 능력치 + 주사위 + 보너스입니다.
기본 주사위
dice=가 없으면 판정은 게임 설정 checks.dice를 쓰고, 그것도 없으면 d20을 씁니다. RPG Plus는 자기 컬렉션에 이렇게 정해 두었습니다:
"settings": { "checks.dice": "d20" }
모든 판정에서 우연을 빼고 싶은 게임은 "checks.dice": "none"으로 정합니다.
결과를 제 방식으로 말하기
판정 뒤에는 이 대화 변수들에 굴림이 남습니다: check_stat, check_value, check_roll, check_bonus, check_total, check_dc, check_result. quiet=1과 함께라면 ptext 줄이 이야기의 말로 결과를 표현할 수 있습니다:
check str 14 quiet=1 else=stuck -> :open
:stuck
ptext "모든 ${check_total}을(를) 짜내어 밀지만 문은 버틴다."
표준 줄은 번역 키 checks/line([${check_stat}: ${check_total} 대 ${check_dc}] ${check_result})입니다. 게임은 자기 로컬라이즈 파일에서 이것을 바꿀 수 있습니다.
문제가 생겼을 때
- 합계가 주사위뿐이다. 능력치 id가 틀렸거나 그 캐릭터에게 그 능력치가 없습니다.
- 결과가 늘 같다. 게임의
checks.dice가none이거나 줄에dice=none이 적혀 있습니다. - 주사위 문구가 깨졌다. 잘못된 형식의
dice=는 장면을 망가뜨리는 대신 아무것도 굴리지 않아, 판정이 단순 기준선이 됩니다. 주사위는d20,2d6,1d100처럼 쓰세요.
![해질녘의 갈림길. 질문 "그녀에게 뭐라고 할래?"와 두 선택지: "정중하게 길을 묻는다 [매력 10]", "말없이 지나친다".](/cthangover/mod_stat_checks/media/branch/master/docs/assets/seer-choice.jpg)
![대화창에 표시된 줄: "[매력: 11 대 10] 성공".](/cthangover/mod_stat_checks/media/branch/master/docs/assets/check-line.jpg)
