게임강의
기타게임 분류

[어둠의전설] 몹 밀기를 만들어보자

컨텐츠 정보

본문

이번에는 스크립트의 기초를 이용한. 몹밀기 스크립트를 만들어보겠습니다

 

0    SKILL_몹밀기    {
    set@myid,get_myid();        //자신변수를 정합니다

    set@target,skill_target();  //스킬타켓을 정하구요
    set@x1,get_xs();  // 자신의 x좌표
    set@y1,get_ys(); // 자신의 y좌표
    set@side,get_side(@myid); //자신이 바라보는 side방향!

 

  ## *Side Tip* ##

  ##    0  : ▲      ##

  ##    1  : ▶      ##  자신이 바라보는 방향 기준입니다.

  ##    2  : ▼      ##

  ##    3  : ◀      ##

  #############


    skill_delay 2; //스킬 딜레이
    motion 1,20;  // 모션

    if(istype(@target)==1 ){ //몹일시!


        switch(@side){ // side를 불러와 조건문을 취한다.
            case 0: //사이드가 0일때 조건문
            set@char,get_char_serial(@myid,@x1,(@y1)-2);  // 겹치기 방지용으로 유저를 불러온다!
            set@char2,get_mobxy(get_xs(@myid),get_ys(@myid)-2);  // 겹치기 방지용으로 몹을 불러온다!
           
            if(get_xy_block(@myid,get_xs(@myid),get_ys(@myid)-2)==1||istype(@char)==3||istype(@char2)==1){ // 자신앞 2칸앞에 벽이있거나, 유저가있거나, 몹이있을시.
                message 3,"밀 수 없습니다";
                goto ended; // 임시변수 삭제문으로 이동.
            }


            set_mobys @target, @y1 - 2; // 내 앞의 몹을 -2칸 앞으로 민다!


            break;  // break 현제 조건문을 중지한다.

 

        //--- 밑은 반복 입니다!!--///


            case 1:
            set@char,get_char_serial(@myid,(@x1)+2,@y1);
            set@char2,get_mobxy(get_xs(@myid)+2,get_ys(@myid));
            if(get_xy_block(@myid,get_xs(@myid)+2,get_ys(@myid))==1||istype(@char)==3||istype(@char2)==1){
                message 3,"밀 수 없습니다";
              goto ended;
            }
            set_mobxs @target, @x1 + 2;
            break;
            case 2:
            set@char,get_char_serial(@myid,@x1,(@y1)+2);
            set@char2,get_mobxy(get_xs(@myid),get_ys(@myid)+2);
            if(get_xy_block(@myid,get_xs(@myid),get_ys(@myid)+2)==1||istype(@char)==3||istype(@char2)==1){
                message 3,"밀 수 없습니다";
                  goto ended;
            }
            set_mobys @target, @y1 + 2;
            break;
            case 3:
            set@char,get_char_serial(@myid,(@x1)-2,@y1);
            set@char2,get_mobxy(get_xs(@myid)-2,get_ys(@myid));
            if(get_xy_block(@myid,get_xs(@myid)-2,get_ys(@myid))==1||istype(@char)==3||istype(@char2)==1){
                message 3,"밀 수 없습니다";
                goto ended;
            }
          set_mobxs @target, @x1 - 2;
            break;
        }

ended:

del @char;

del @char2;  //이렇게 분리한 이유는 없는 임시변수를 삭제하면 오류가 날 수 있어서. 분리 시켜뒀습니다.

    }

del @myid;

del @target;

del @x1;

del @y1;

del @side;
}

관련자료

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

강의실

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 147,509
2 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 84,576
3 no_profile 검은고양이쪽지보내기 자기소개 아이디로 검색 전체게시물 69,383
4 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 57,810
5 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 57,281
6 no_profile 동가리쪽지보내기 자기소개 아이디로 검색 전체게시물 56,810
7 no_profile 라프텔쪽지보내기 자기소개 아이디로 검색 전체게시물 52,661
8 no_profile Gatchaman쪽지보내기 자기소개 아이디로 검색 전체게시물 47,885
9 no_profile 닥터스쪽지보내기 자기소개 아이디로 검색 전체게시물 35,540
10 no_profile 냥집사쪽지보내기 자기소개 아이디로 검색 전체게시물 30,398
알림 0