출처 :   ReversalDef 코드 강좌 - M.U.G.E.N. 마이너 갤러리 (dcinside.com) 

작성자 : SAE


크게 두 가지의 쓰임새가 있는데 격투게임에서는 무적 말고도 가드포인트라고 하는 일부 기술 중에 시전 중 특정 프레임에서 공격을 자동으로 막아주는 역할을 하는 기능이 있는 거 다 알지? 그거랑 반격기를 구현할 때 주로 쓰이는 코드임.


이런 걸 흔히 리버설이라고 불리는 듯 함. 그래서 코드 이름도 이렇게 지은 듯.



[State 0, ReversalDef]

type = ReversalDef

trigger1 = time = [1,10]

히트 박스끼리 맞닿아야 적용이 되기 때문에 공격 박스가 있는 프레임을 적용시켜야 함. 나는 time을 사용해서 위처럼 범위를 설정해서 씀.


reversal.attr = (S,C,A,SA,CA,SCA),(NA,SA,HA,NP,SP,HP,NT,ST,HT)

리버설 판정을 설정할 수 있음. 위에도 말했지만 히트 박스끼리 맞닿았을 때 hitdef의 attr이 위 판정이 일치하면 리버설이 적용 됨. 이게 reversal.attr끼리도 적용되기 때문에 서로의 가드 포인트끼리 부딫히는 이상한 현상이 나오기도 함.

단점은 hitdef의 attr과 reversal.attr판정만 적용되기 때문에 projectile은 막지 못함. 이건 다른 코드를 별도로 사용해서 만들어야 해서 까다로움.




나도 슈퍼 아머 코드인 hitoverride를 사용해서 어거지로 했음.



pausetime = 자신(수), 상대(양수)

리버설이 발동되었을 때 적용할 경직임. 가드포인트를 만들 거라면 필수로 쓰이게 됨.


sparkno = 정수

리버설이 발동되었을 때 히트 이펙트를 출력시킬 수 있음.

안 쓸거면 그냥 -1를 쓰면 되고, 사용할 때는 S+숫자 이렇게 쓰면 됨. 예 : sparkno = S1000


sparkxy = X축(정수), Y축(정수)

sparkno의 위치 설정. 뭔가 이펙트 위치가 마음에 안 든다 싶으면 씀.


hitsound = S그룹(수), 인덱스(수)

리버설이 발동되었을 때 사운드를 출력시킬 수 있음.

안 쓸거면 그냥 -1를 쓰면 되고, 사용할 때는 S+숫자, 숫자 이렇게 쓰면 됨. 예 : hitsound = S1,1


p1stateno = 정수


p2stateno = 정수

리버설이 발동되었을 때 해당 statedef으로 이동 됨. p1은 자신, p2는 상대인거 잘 알지?

가드포인트를 사용할 때는 쓸 일이 없고 주로 반격기를 만들 때 쓰이게 될 거임.