게임강의
어둠의전설 분류

조건, 반복문의 장 -1

컨텐츠 정보

  • 111 조회
  • 0 추천
  • 0 비추천
  • 목록

본문

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

 

원래 이번시간에는 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
등록된 댓글이 없습니다.
전체 658 / 1 페이지
번호
제목
이름

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 147,509
2 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 91,378
3 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 64,195
4 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 59,621
5 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 57,281
6 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 54,964
7 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 52,661
8 no_profile Gatchaman쪽지보내기 자기소개 아이디로 검색 전체게시물 45,503
9 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 35,020
10 no_profile Revolution쪽지보내기 자기소개 아이디로 검색 전체게시물 29,199
알림 0