• SEARCH

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

      • 우지냥
      • 2016.12.03 - 20:31 226

    //오늘은 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
      우지냥

    우지냥 님의 최근 글

    아우라 킹덤 DB 파일 (SQL) 96 2019 10.25 카발 EP8 - 각종 유틸 ( 4/5 ) 270 2018 12.03 카발 EP8 - 클라이언트 패치 (3/5) 161 2018 12.03 카발 EP8 - 데이타베이스 (bak) (2/5) 130 2018 12.03 카발 EP8 - 서버팩 32bit, 64bit (1/5) 276 2018 12.03

    우지냥 님의 최근 댓글

    오... 라그나로크 2023 07.11 오우... 감사합니다. 2023 03.05 ㄳㄳ 2022 11.14 감사합니다. 2022 10.08 감사합니다~ 2022 09.14
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [CR] 원거리 공격마법 만들기
    • [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    • 목록
      view_headline
    × CLOSE
    기본 (92) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 인증메일 공지
      N
      13시간 전 17
    • 파일링크 및 인증메일 발송 관련 문의 안내
      1
      2026.03.14 - 22:03 30 1
    • 포인트 게시판 안내
      2026.02.28 - 19:14 436
    • 게임존 사이트 변경 사항 안내
      7
      2026.02.26 - 01:07 735 7
    92
    전체 노획 소스.
    프렌치좋아 2024.03.31 - 19:15 62
    91
    링클래식 APM GM 설정 오류 해결법
    마렬 2020.05.14 - 18:53 381
    90
    시간마다 나오는 공지를 수정하려면!
    하늘별풍선 2020.05.07 - 05:08 201
    89
    [CR] Bind Failed 오류 발생 시
    누스 2018.08.28 - 21:55 383
    88
    (초심자 관점) 2. CR 구축 방법
    하얀달 2017.01.15 - 17:06 3819
    87
    (초심자 관점) 1. APMSETUP7 다운 방법
    하얀달 2017.01.15 - 16:30 1687
    86
    [CR] 함수 기능 정리
    마사카 2017.01.07 - 05:18 4162
    85
    CR 운영자 명령어
    웨이1 2017.01.03 - 23:14 2352
    84
    CR 스크립트 if 문
    웨이1 2017.01.03 - 23:12 611
    83
    CR 변수
    웨이1 2017.01.03 - 23:11 423
    82
    스크립트 지식
    웨이1 2017.01.03 - 23:10 729
    81
    아이템 체크 사용자 정의 함수
    웨이1 2017.01.03 - 23:06 420
    80
    npc생성
    웨이1 2017.01.03 - 23:04 623
    79
    cr shop_db 참고
    웨이1 2017.01.03 - 22:46 371
    78
    맵블럭 오류
    웨이1 2017.01.03 - 22:44 498
    77
    CR 아이템 추가
    웨이1 2017.01.03 - 22:41 970
    76
    소지품 확인 사용자 정의 함수
    웨이1 2017.01.03 - 21:29 331
    75
    [CR] 인던 추가방법
    웨이1 2017.01.03 - 21:27 1479
    74
    가독성 높은 스크립트 짜기!
    김돌돌 2016.12.24 - 22:27 682
    73
    서버 느리게하는 요소
    김돌돌 2016.12.24 - 01:30 1009
    72
    프바 몹추가 팁
    김돌돌 2016.12.24 - 01:29 1031
    71
    cr 구축법
    김돌돌 2016.12.24 - 01:28 1554
    70
    맵 연결포트 강의입니다.
    김돌돌 2016.12.24 - 00:07 427
    69
    머리 염색 NPC 강의
    옹동봉 2016.12.22 - 20:36 192
    68
    [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin
    우지냥 2016.12.18 - 13:30 378
    67
    [CR] cr에서 숫자값을 저장할 수 있는 함수
    우지냥 2016.12.18 - 13:30 158
    66
    스크립트 팁 - 가독성 좋게해주는 팁
    우지냥 2016.12.09 - 07:21 219
    65
    유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다
    우지냥 2016.12.09 - 07:20 305
    64
    [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점
    우지냥 2016.12.03 - 20:34 825
    63
    [CR] 동화 // 조건의종류
    우지냥 2016.12.03 - 20:33 143
    62
    [CR] 동화 // 조건문의 기초
    우지냥 2016.12.03 - 20:33 159
    61
    CR] 동화 // 변수란 무엇인가?
    우지냥 2016.12.03 - 20:33 156
    60
    [CR] 동화 // 간략하고 짧은 강의
    우지냥 2016.12.03 - 20:32 240
    59
    [CR] 원거리 공격마법 만들기
    우지냥 2016.12.03 - 20:32 384
    [CR] 전설 // 이전 강의에 이은 2번째 강의!
    우지냥 2016.12.03 - 20:31 226
    57
    [CR] 전설 // 허접한 강의(전반적인 스크립트 설명)
    우지냥 2016.12.03 - 20:31 309
    56
    [CR] 이영아 // callfunc
    우지냥 2016.12.03 - 20:31 204
    55
    [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 157
    54
    [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의
    우지냥 2016.12.03 - 20:30 266
    53
    [CR] Chapter. 1-2 통합파일의 구조체( 무료 )
    우지냥 2016.12.03 - 20:30 477
    52
    [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 )
    우지냥 2016.12.03 - 20:29 554
    51
    [기타] 레이더즈 // IPv4 Address 구조강좌..
    우지냥 2016.12.03 - 20:29 169
    50
    [CR] 레이더즈 // 상점NPC만들기..
    우지냥 2016.12.03 - 20:29 215
    49
    [CR] 주작 // CALLFUNC "SLOTCHECK"
    우지냥 2016.12.03 - 20:28 119
    48
    [CR] 주작 // CALLFUNC "ITEMCOUNT
    우지냥 2016.12.03 - 20:28 124
    47
    [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기
    우지냥 2016.12.03 - 20:27 182
    46
    [CR] 주작 // switch문 추가 강의
    우지냥 2016.12.03 - 20:27 122
    45
    [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함)
    행복e 2016.11.30 - 19:28 369
    44
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명3
    로이로이로이로이 2016.10.25 - 16:50 180
    43
    [CR] [스크립트] '스크립트'의 가장 기초적인 설명2
    로이로이로이로이 2016.10.25 - 16:50 193
    • 1 2
    • / 2 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay