바람의나라 [CR] 스크립트의 기본적인 이해
컨텐츠 정보
- 21 조회
- 0 추천
- 0 비추천
- 목록
본문
작성자: 작성자 없음
안녕하세요. 글로리입니다.
스크립트의 기본적인 이해에 대해서 설명하도록 하겠습니다.
:: 목차 ::
1.변수 선언
2.조건문
3.잘 쓰이는 함수
초보자도 이해하기 쉽도록 설명해드릴테니, 차근차근 따라와주세요.
1. 변수 선언
[이미지 링크 만료]
주술사의 마법중 하나인 성려멸주의 스크립트입니다.
보세요, set, set, set. set에 집중하세요.
여기저기에 set이 난무하죠? 그리고 그 앞에는 @가 따라옵니다.
변수란 과연 무엇일까요? 바로, 사용자가 필요에 의해 구동기 속에 저장하는 숫자, 또는 문자열 입니다.
자, 여기 기본적인 변수선언이 있습니다.
set @value, 100;
하나하나 살펴보도록 하죠.
set : 변수 선언을 하기위해 사용하는 함수입니다. 아직 함수가 무엇인지 모르시는분들은 "명령어" 라고 알고 계세요. 변수 선언을 하기위해 꼭 있어야합니다.
@value : 변수의 이름을 지정할 수 있습니다. value가 아니더라도, @a, @b, @c 등 마음껏 지정이 가능합니다. 단, 한글이나 특수문자는 안돼요. 오직 영어만.
, : 대부분의 함수에게 필요한 구분자입니다. 다음 값을 입력하기 위해 꼭 필요합니다.
100 : 변수 지정 값입니다. @value를 100으로 선언한다. 라는 뜻이죠. 그럼? @value=100 이 되는겁니다.
; : 함수 종료 선언문입니다. 이게 없으면 안됩니다. 모든 함수는 종료할때 꼭 ;를 붙여주셔야 합니다. 위 스크린샷을 보세요. 이해가 바로 되실겁니다.
자, 그럼 @value 앞의 @는 대체 무엇일까요?
변수이름 앞의 기호는 그 변수의 용도를 구분하기 위해 사용하는겁니다.
@ : 임시변수. 한번 스크립트를 사용하고 나면 저장값이 초기화된다.
예를들어, 주모 스크립트에서 @value를 100이라고 설정했어도 왈숙네 스크립트에서는 여전히 @value는 0인것.
$ : 계정변수. 계정에 저장되는 변수를 선언할때 사용된다. 예를들어 다람쥐를 잡을때마다 set #kill, #kill+1; 이라고 선언한다면?
그 값은 저장되서, 재접속을 하더라도 다람쥐 10마리를 잡았으면 #kill은 10, 100마리를 잡았다면 #kill은 100인것.
# : 서버변수. 서버에 저장되는 변수를 선언할때 사용된다. 구동기 자체에 저장되는 것이기때문에 누구든지, 어디서든지 불러올수 있다는것.
주모에서 #value를 100이라고 설정했으면, 왈숙네에서도 #value는 100인것이다.
변수의 범위는 임시변수<계정변수<서버변수 이니 참고하도록 하시길 바랍니다.
2. 조건문
조건문은 대표적으로 if, while, for이 있습니다.
for은 상급자용이고 심화내용이니 이 글에서는 다루지 않겠습니다.
1.if
if는 만약 ~ 라면의 뜻을 가지고있는 조건문입니다.
if 소지금전 100 이상이라면?
if #kill 이 100 이상이라면?
이런 가정을 세워 만약 그 가정이 들어맞는다면 괄호안의 스크립트가 실행되며
들어맞지 않는다면 스크립트가 실행되지 않는 구조입니다.
[이미지 링크 만료]
간단한 if구문입니다. 보이시나요? 하나하나 파헤쳐보도록 하죠.
if(@mp<@needmp) : 만약 @mp라는 변수가 @needmp라는 변수보다 작을때. 라는 뜻입니다.
반드시 if 뒤에는 조건이 와야하며, 조건은 괄호를 쓰고 그 안에다 적어야 합니다.
간단한 조건을 살펴보죠.
@mp<100 : @mp가 100보다 클때.
@mp<=100 : @mp가 100보다 크거나 같을때
@mp==100 : @mp가 100일때. 반드시 같다는 등호는 두번 써야합니다.
@mp>=100 : @mp가 100보다 작거나 같을때
@mp>100 : @mp가 100보다 작을때
이런식으로 나타낼 수 있습니다.
조건을 괄호()로 나타낸다면, 조건이 맞았을때 실행될 스크립트는 대괄호{}로 나타냅니다.
{
message @mysd, 3, "마력이 부족합니다";
end;
}
해석이 되시나요? 현재 마력(@mp)이 요구 마력(@needmp)보다 적을때, 다음과 같은 메세지를 출력한다. "마력이 부족합니다."
그리고 종료한다. end;
이런식으로 if를 세워두고
조건을 활용하면 더욱 풍부하게 스크립트를 사용하실 수 있습니다.
2.while
while은 괄호 안의 조건이 맞았을때, 대괄호 안의 내용을 계속해서, 반복적으로 사용하라는 조건문입니다.
예를 보실까요.
[이미지 링크 만료]
}
자, 살펴보도록하죠. while(#kill>=1) 만약 #kill이라는 변수가 1 이거나, 그 이상이라면
다람쥐를 #kill마리 잡았다고 계속 출력하라는 뜻의 간단한 스크립트입니다.
#kill이 0이하가 되지않는이상 계속계속 무한대로 출력하죠.
그렇기때문에 while에는 제동을 걸어줄 무언가가 필요합니다.
#kill을 0으로 만들어주거나, 아니면 위 구문처럼 sleep 1000 즉, 1초를 대기하라 라는 함수를 넣어주거나 해야합니다.
그렇지않으면 구동기는 무한대로 엄청빠르게 명령을 실행하다, 결국 지쳐 오류를 뿜뿜하며 나자빠져버립니다.
어렵지 않은 구문이니 꼭 이해하시고 사용하시기 바랍니다.
3. 잘 쓰이는 함수
함수란 무엇일까요? 스크립트에서 함수란 기능을 뜻합니다.
get_money 함수는? 소지금액을 불러오는 함수(기능)입니다.
message 는? 메세지를 출력하는 함수(기능)
get_mp 는? 현재 마력을 불러오는 함수 등등
여러가지 함수가 존재합니다.
자주쓰이는 몇가지 함수들을 여기서 설명해보도록 하겠습니다.
set : 변수를 선언하는 함수
get_hp : 현재체력을 불러오는 함수
get_maxhp : 최대체력을 불러오는 함수
set_hp : 현재체력을 지정하는 함수
set_maxhp : 최대체력을 지정하는 함수
get_mp : 현재마력을 불러오는 함수
get_maxmp : 최대마력을 불러오는 함수
set_mp : 현재마력을 지정하는 함수
set_maxmp : 최대마력을 지정하는 함수
get_money : 소지금액을 불러오는 함수
set_money : 소지금액을 지정하는 함수
item_add : 아이템을 주는 함수
item_del : 아이템을 삭제하는 함수
magic_add : 마법을 주는 함수
magic_del : 마법을 빼앗는 함수
warp : 지정된곳으로 이동시키는 함수
set_x : x좌표를 지정하는 함수
set_y : y좌표를 지정하는 함수
damage : 데미지를 주는 함수
myid : 사용자의 id값을 불러오는 함수
mysd : 사용자의 sd값을 불러오는 함수
★id, sd란 ? : sql상으로 나타내는 유저 고유 식별번호 입니다. 접속할때마다 바뀔수도 있으니 항상 선언해줘야하는것이 포인트.
goto : 라벨로 이동하는 함수
effect : 이펙트를 실행시키는 함수
sound : 사운드를 재생시키는 함수
end : 스크립트를 강제종료하는 함수
이정도가 기본적인 함수가 되겠네요. 스크립트를 해석하는데 참고하시면 도움이 될것 같습니다.
이것으로 강의를 마치도록 하겠습니다. 감사합니다.
-
등록일 00:20
-
등록일 08.20
-
등록일 08.10VMware 네트워크 IP 설정댓글 3
-
등록일 08.08