• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 바람의나라 강의게시판 CR
    • 바람의나라 강의게시판 CR
    • [CR] 전설 // 이전 강의에 이은 2번째 강의!

      • 우지냥
      • 2016.12.03 - 20:31 199

    //오늘은 callfunc에 대해 설명합니다. 오늘도 기준은 rb기준으로 하겠습니다.

     

    저번 스크립트에서 callfunc 뭐시기가 엄청 많았죠?

     

    callfunc는 func로 USER_FUNCTION( 자기가 만든 함수) 에 만들어놓고 호출해서 쓰는 거입니다.

    자주 반복되고 스크립트 전반적으로 계속적으로 드가는 부분이거나 반복적으로 쓰이는부분에선

    자기가 정의해놓고 쓰면 유용하겠죠 ?

     

    이전 강의에서 PKMAP_CHECK와 SIDE_CHECK 두 개를 설명드리고 끝내겠습니다!

     

    먼저 저 함수가 추가되있다는 가정하에 스크립트내에서 호출방법은

    callfunc "함수명",인자값(0),인자값(1),***;

    이런식입니다. 인자값 필요없이 하면 callfunc "함수명";으로 끝내도 됩니다.

     

    인자값은?( 제 주관적인 생각이라서 대충 이렇구나 이해하시면 됩니다.)

    스크립트 내에서 callfunc "함수명",@i; 라면 @i값을 복사해서 func에 대입하는 것입니다.

     

    C++과 곁들인다면

     

    int sum(int a int b) // func와 비슷한거입니다.

    {

       return a+b;

    }

    void main() //스크립트작성한다고 보시면되요! 메인함수

    {

       int x=5,y=6,result;

       result = sum(x,y); // 여기서 x,y가 인자값입니다. x=5,y=6을 sum함수정의한곳으로 복사해서 가져가서 a와 b에 대입하는거입니다

    }

    결국 result는 5+6인 11입니다.

     

     

    이제 설명들어갈게요
    func PKMAP_CHECK //func 함수명
    {
     set @id,myid(); // 앞강의에설명되어있음!
     set @sd,mysd();
     if( get_mapid(@id) == 1) //자기가 맵 1번에 있으면
     {
      message @sd, 3, "마법사용금지구역"; // 메세지로 마법사용금지구역을 띄우고 
      end; // end;는 스크립트를 멈춘다?종료한다?의미로 딱 마법사용금지메세지까지만 하고 여기 
       func함수도 그렇고 호출한 함수도 script는 더이상 읽지 않고 종료됩니다.
     }
     if( get_mapid(@id) == 2)
     {
      set @MAP, 2;
     }
     if( get_mapid(@id) == 3)
     {
      set @MAP, 3; // 2번맵이면 @MAP을 2 3번맵이면 @MAP을 3
     }
     return @MAP; // return은 return; 은 그냥 이 func함수를 벗어나서 script로 돌아간다생각하시면되요
                         // return @MAP;은? @MAP의 값을 가지고 script로 복귀한다는 의미입니다!
    }
    쉽죠 ? 그럼 이번엔 인자값을 쓰는 func함수를 살펴볼게요
    func SIDE_CHECK //함수명
    {
     set @id,myid();
     set @sd,mysd();
     set @RANGE,getarg(0); // getarg(0)가 인자값입니다.
         인자값입력방법은 callfunc "함수명",getarg(0),getarg(1),***;
         그럼 앞의 스크립트에서 callfunc "SIDE_CHECK",@i;
         라면 getarg(0)에 @i값이 복사되서 드가는 거겠죠?
     set @SIDE, get_direction(@id); // 자신의 보는 방향을 나타냅니다. 0 - 위 1 - 오른쪽 2 - 아래 3 - 왼쪽 
     if( get_objfront(1,1) <= 0 && get_objfront(5,1) <= 0) // 자신의 앞에 사람이나 몹이 없으면 종료
     {
      end;
     }
     if( @SIDE == 0) // 앞에 몹이나 사람있으면
     {
      set @target, get_xy2obj(get_x(@id),get_y(@id) - 1 - @i, 1, 1); //@target을 자신의 x좌표,y좌표-1-@i 의 
               사람을 타겟으로 한다.
     }
     ... // ...은 @SIDE 1~3까지 쓰기가 귀찮아서 생략..
     return @target; @target값을 반환하면서 func함수를 종료한다.
    }

    그렇다면..여튼 callfunc와 이전의 건곤스크립을 하게되면 십리~무극건곤까지 
    for문의 @i값을 조절하면 범위조절가능 ( 다만, 저건 초기작업본이라 조금의 수정이 필요합니다.)
    PKMAP 구분가능, 마법사용금지 MAP구분가능, 시즉같은 마법 못쓰는 마법check
    가능하답니다!!!

    [출처] 브로드캠프 - http://broadcamp.com/bbs/board.php?bo_table=e5&wr_id=57

    이 게시물을..
    N
    0
    0
    • [CR] 원거리 공격마법 만들기우지냥
    • [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)우지냥
    • 34
      우지냥

    우지냥 님의 최근 글

    테라 ver 100 버전 1166 13 2022 11.25 러스티 하츠 422 2 2022 11.19 카발 펫 만렙 리미트 30으로 변경 272 2020 09.22 카발 / 신검(포스칼리버), 골렘 구현 460 2 2020 09.15 카발온라인 루피 펫 ㅋㅋㅋㅋ 504 4 2020 09.03

    우지냥 님의 최근 댓글

    와.. 이거 없어서 블소 포기 했는데 ㄷㄷ 2023 11.15 오... 라그나로크 2023 07.11 파일이 2개라 4만 포인트인가보네요 ㄷㄷ 2023 06.30 오... 감사합니다! 2023 06.30 다 폐쇄형으로 운영해서 그렇죠 뭐 2023 04.18
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [CR] 원거리 공격마법 만들기
    • [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    • 목록
      view_headline
    × CLOSE
    기본 (92) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    92
    전체 노획 소스.
    프렌치좋아 2024.03.31 - 19:15 24
    91
    링클래식 APM GM 설정 오류 해결법
    마렬 2020.05.14 - 18:53 362
    90
    시간마다 나오는 공지를 수정하려면!
    하늘별풍선 2020.05.07 - 05:08 178
    89
    [CR] Bind Failed 오류 발생 시
    누스 2018.08.28 - 21:55 351
    88
    (초심자 관점) 2. CR 구축 방법
    하얀달 2017.01.15 - 17:06 3786
    87
    (초심자 관점) 1. APMSETUP7 다운 방법
    하얀달 2017.01.15 - 16:30 1659
    86
    [CR] 함수 기능 정리
    마사카 2017.01.07 - 05:18 4124
    85
    CR 운영자 명령어
    웨이1 2017.01.03 - 23:14 2325
    84
    CR 스크립트 if 문
    웨이1 2017.01.03 - 23:12 575
    83
    CR 변수
    웨이1 2017.01.03 - 23:11 392
    82
    스크립트 지식
    웨이1 2017.01.03 - 23:10 695
    81
    아이템 체크 사용자 정의 함수
    웨이1 2017.01.03 - 23:06 388
    80
    npc생성
    웨이1 2017.01.03 - 23:04 598
    79
    cr shop_db 참고
    웨이1 2017.01.03 - 22:46 342
    78
    맵블럭 오류
    웨이1 2017.01.03 - 22:44 465
    77
    CR 아이템 추가
    웨이1 2017.01.03 - 22:41 940
    76
    소지품 확인 사용자 정의 함수
    웨이1 2017.01.03 - 21:29 293
    75
    [CR] 인던 추가방법
    웨이1 2017.01.03 - 21:27 1457
    74
    가독성 높은 스크립트 짜기!
    김돌돌 2016.12.24 - 22:27 654
    73
    서버 느리게하는 요소
    김돌돌 2016.12.24 - 01:30 971
    72
    프바 몹추가 팁
    김돌돌 2016.12.24 - 01:29 1005
    71
    cr 구축법
    김돌돌 2016.12.24 - 01:28 1527
    70
    맵 연결포트 강의입니다.
    김돌돌 2016.12.24 - 00:07 398
    69
    머리 염색 NPC 강의
    옹동봉 2016.12.22 - 20:36 165
    68
    [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin
    우지냥 2016.12.18 - 13:30 350
    67
    [CR] cr에서 숫자값을 저장할 수 있는 함수
    우지냥 2016.12.18 - 13:30 133
    66
    스크립트 팁 - 가독성 좋게해주는 팁
    우지냥 2016.12.09 - 07:21 194
    65
    유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다
    우지냥 2016.12.09 - 07:20 271
    64
    [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점
    우지냥 2016.12.03 - 20:34 798
    63
    [CR] 동화 // 조건의종류
    우지냥 2016.12.03 - 20:33 115
    62
    [CR] 동화 // 조건문의 기초
    우지냥 2016.12.03 - 20:33 113
    61
    CR] 동화 // 변수란 무엇인가?
    우지냥 2016.12.03 - 20:33 134
    60
    [CR] 동화 // 간략하고 짧은 강의
    우지냥 2016.12.03 - 20:32 206
    59
    [CR] 원거리 공격마법 만들기
    우지냥 2016.12.03 - 20:32 351
    [CR] 전설 // 이전 강의에 이은 2번째 강의!
    우지냥 2016.12.03 - 20:31 199
    57
    [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    우지냥 2016.12.03 - 20:31 284
    56
    [CR] 이영아 // callfunc
    우지냥 2016.12.03 - 20:31 177
    55
    [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 123
    54
    [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 247
    53
    [CR] Chapter. 1-2 통합파일의 구조체( 무료 )
    우지냥 2016.12.03 - 20:30 456
    52
    [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 )
    우지냥 2016.12.03 - 20:29 527
    51
    [기타] 레이더즈 // IPv4 Address 구조강좌..
    우지냥 2016.12.03 - 20:29 138
    50
    [CR] 레이더즈 // 상점NPC만들기..
    우지냥 2016.12.03 - 20:29 190
    49
    [CR] 주작 // CALLFUNC "SLOTCHECK"
    우지냥 2016.12.03 - 20:28 96
    48
    [CR] 주작 // CALLFUNC "ITEMCOUNT
    우지냥 2016.12.03 - 20:28 99
    47
    [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    우지냥 2016.12.03 - 20:27 156
    46
    [CR] 주작 // switch문 추가 강의
    우지냥 2016.12.03 - 20:27 97
    45
    [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    행복e 2016.11.30 - 19:28 346
    44
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    로이로이로이로이 2016.10.25 - 16:50 159
    43
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명2
    로이로이로이로이 2016.10.25 - 16:50 167
    • 1 2
    • / 2 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay