[[분류:Antimatter Dimensions]] [include(틀:안티딤)] [목차] == 개요 == [[../리얼리티|리얼리티]] 이후 해금되는 자동화 시스템인 오토메이터에 관한 문서, [[스크립트 언어|스크립트]] 시스템을 사용하여 개발에 연이 없는 사람이라면 처음 사용할때는 배워야 할 것이 많을 수도 있다. 텍스트 에디팅과, 블럭 에디팅 두가지의 방식으로 스크립트를 작성 할 수 있다. 텍스트 에디팅의 경우 모든 구문은 한 줄에 한개만 작성될 수 있고, 닫는 중괄호도 한줄을 차지한다. 스크립트는 20개까지 저장 가능하고, 글자 수는 스크립트당 1만자, 총합 6만자 까지만 허용된다. 실행의 경우 기본적으로 초당 2줄까지 실행되고, 리얼리티 횟수당 0.6%씩 증가해서 초당 1000줄[* 1039번 리얼리티시 도달]까지 실행이 가능하다. == 스크립트 명세 == * 타임 스터디 관련 * studies respec 타임 스터디의 재설정 기능을 활성화한다. 재설정은 다음 이터니티에 진행된다. * studies [nowait] load id * studies [nowait] load name 타임 스터디를 불러온다. id로 설정하면 몇번째 프리셋을 불러올지[* 1~6이다. 0부터 시작하지 않으니 유의해야한다.], name이면 어느 이름의 프리셋을 불러올지 지정하면 된다. nowait이 붙어있다면 완전히 불러오지 못해도 그대로 넘어가고, 붙어있지 않다면 모두 불러올 때까지 대기한다. * studies [nowait] purchase 지정된 타임 스터디를 구매한다. 각 스터디는 반점(,)으로 구분하고, 번호 외에 이름을 가진 스터디는 이름을 입력해도 된다. nowait이 붙어있다면 모두 구매하지 못해도 다음으로 넘어가고, 붙어있지 않다면 모두 구매할 때까지 대기한다. ---- * 이벤트 트리거 관련 * infinity [nowait] * eternity [nowait] [respec] * reality [nowait] [respec] 지정된 프레스티지 리셋을 진행한다. nowait이 붙어있다면 리셋하지 않고도 다음으로 넘어가고, 붙어있지 않다면 리셋이 가능할 때까지 대기한다. respec이 붙어있다면 이터니티는 타임 스터디를 재설정하고, 리얼리티는 글리프 장착을 해제한다. * unlock [nowait] 이터니티 챌린지 혹은 딜레이션을 해금한다. nowait이 붙어있다면 해금하지 않고도 다음으로 넘어가고, 붙어있지 않다면 해금이 가능할 때까지 대기한다. * start [nowait] 이터니티 챌린지 혹은 딜레이션을 시작한다. nowait이 붙어있다면 시작하지 않고도 다음으로 넘어가고, 붙어있지 않다면 시작이 가능할 때까지 대기한다.[* 앞에서 unlock을 해주지 않았다면, EC는 자동으로 해금하지만 딜레이션은 무한루프가 걸릴 수 있다.] ---- * 설정 변경 관련 * auto infinity * auto eternity * auto reality 지정된 자동구매기의 설정을 변경한다. 설정값은 다음과 같다. * on - 활성화한다.[* 보통 설정을 바꾸면 자동으로 활성화되어, 굳이 쓸 일이 없는 설정이다.] * off - 비활성화한다. * - 지정된 시간을 간격으로 설정한다. ns, nm, nh 형태로 축약 할 수 있다. * x highest - 최고 IP/EP/RM보다 n배 높을때 자동으로 리셋하게 설정한다. * - 주어진 값에 도달하면 자동으로 리셋하게 설정한다. 리얼리티 자동구매기의 글리프 레벨 옵션은 설정 할 수 없다. * black hole 블랙홀을 켜고, 끈다. ~~하지만 굳이 끌 사람이 있을까..~~ ---- * 정보 관련 * notify <"text"> 지정된 내용을 알림창으로 띄운다. 하지만 고정된 내용만 띄울 수 있어 생각보다 활용도가 높지는 않다. * // [comment] * # [comment] 주석이다. 즉, 아무런 실행을 하지 않는다. 하지만 한개의 명령어라 한 줄을 통째로 차지한다. ---- * 스크립트 진행 관련 * wait 주어진 조건을 만족할 때까지 대기한다. * pause 주어진 간격동안 대기한다. ms, seconds, minutes, hours 단위가 있고, 축약형도 지원한다. 오프라인 틱을 계산할 때는 제대로 동작하지 않을 수 있다. * if { \~\~ } 조건이 만족되었을 때만 코드를 실행하고, 그렇지 않다면 블럭의 뒤로 이동한다. * until { \~\~ } 조건이 만족될 때 까지 코드를 실행한다. 조건 대신 프레스티지 이벤트를 지정할 수 있고, 이 때는 해당 이벤트가 발생할 때까지 반복한다.[* 버그가 있는지 until이 있는 줄을 실행하는 중에 이벤트가 발생해야 제대로 인식된다.] * while { \~\~ } 조건이 만족되는 동안 코드를 실행한다. 일반적인 프로그래밍 언어와는 달리, break가 없어 반드시 조건이 거짓이 되어야만 탈출이 가능하니 주의해야한다. ---- * 연산 관련 * 비교 연산자 오토메이터에는 4개의 비교연산만 존재한다. <, >, <=, >= 4개만 사용할 수 있고, ==, != 조차도 없다. * 재화 목록 비교 대상으로 사용할 수 있는 재화들의 목록이다. 비교 연산자와 함께 사용하여 조건문을 사용할 수 있다. * AM, IP, EP, RM - 각각 현재 소지한 반물질, IP, EP, RM의 양이다. * infinites, eternities, realities - 현재 소지한 인피니티, 이터니티, 리얼리티 횟수이다. * banked infinites - 보관된 인피티티 횟수이다. * pending ip, pending ep, pending tp, pending rm, pending glyph level - 리셋시 얻을 수 있는 IP, EP, TP, RM의 양과, 글리프의 레벨이다. * dt, tp, rg, rep, tt - 현재 소지한 DT, TP, 레플리칸티 갤럭시, 레플리칸티, TT의 갯수이다. * total tt - 소지한 TT와 이미 사용한 TT의 합산이다.[* 딜레이션 등의 해금에 사용된 TT는 제외된다.] * total completions - EC의 클리어 횟수 합산이다. * pending completions - 이번 리셋에서 EC가 클리어되는 횟수이다. * ecX completions - 해당 챌린지가 클리어된 횟수이다. == 글자 수 최적화 팁 == 스크립트에 글자 수 제한이 있는 만큼, 가급적이면 글자수를 적게 유지하는 것이 더 많은 스크립트를 사용하는 것에 도움이 될 수 있다. 혹은 스크립트를 따로 작성 및 저장한 뒤, 외부 툴인 [[https://vince7778.github.io/automatorplusplus/|Automator++]]를 통해 압축하는 방식도 사용할 수 있다. 수동으로 스크립트를 최적화하고자 한다면, 다음을 참고하자. * 주석은 스크립트를 읽는 데에 도움은 되지만, 주석도 글자 수를 차지한다. 차라리 원본 스크립트를 따로 저장해두고, 인게임에는 주석을 지운 스크립트를 저장해두면 글자 수를 확보할 수 있다. 무조건 주석을 유지해야겠다면, 반드시 주석을 // 대신 # 으로 시작하자. 1글자가 줄어든다. * 중괄호의 줄바꿈은 없앨 수 없다. 일반적인 프로그래밍 언어와는 다르게, 여는 중괄호는 앞 조건문에 묶인 문법이고, 닫는 중괄호는 블럭의 끝을 알리는 일종의 명령이다. 이로 인해 중괄호 한개만 있는 줄이 있어도 더 줄일 수가 없다. * 가급적이면 축약 표현을 사용하면 좋다. 시간의 경우 10초는 10 seconds 대신 10s, 1분은 1 minutes 대신 1m으로 쓰는 등의 축약 표현이 지원된다. 축약 표현으로 쓰는 것이 훨씬 짧을것이다. 숫자의 경우 뒤에 0이 여러번 반복된다면, 로거리즘 표기법을 사용하자. 1000 -> 1e3, 10000 -> 1e4와 같이 사용하면 된다. * 불필요한 띄어쓰기는 제거해도 된다. 이터니티 챌린지를 가리키는 ecX의 경우 붙여도, 띄워도 동작한다. 다만, 붙이는 쪽이 1글자 더 짧다. 비교연산자의 앞뒤에도 띄어쓰기를 제거할 수 있다. 문법 하이라이팅이 제대로 동작하지 않는 경우도 있지만, 문제 없이 동작한다. * 이상, 이하보다 미만, 초과를 주로 사용하면 좋다. <=, >=보다 <, >이 더 짧다. 우선 비교에 사용하는 게임 내의 모든 숫자는 정수로만 되어있기 때문에, x >= y는 x > y-1, x <= y는 x < y+1로 작성해도 된다. 혹은 큰 수의 경우, 오차가 이상 혹은 이하를 사용하는 것이 미만, 초과를 사용하는 것과 큰 차이가 없을 정도인 경우가 대부분이다. 예를 들어 1e5000 + 1과 1e5000을 비교하면, 1은 아무런 의미가 없는 차이이기 때문이다. == 샘플 == 처음부터 스크립트를 짜기에는 무리가 있으므로, 샘플을 구해서 자신의 상황에 맞게 변경해서 사용하면, 훨씬 수월하게 진행할 수 있다. [[https://discord.com/channels/351476683016241162/1053347773828829214]] 에서 스크립트 샘플을 구할 수 있다.