FANDOM


무겐에는 [statedef ]라고 불리우는 스테이트가 있고, [state ]라고 불리우는 스테이트 컨트롤러가 있다.

이때, 스테이트 컨트롤러 (줄여러 컨트롤러) 는 스테이트에 종속하게 되는 요소인데, 1개의 스테이트 내부에는

최대 512개의 컨트롤러까지만 종속 가능하다.


513개 이상의 컨트롤러를 가진 스테이트를 읽어들였을 때, 무겐은 강제 종료한다.

이때, 특정한 방법을 사용하면 강제 종료가 일어나지 않도록 만들 수 있다.


1. reversaldef의 pausetime

2. hitdef의 pausetime (단, hitdef는 공격하는 쪽만 해당)

3. %n버그


위의 1, 2의 경우를 "hitpausetime"이라고 하며, hitpausetime이 존재하는 동안에는 513개 이상의 컨트롤러를 읽어들일 수 있게 된다.


단, 무겐 시스템의 한계를 넘어서는 동작이기 때문에 그냥은 실행되지 않고, 무겐의 데이터 일부에 간섭하게 된다. 이를 응용하여 alive값 (목숨 값) 에 간섭하여 KO시키는 것이 바로 초즉사이다.


사용법편집

우선, hitpausetime이 존재하는 상태에서 아래의 컨트롤러를 읽어들인다.


[statedef OOOO]


[state 1]

type=null

trigger1=1


[state 2]

type=null

trigger1=1


...

...

...


[state 553]

type=null

trigger1=1

ignorehitpause=1


[state 554]

type=null

trigger1=1

ignorehitpause=1


[state 555]

type=null

trigger1=1

ignorehitpause=1


[state 556]

type=changestate

trigger1=1

value=XXXX

ignorehitpause=1


윈무겐에서, alive값은 553, 554, 555, 556번째 위치에 존재한다.

따라서 해당하는 자리의 컨트롤러를 ignorehitpause=1 해줌으로서 발동시키면

alive값에 간섭하게 된다. (좀더 정확히 말하자면, 해당 값에서 1이 감소한다.)

마지막은 changestate함으로서 원래 자리로 돌아가도록 하자.


무겐 1.0과 1.1에서는 557, 558, 559, 560번째 위치에 alive값이 존재함으로,

코드가 위와는 조금 달라질 것이다.


원리편집

일반적인 경우, alive값은 1이다.

그리고 무겐은 이를 16진수로 인식한다.


10진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9를 사용하지만

16진수는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F를 사용하므로,

alive값이 18이라면 무겐은 16진수로 12라고 인식할 것이다.


그런데, 무겐이 인식하는 자릿수는 최대 8자리이므로, alive=1일 때, 무겐은

00 00 00 01

이라고 인식한다.


그리고 이 순서를 거꾸로 하면

01 00 00 00

이고, 이것이 바로

553, 554, 555, 556번째 컨트롤러에 대응된다.


hitpausetime 동안 553번째 컨트롤러에서 ignorehitpause=1이 있어서 컨트롤러가 실행되면,

맨 앞의 01에서 1을 빼게 되고, 결국 alive값은

00 00 00 00, 즉 0이 된다.


이를 이용하면 캐릭터의 id, alive, palno, helpertype, parentid, parent주소 등을 변경할 수 있는데,

alive값을 변경하는 것을 초즉사,

oarentid값을 변경하는 것을 부모변경,

parent주소값을 변경하는 것을 부모날조라고 부른다.