게임강의
어둠의전설 분류

어둠의전설 [어둠의전설]조건, 반복문의 장 -1

컨텐츠 정보

본문

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

안녕하세요


 


어둠도우미입니다.


 


이번 시간에는 조건, 반복문을 배워보도록 하겠습니다.


 


원래 이번시간에는 While, Case,Rand 도 배우셔야 하는대.


 


일단 아주 중요하고 기본베이스 조건문인 IF와 반복문인 FOR을 배우신후. 2장에서 While, Case, Rand를 배우도록 하겠습니다!


 


□조건문 IF


스크립트를 짜시면 가장 많이 접하게되는게 조건문 if 입니다.


if는 영어문법과 비슷하다고 보시면 됩니다.


~한다면, ~한다


 


If I have a car, I will pay. => 차가 있다면 돈을 낸다. 라는 문장입니다. 


 


이것을 어둠의전설 스크립트로 변환 시키면


 


if(item_exist(@myid,"자동차")){ <===== 나의 아이템 중에 "자동차"라는 아이템이 있을경우


money_del 가격; <=====가격만큼 돈을 차감 한다.


}


이렇게 바뀌게 됩니다. 


 


좀 더 그럴싸 하게 만들어보면 


 


if(item_exist(@myid,"자동차")){<===== 나의 아이템 중에 "자동차"라는 아이템이 있을경우


if(get_money(@myid) < 100000){ mes 0 "돈이 없습니다"; goto ended;} <=============== 돈이 10만원이 이하일 경우. NPC 메세지 출력후 종료.


item_del "자동차", 1; <========= 자동차라는 아이템을 1개 삭제/


money_del 100000; <=====가격만큼 돈을 차감 한다.


ended:


del @myid; <====== 임시변수 삭제.


}


 


========사용가능 식들========


if(get_money(@myid) < 100000){ // 10만원보다 내 돈이 적을시. [미만 개념]


if(get_money(@myid) > 100000){ // 10만원보다 내 돈이 많을시. [초과 개념]


if(get_money(@myid) == 100000){ // 10만원보다 내 돈이 같을시.


if(get_money(@myid) != 100000){ // 10만원보다 내 돈이 같지 않을시.


 


if(get_money(@myid) <= 100000){ // 10만원보다 내 돈이 적거나 같을시. [이하 개념]


if(get_money(@myid) >= 100000){ // 10만원보다 내 돈이 많거나 같을시. [이상 개념]


 


if(!item_exist(@myid,"자동차")){ 내 아이템에 자동차라는 아이템이 없을시.


if(!get_money(@myid)){ 돈이 없을시.


 


if(item_exist(@myid,"자동차") && get_money(@myid) > 100000 ){ // &&는 AND개념 입니다. 내 아이템에 자동차가 있고, 돈이 10만보다 많을시. * 쭉 이어나갈 수 있습니다.


if(item_exist(@myid,"자동차") || get_money(@myid) > 100000 ){ // ||는 OR 개념 입니다. 내 아이템에 자동차가 있거나 돈이 10만보다 많을시. * 쭉 이어나갈 수 있습니다.


 


이정도만 아시면 조건문 IF는 완벽하게 마스터 하신겁니다!


 


 


□반복문 FOR


 


어느게임 어느 언어에서든 중요한 반복문 For 입니다.


 


영어 개념으로 보기엔 에매합니다.


 


~위해서, ~동안 둘다 해당 되기 때문입니다.


 


그러니  ~가 , ~에 도달하여 같아질때까지 ~를 지원해준다라고 보시면 좋을꺼 같습니다.


 


for(set@i,0; @i <=10 ; set@i,@i+1){


~가 : set @i가.


~에 도달하여 같아질때까지 : @i <= 10 [10에 도달할때 까지]


~를 지원해준다 : set@i,@i+1를 지원해준다.


 


 


set@test, 0; // @test라는 임시변수를 지정해준다.


for(set@i,0; @i <=10 ; set@i,@i+1){ // 반복문 For를  시켜준다.


     set @test, @test + 1;  // 반복이  1회 될때마다 @test는 1씩 증가한다.


}


이렇게 하면@test가 11이 되겟죠?


@test[0]=> 1


@test[1]=> 2


.


.


.


@test[10]=>11


 


만약 도중에 내가 원하는값을 지정해서 멈추고 싶을경우는 방금배운 조건문 IF와 Break를 사용하면 됩니다.


*Break 단어그대로 멈춘다는 뜻입니다.


     


 


set@test, 0; // @test라는 임시변수를 지정해준다.


for(set@i,0; @i <=10 ; set@i,@i+1){ // 반복문 For를  시켜준다.


     set @test, @test + 1;  // 반복이  1회 될때마다 @test는 1씩 증가한다.


        if(@test >=7){break;} // @test의 임시변수값이 7이상일 경우 해당 반복문을 중지시키고 다음문을 읽어준다.


}


//Break가 요기로 이동시켜줍니다.


//Break에 걸려 넘어온 @i는 그럼 몇일까요?   [드래그 하시면 답이 보입니다.] ==> 6


 


이정도만 아시면 For문도 마스터 하신겁니다!!!!


 


============================


 


오늘 강의를 마치며.


 


정말 엄청 오래만에 적은거 같네요.


 


For문과 If문을 마스터 하셔야 다음강의에 배우시는 While, Rand, Case문을 이해하시기 쉽습니다!


 


그러면 아디오스!


 

관련자료

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

강의실

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