변수란? // 변하는 수

 

라고 정의할수 있습니다.

 

처음 하시는분들은 헷갈리시죠?

 

자.. 여기서 더 헷갈리게 만들어 드리겠습니다.

 

@ 임시변수

$ 계정변수

# 서버변수

 

CR에서 쓰이는 변수는 3가지가 있습니다.

 

 

에게...? 3개밖에 없어? 간단하네. 라고 생각하시는분들을 위해 좀 더 헷갈리게 만들어 드리겠습니다.

 

 

@ 임시변수 : 한개의 스크립트 안에서만 적용되는 변수 // 아무것도 해당 되는 사항이 없는 無 의공간

$ 계정변수 : 해당되는 아이디에서만 적용되는 변수

# 서버변수 : 모든 아이디가 적용되는 변수

 

 

이쯤 되면 이해하시는 분들도 계실테고 아직도 헷갈리시는 분들이 계실껍니다.

 

아직 함수에대해 언급을 하지 않았으니 예제를 가지고 시작해 보겠습니다.

 

우선 변수를 사용하실려면 선언을 먼저 하셔야 됩니다.

 

@ $ # 에게 명령을 하는거죠

 

 

 

나쁜남자 : 무의공간에서 너에게 명령한다.

나쁜남자 : 너의 임시 이름은 @asdf 이다.

 - @asdf 라는 임시변수가 생겼습니다.

 - @asdf 라는 변수에게 아무 명령을 하지 않았습니다. 그러므로 기본세팅은 0

 

나쁜남자 : @asdf 라는 곳에 1이라는 임무를 주겠다. // 함수로 표현 : set @asdf, 1;

 

 

자. 이제 @asdf 라는 변수에게 선언을 하였으니 @asdf 에 해당되는 사항은 1 입니다.

 

선언을 하였으니 이제 활용을 해야죠.

 

활용편은 if문 강좌에서 시작하겠습니다.

 

일단 보시죠..

 

 

ex) 1번

스크립트 시작 {

if(@asdf == 1) { dialog 0,0,0, "하이"; }

else { dialog 0,0,0, "말걸지마"; }

 

}스크립트 끝

 

ex) 2번

스크립트 시작 {

set @asdf, 1;

if(@asdf == 1) { dialog 0,0,0, "하이"; }

else { dialog 0,0,0, "말걸지마"; }

 

}스크립트 끝

 

 

위 예제 2번을 보시면 아까 위에서 선언했던 set @asdf, 1; 이것을 보실수 있습니다.

 

예제 1번은 set @asdf, 1; 이게 없습니다.

 

같은 스크립트 입니다.

 

무슨 차이일까요? 과연 이렇게 실행되면 어떻게 될까요?

 

예지 1번 같은경우는 set @asdf, 1; 선언을 하지 않았습니다.

 

그러므로 else 부분에 말걸지마 라고 대화창이 뜹니다.

 

2번 일땐 하이 라고 대화창이 뜹니다.

 

두개의 NPC 를 만들고

1번 NPC에게 예제 1번 스크립트를 넣고

2번 NPC에게 예제 2번 스크립트를 넣어 봅시다.

 

2번을 클릭하면 하이라고 문구가 뜨겠지요?

근데 1번을 클릭하면 말걸지마 라고 문구가 뜹니다.

 

이상하네요? 분명 2번 NPC에서 set @asdf, 1; 를 선언했는데

1번을 클릭하면 왜 말걸지마가 뜰까요?

 

 

 

네 그렇습니다. 한개의 스크립트에서만 사용되는 임시변수를 사용했기 때문에 그렇습니다.

 

만약 @ 이걸 $ 이걸로 변경해 주면 어떻게 될까요?

 

똑같은 상황입니다.

 

 

ex) 1번

스크립트 시작 {

if($asdf == 1) { dialog 0,0,0, "하이"; }

else { dialog 0,0,0, "말걸지마"; }

 

}스크립트 끝

 

ex) 2번

스크립트 시작 {

set $asdf, 1;

if($asdf == 1) { dialog 0,0,0, "하이"; }

else { dialog 0,0,0, "말걸지마"; }

 

}스크립트 끝

 

두개의 NPC 를 만들고

1번 NPC에게 예제 1번 스크립트를 넣고

2번 NPC에게 예제 2번 스크립트를 넣어 봅시다.

 

1번을 클릭하면 말걸지마라고 문구가 뜨겠지요? 계정에 set $asdf, 1; 를 선언을 하지 않았습니다.

그뒤에 2번을 클릭하면 하이 라고 문구가 뜹니다.

다시한번 1번을 클릭해 볼까요?

 

어라? 얘도 하이 이러네요?

 

왜 그럴까요?

 

네 눈치채신분들도 있을껍니다.

 

@ 이건 한개의 스크립트에서만 활용되지만

 

$ 요건 해당 아이디 계정에 저장되는 변수 입니다. ( 퀘스트 쓸때 자주 사용 합니다 )

 

그러니 2번 NPC를 클릭하면 set $asdf, 1; 라고 계정에 $asdf 1 로 설정이 되어 버린겁니다.

한마디로 해당 아이디에 $asdf 라는 변수가 저장 된거죠.

따로 set $asdf 를 하지 않는이상 그 아이디는 이제 영구히 $asdf 가 1로 된겁니다.

 

이쯤되면 @ $ 요 두개는 이해가 되셨을꺼라 믿습니다.

 

 

이제 가장 중요한 서버변수 #

 

서버변수는 모든 유저들이 사용할수 있는 변수 입니다.

 

보통 이벤트 같은거 할때 많이 사용 되지요.

 

 

 

다음은 스크립트의 핵심 if 문에 대해서 알아보도록 합시다.

 

 

질문은 댓글로.

1

+ Recent posts