게임강의
어둠의전설 분류

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

컨텐츠 정보

본문

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

안녕하세요


 


어둠도우미 입니다.


 


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


 


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
등록된 댓글이 없습니다.
전체 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