최근 수정 시각 : 2025-01-29 18:07:45

Antimatter Dimensions/오토메이터


파일:Antimatter_Dimension_main_logo.png
Ω 초반
∞ 무한 ∝ 무한 돌파
Δ 영원 시간 연구
Ψ 시간 팽창
Ϟ 리얼리티 오토메이터
셀레스티얼
기타 도전과제
도전
공략
모드 NG+++


1. 개요2. 스크립트 명세3. 글자 수 최적화 팁4. 샘플

1. 개요

현실 이후 해금되는 자동화 시스템인 오토메이터에 관한 문서. 편의 기능이기 때문에 쓰지 않는다고 게임 진행이 막히는 것은 아니다.

현실 파트의 퍽에서 자동화기 포인트(Automator Point, AP)를 얻어 해금할 수 있다. 이 AP는 오로지 자동화기 해금만을 위한 포인트이므로 자동화기를 해금하고 나면 게임 내에서 모든 AP 표기가 사라진다.

스크립트 시스템을 사용하여 개발에 연이 없는 사람이라면 처음 사용할 때는 배워야 할 것이 많을 수도 있다. 그런 경우 공략 등에서 다른 사람이 쓴 스크립트를 복사해서 쓰면 된다.

텍스트 에디팅과, 블럭 에디팅 두 가지의 방식으로 스크립트를 작성 할 수 있다. 텍스트 에디팅의 경우 모든 구문은 한 줄에 한개만 작성될 수 있고, 닫는 중괄호도 한줄을 차지한다.

스크립트는 20개까지 저장 가능하고, 글자 수는 스크립트당 1만자, 총합 6만자 까지만 허용된다.

실행의 경우 기본적으로 초당 2줄까지 실행되고, 리얼리티 횟수당 0.6%씩 증가해서 초당 1000줄[1]까지 실행이 가능하다.

2. 스크립트 명세

  • 타임 스터디 관련
  • studies respec
    타임 스터디의 재설정 기능을 활성화한다. 재설정은 다음 이터니티에 진행된다.
  • studies [nowait] load id <selector>
  • studies [nowait] load name <name>
    타임 스터디를 불러온다. id로 설정하면 몇번째 프리셋을 불러올지[2], name이면 어느 이름의 프리셋을 불러올지 지정하면 된다.
    nowait이 붙어있다면 완전히 불러오지 못해도 그대로 넘어가고, 붙어있지 않다면 모두 불러올 때까지 대기한다.
  • studies [nowait] purchase <study_list>
    지정된 타임 스터디를 구매한다. 각 스터디는 반점(,)으로 구분하고, 번호 외에 이름을 가진 스터디는 이름을 입력해도 된다.
    nowait이 붙어있다면 모두 구매하지 못해도 다음으로 넘어가고, 붙어있지 않다면 모두 구매할 때까지 대기한다.

  • 이벤트 트리거 관련
  • infinity [nowait]
  • eternity [nowait] [respec]
  • reality [nowait] [respec]
    지정된 프레스티지 리셋을 진행한다.
    nowait이 붙어있다면 리셋하지 않고도 다음으로 넘어가고, 붙어있지 않다면 리셋이 가능할 때까지 대기한다.
    respec이 붙어있다면 이터니티는 타임 스터디를 재설정하고, 리얼리티는 글리프 장착을 해제한다.
  • unlock [nowait] <ECn|dilation>
    이터니티 챌린지 혹은 딜레이션을 해금한다.
    nowait이 붙어있다면 해금하지 않고도 다음으로 넘어가고, 붙어있지 않다면 해금이 가능할 때까지 대기한다.
  • start [nowait] <ECn|dilation>
    이터니티 챌린지 혹은 딜레이션을 시작한다.
    nowait이 붙어있다면 시작하지 않고도 다음으로 넘어가고, 붙어있지 않다면 시작이 가능할 때까지 대기한다.[3]

  • 설정 변경 관련
  • auto infinity <setting>
  • auto eternity <setting>
  • auto reality <setting>
    지정된 자동구매기의 설정을 변경한다. 설정값은 다음과 같다.
  • on - 활성화한다.[4]
  • off - 비활성화한다.
  • <n> <seconds|minutes|hours..> - 지정된 시간을 간격으로 설정한다. ns, nm, nh 형태로 축약 할 수 있다.
  • <n> x highest - 최고 IP/EP/RM보다 n배 높을때 자동으로 리셋하게 설정한다.
  • <n> <IP|EP|RM> - 주어진 값에 도달하면 자동으로 리셋하게 설정한다. 리얼리티 자동구매기의 글리프 레벨 옵션은 설정 할 수 없다.
  • black hole <on|off>
    블랙홀을 켜고, 끈다. 하지만 굳이 끌 사람이 있을까..

  • 정보 관련
  • notify <"text">
    지정된 내용을 알림창으로 띄운다. 하지만 고정된 내용만 띄울 수 있어 생각보다 활용도가 높지는 않다.
  • // [comment]
  • # [comment]
    주석이다. 즉, 아무런 실행을 하지 않는다.
    하지만 한개의 명령어라 한 줄을 통째로 차지한다.

  • 스크립트 진행 관련
  • wait <condition>
    주어진 조건을 만족할 때까지 대기한다.
  • pause <interval>
    주어진 간격동안 대기한다. ms, seconds, minutes, hours 단위가 있고, 축약형도 지원한다.
    오프라인 틱을 계산할 때는 제대로 동작하지 않을 수 있다.
  • if <condition> { \~\~ }
    조건이 만족되었을 때만 코드를 실행하고, 그렇지 않다면 블럭의 뒤로 이동한다.
  • until <contidion|prestige> { \~\~ }
    조건이 만족될 때까지 코드를 실행한다.
    조건 대신 프레스티지 이벤트를 지정할 수 있고, 이 때는 해당 이벤트가 발생할 때까지 반복한다.[5]
  • while <condition> { \~\~ }
    조건이 만족되는 동안 코드를 실행한다.
    일반적인 프로그래밍 언어와는 달리, 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의 합산이다.[6]
  • total completions - EC의 클리어 횟수 합산이다.
  • pending completions - 이번 리셋에서 EC가 클리어되는 횟수이다.
  • ecX completions - 해당 챌린지가 클리어된 횟수이다.

3. 글자 수 최적화 팁

스크립트에 글자 수 제한이 있는 만큼, 가급적이면 글자수를 적게 유지하는 것이 더 많은 스크립트를 사용하는 것에 도움이 될 수 있다.
혹은 스크립트를 따로 작성 및 저장한 뒤, 외부 툴인 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은 아무런 의미가 없는 차이이기 때문이다.

4. 샘플

처음부터 스크립트를 짜기에는 무리가 있으므로 Ninjatsu 의 스크립트 샘플을 이용하면 훨씬 수월하게 진행할 수 있다.

https://docs.google.com/spreadsheets/u/0/d/1AgetIMHR5CUZbcWRKeSQqCyzW15AECUaoBiAH8OF5jI/htmlview

스크립트를 복사하여, 게임상에서 import 하여 사용한다.
[1] 1039번 리얼리티시 도달[2] 1~6이다. 0부터 시작하지 않으니 유의해야한다.[3] 앞에서 unlock을 해주지 않았다면, EC는 자동으로 해금하지만 딜레이션은 무한루프가 걸릴 수 있다.[4] 보통 설정을 바꾸면 자동으로 활성화되어, 굳이 쓸 일이 없는 설정이다.[5] 버그가 있는지 until이 있는 줄을 실행하는 중에 이벤트가 발생해야 제대로 인식된다.[6] 딜레이션 등의 해금에 사용된 TT는 제외된다.