close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

//오늘은 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
가능하답니다!!!

번호 제목 글쓴이 날짜 조회 수
92 전체 노획 소스. 프렌치좋아 2024.03.31 4
91 링클래식 APM GM 설정 오류 해결법 [1] file 마렬 2020.05.14 349
90 시간마다 나오는 공지를 수정하려면! 하늘별풍선 2020.05.06 164
89 [CR] Bind Failed 오류 발생 시 누스 2018.08.28 334
88 (초심자 관점) 2. CR 구축 방법 [8] file 하얀달 2017.01.15 3745
87 (초심자 관점) 1. APMSETUP7 다운 방법 [1] 하얀달 2017.01.15 1631
86 [CR] 함수 기능 정리 [2] 마사카 2017.01.06 4087
85 CR 운영자 명령어 웨이1 2017.01.03 2303
84 CR 스크립트 if 문 [1] 웨이1 2017.01.03 563
83 CR 변수 웨이1 2017.01.03 387
82 스크립트 지식 웨이1 2017.01.03 685
81 아이템 체크 사용자 정의 함수 웨이1 2017.01.03 382
80 npc생성 웨이1 2017.01.03 589
79 cr shop_db 참고 웨이1 2017.01.03 327
78 맵블럭 오류 [1] 웨이1 2017.01.03 448
77 CR 아이템 추가 웨이1 2017.01.03 928
76 소지품 확인 사용자 정의 함수 웨이1 2017.01.03 283
75 [CR] 인던 추가방법 웨이1 2017.01.03 1443
74 가독성 높은 스크립트 짜기! 김돌돌 2016.12.24 639
73 서버 느리게하는 요소 김돌돌 2016.12.23 957
72 프바 몹추가 팁 김돌돌 2016.12.23 986
71 cr 구축법 [1] 김돌돌 2016.12.23 1504
70 맵 연결포트 강의입니다. 김돌돌 2016.12.23 385
69 머리 염색 NPC 강의 옹동봉 2016.12.22 153
68 [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin 우지냥 2016.12.18 340
67 [CR] cr에서 숫자값을 저장할 수 있는 함수 우지냥 2016.12.18 126
66 스크립트 팁 - 가독성 좋게해주는 팁 우지냥 2016.12.08 185
65 유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다 file 우지냥 2016.12.08 262
64 [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점 우지냥 2016.12.03 786
63 [CR] 동화 // 조건의종류 우지냥 2016.12.03 108
62 [CR] 동화 // 조건문의 기초 [1] 우지냥 2016.12.03 100
61 CR] 동화 // 변수란 무엇인가? 우지냥 2016.12.03 126
60 [CR] 동화 // 간략하고 짧은 강의 우지냥 2016.12.03 196
59 [CR] 원거리 공격마법 만들기 우지냥 2016.12.03 342
» [CR] 전설 // 이전 강의에 이은 2번째 강의! 우지냥 2016.12.03 184
57 [CR] 전설 // 허접한 강의(전반적인 스크립트 설명) 우지냥 2016.12.03 278
56 [CR] 이영아 // callfunc 우지냥 2016.12.03 165
55 [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의 우지냥 2016.12.03 114
54 [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의 우지냥 2016.12.03 236
53 [CR] Chapter. 1-2 통합파일의 구조체( 무료 ) 우지냥 2016.12.03 439
52 [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 ) 우지냥 2016.12.03 504
51 [기타] 레이더즈 // IPv4 Address 구조강좌.. file 우지냥 2016.12.03 123
50 [CR] 레이더즈 // 상점NPC만들기.. 우지냥 2016.12.03 179
49 [CR] 주작 // CALLFUNC "SLOTCHECK" 우지냥 2016.12.03 85
48 [CR] 주작 // CALLFUNC "ITEMCOUNT 우지냥 2016.12.03 87
47 [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기 우지냥 2016.12.03 146
46 [CR] 주작 // switch문 추가 강의 우지냥 2016.12.03 85
45 [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함) [4] file 행복e 2016.11.30 336
44 [CR] [스크립트] '스크립트'의 가장 기초적인 설명3 로이로이로이로이 2016.10.25 144
43 [CR] [스크립트] '스크립트'의 가장 기초적인 설명2 로이로이로이로이 2016.10.25 158