Roll20용 건독 매크로 제작에서 가장 골 아픈 부분은,

결국 1d100을 구한 다음 그 값의 자릿수합을 구해서 달성치를 구한다는 판정 방식 자체다.


Roll20은 무료 계정의 매크로 기능만으로는

특정 주사위 값을 저장해서 다른 함수에 집어넣거나 하는 거 자체가 불가능하거든.



그런데 Roll20의 버그성 기능들을 연구하는 작자들이

이걸 우회할 수 있는 테크닉을 개발해 놓은 게 있더라...?



간단히 말하자면 Templete 기능에는 각 주사위 값을 인덱싱할 수 있는 기능이 흔적처럼 존재하고

이걸 이용해서 할 수 있는 거라고 해 봤자 주사위 값을 출력만 하지 어디 저장할 수는 없지만,

Roll20 매크로 문법이 [가 이렇게 [[[ 이어지면 일종의 버그를 일으킨다는 점을 이용해서

이 인덱싱 숫자가 조건에 따라 바뀌도록 하여 주사위 굴림 내에 투입할 수 있는,

Roll index manipulation이라는 채신-기술이 있었다!



대체 이게 뭔 소린지 하룻밤을 새서 고민해 본 결과,

예시문의 방식을 따라해서 '굴린 주사위 값의 10의 자리 숫자'를 구하는 예문 두 가지를 제작할 수 있었다.




&{template:default} [[ $[[12]] ]] $[[$[[1]]]] [[[ [[ floor( [[ 1d100 - 1 ]] / 10 ) + 2 ]] [[[[[[[[[[ [[[[[[[[[[0]]]]]]]]]] ]]]]]]]]]] [[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]][[0]] $[[23]] [[[[[[[[[[ [[[[[[[[[[0]]]]]]]]]] ]]]]]]]]]] ]]] {{Raw Roll=$[[0]]}} {{10의 자리=$[[13]]}}


&{template:default} $[[$[[1]]]] [[[ [[ floor( [[ 1d100 - 1]] / 10 ) + 1 ]] ]]] [[[[[[[[[[ [[[[[[[[[[0]]]]]]]]]] ]]]]]]]]]] [[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]][[0]] {{Raw Roll=$[[0]]}} {{10의 자리=$[[11]]}} 



둘 다 Roll20 켜고 돌려보면 잘 작동함.





자 이제 1의 자리를 구하는 방법을 찾으면 된다.



...근데 이게 진짜로 문제인 게, Roll index를 참조하기 위해 뭔 요령을 더 붙이지 않고 정직하게 하려고 하면

내가 [[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]][[0]] 식으로 값을 200개 채워넣어야 하는데

이 정도 크기의 매크로가 Roll20에서 작동할 리가 없다...




일단 좀 더 연구해보겠습니다.

실마리 정도만 겨우 잡았다는 걸로...