게임강의
바람의나라 분류

바람의나라 [CR] 스크립트의 기본적인 이해

컨텐츠 정보

본문

[출처: Gamezone]
작성자: 작성자 없음

 


안녕하세요. 글로리입니다.


 


스크립트의 기본적인 이해에 대해서 설명하도록 하겠습니다.


 


:: 목차 ::


 


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 : 스크립트를 강제종료하는 함수


 


이정도가 기본적인 함수가 되겠네요. 스크립트를 해석하는데 참고하시면 도움이 될것 같습니다.


 


이것으로 강의를 마치도록 하겠습니다. 감사합니다.


 


 

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 422 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 82,042
2 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 51,280
3 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 33,479
4 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 28,199
5 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 22,310
6 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 21,452
7 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 16,347
8 no_profile 호롤롤로쪽지보내기 자기소개 아이디로 검색 전체게시물 13,500
9 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 13,246
10 no_profile 하늘2쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 13,239
알림 0