닭장군(General Chicken)
정수변수는 var(0) ~ var(59) 를 쓸 수 있고 실수변수는 fvar(0) ~ fvar(39)를 쓸수 있습니다.
이 var는 정말 유용한 것으로 var값을 이용해 캐릭터의 각종 상태를 검사하거나 하는 등의 여러 핵심 요소들을 만들 수 있습니다.
var값들은 기본적으로 라운드동안 유지되며, CNS처음부분의 intpersistindex와 floatpersistindex에 따라 다음 라운드까지 유지시킬수 있으며 스텟 5900을 조정하면 다음 스테이지까지 유지시킬수도 있습니다.
(하위폴더의 다음스테이지에var지속 문서 참조)
- 이후님의 캐릭터 설명서 중.
부연설명 : 정수는 소수점이 없는것이다. 실수는 소숫점이 있는것이다.
변수는 숫자를 담는 통이다.
내가 쓰고싶은대로 쓰면 되는데, 예를 들면 이런식이다.
만약에 사과의 갯수와 배의 갯수를 측정해야 한다.
;var(0) : 사과갯수.
;var(1) : 배갯수.
이렇게 내 마음대로 정해놓고
var(0) = 7 <- 이렇게 하면 사과의 갯수는 7이 된다. var(0)이라는 변수 속에 7이라는 수가 들어가는것이다.
var(1) = 2 <- 이렇게 하면 배의 갯수는 2가 된다. var(1)이라는 변수 속에 2라는 수가 들어가는것이다.
예제1)
인공지능을 발동시키는 기초적인 방법이다.
[state -1, AI_Enable]
type = varset ;변수의 내용을 정한다.
trigger1 = command = "AI0"
trigger2 = command = "AI1"
trigger3 = command = "AI2"
trigger4 = command = "AI3"
trigger5 = command = "AI4"
trigger6 = command = "AI5"
trigger7 = command = "AI6"
trigger8 = command = "AI7"
trigger9 = command = "AI8"
trigger10 = command = "AI9" ;인공지능 커맨드중 하나라도 입력되면, (이렇게 많은것은 인공지능 발생 확률을 높이려고.)
var(10) = 1 ;var(10)이라는 변수 속에 1을 넣는다.
[state -1, AI_AssultL]
type = ChangeState ;동작이 나오게 한다.
value = 1010 ;아래의 조건들이 만족할 경우, 나올 동작번호.
triggerall = P2Life > 0 ;적이 KO당하지 않았을 때.(이게 없으면 적이 죽었는데도 한동안 계속 발광한다.)
trigger1 = var(10) = 1 ;var(10)이라는 인공지능용 변수의 수치가 1이어야 한다.
trigger1 = statetype != A ;공중에 떠있는 상태가 아니어야 한다.
trigger1 = ctrl ;조종이 가능한 상태라야 한다.
trigger1 = p2bodydist X <= 120 ;적이 전방 120픽셀 안에 있을때.
trigger1 = p2bodydist Y >= -50 ;적이 상방 50픽셀 안에 있을때.
trigger1 = random <= 100 ;0~999까지의 랜덤숫자중에, 100 이하의 숫자가 걸렸을 때.
명령어들에 대한 자세한 설명은 생략하고, 초록색의 설명 부분만 보시면 어떤 방식으로 사용했는지 알 수 있다. 일종의 스위치로 쓴 것이다. 여기서는 var(10)을 인공지능을 켜고 끄는 용도로 썼다.
예제2)
두들겨 맞고 나서, 더이상 안맞을 경우, 피해 체력의 절반을 서서히 회복하도록 만들어 보겠다.
체력은 소숫점도 계산하므로, 실수 변수인 fvar를 이용하겠음.
fvar(0) : 맞기전의 체력.
fvar(1) : 회복목표 체력.
[State -3, 0]
type = varset ;변수의 내용을 정한다.
trigger1 = movetype != h ;맞는 상태가 아닐 경우,
fvar(0) = life ;fvar(0)변수 속에 현재 체력을 넣는다.
[State -3, 1]
type = varset ;변수의 내용을 정한다.
trigger1 = movetype = h ;맞는 상태일 경우,
fvar(1) = ((fvar(0) - life)/2) + life ;피해체력을 반으로 나눈것과 현재 체력을 더한것을 fvar(1)속에 넣는다.
[State -3, 2]
type = lifeadd ;체력을 추가한다.
trigger1 = movetype != h ;맞는 상태가 아니고,
trigger1 = fvar(1) > life ;체력이 회복목표fvar(1)보다 낮을때,
trigger1 = time%5 = 0 ;5프레임 마다,
value = 1 ;체력을 1씩 회복한다.
초록색의 부분이 변수를 활용하는 부분이다. 예제1처럼 간단하게 켜고 끄는 기능이 아니라, 변수를 좀 더 적극 활용한 것이다. 이럴 때는 변수 안의 수가 계속 변한다. 358.0, 251.6, 644.1, 40.9 이런식이다.
처음에는 이런 공식을 짜기 어렵지만, 계속 머리굴리고 하다보면 익숙해 진다.







You do a good work!!!
I am waiting the others for 3 years!!!