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

아이템 체크 사용자 정의 함수

2017.01.03 14:06

웨이1 조회 수:379

바람박스에서 퍼왔습니다~

 

어떤 아이템이 몇개 있는지의 아이템을 체크하는 사용자 정의 함수 
  
어떤 아이템이 몇개있는지는 호박을 10개 가져오라는 퀘스트를 만들때 꽤 유용하다 
  
아이템 체크를 하려면 필요한건 아이템의 이름과 아이템의 개수이다. 
만약 사용자 정의 함수로 사용을 하게 된다면 callfunc "ItemCK", "도토리", 3; 이 한줄로 도토리가 3개가 있는지 확인이 될것이다. 
다만 이걸 사용후 delitem 으로 아이템을 삭제하고말고는 개발자의 몫이다. 
  
우선 기본구성을 하겠다 
func    ItemCK    { 
    set @sd, mysd(); 
    set @Item$, getarg(0); 
    set @Count, getarg(1); 

  
보통 이런 방식을 생각하는데 나는 조금 다르다. 
이 함수는 매우 유용하기 때문에 굳이 자신만의 체크로 만들 이유가 없다는거다. 
만약 파티원 단위로 이동을 하게 될 경우. sd값을 자신만 체크해서는 이동을 시킬 수 없는거랑 같은 개념이다. 
  
그래서 나는 이렇게 구성한다. 
  
func    ItemCK    { 
    set @target_sd, getarg(0); 
    set @Item$, getarg(1); 
    set @Count, getarg(2); 

  
이렇게 할경우 
callfunc "ItemCK", @sd, "도토리", 1; 
callfunc "ItemCK", @target_sd, "도토리", 1; 
callfunc "ItemCK", @party_sd, "도토리", 1; 
이런식으로 사용이 가능해진다. 
  
그럼 이제 핵심 스크립트를 작성하겠다. 
    set @Check, pc_amountitem(@target_sd, name2itemid(@Item$)); // 아이템의 개수를 불러오는 함수 
    if(@Check < @Count) 
    { 
        set @Count, @Count - @Check; 
        dialog 1, 0, 0, "" + @Item$ + " 이(가) " + @Count + "개 부족합니다."; 
        end; 
    } 
  
이런식으로 작성을해 부족하면 스크립트를 강제로 종료시킨다. 
  
이렇게 했을 경우 최종적인 결과는 
  
func    ItemCK    { 
    set @target_sd, getarg(0); 
    set @Item$, getarg(1); 
    set @Count, getarg(2); 
    set @Check, pc_amountitem(@target_sd, name2itemid(@Item$)); 
    if(@Check < @Count) 
    { 
        set @Count, @Count - @Check; 
        dialog 1, 0, 0, "" + @Item$ + " 이(가) " + @Count + "개 부족합니다."; 
        end; 
    } 
    return; 

이게 완성이 된다. 나는 이걸 응용해서 이렇게 작성해 보았다. 
            list2(@list, 1, 0, "칠교칠선 을 선택하셨습니다. 이 칠교칠선 품격을 높이려면\n 금전이 300만전 필요합니다.", "지금 만들겠습니다.", "다음에 만들겠습니다."); 
            if(@list == 1) 
            { 
                if(get_money(@sd) < 3000000) 
                { 
                    set @money, 3000000 - get_money(@sd); 
                    dialog 1, 0, 0, "금전이 " + @money + "전 부족합니다."; 
                    end; 
                } 
                callfunc "ItemCK", @sd, "적화접선", 1; 
                set_money @sd, get_money(@sd) - 3000000; 
                additem @sd, name2itemid("품격있는적화접선"), 1; 
                dialog 1, 0, 0, "품격있는적화접선을 만들어 드렸습니다!"; 
            } 
            end;

번호 제목 글쓴이 날짜 조회 수
91 링클래식 APM GM 설정 오류 해결법 [1] file 마렬 2020.05.14 341
90 시간마다 나오는 공지를 수정하려면! 하늘별풍선 2020.05.06 161
89 [CR] Bind Failed 오류 발생 시 누스 2018.08.28 331
88 (초심자 관점) 2. CR 구축 방법 [8] file 하얀달 2017.01.15 3722
87 (초심자 관점) 1. APMSETUP7 다운 방법 [1] 하얀달 2017.01.15 1615
86 [CR] 함수 기능 정리 [2] 마사카 2017.01.06 4081
85 CR 운영자 명령어 웨이1 2017.01.03 2294
84 CR 스크립트 if 문 [1] 웨이1 2017.01.03 558
83 CR 변수 웨이1 2017.01.03 382
82 스크립트 지식 웨이1 2017.01.03 682
» 아이템 체크 사용자 정의 함수 웨이1 2017.01.03 379
80 npc생성 웨이1 2017.01.03 587
79 cr shop_db 참고 웨이1 2017.01.03 325
78 맵블럭 오류 [1] 웨이1 2017.01.03 444
77 CR 아이템 추가 웨이1 2017.01.03 924
76 소지품 확인 사용자 정의 함수 웨이1 2017.01.03 281
75 [CR] 인던 추가방법 웨이1 2017.01.03 1440
74 가독성 높은 스크립트 짜기! 김돌돌 2016.12.24 636
73 서버 느리게하는 요소 김돌돌 2016.12.23 955
72 프바 몹추가 팁 김돌돌 2016.12.23 984
71 cr 구축법 [1] 김돌돌 2016.12.23 1491
70 맵 연결포트 강의입니다. 김돌돌 2016.12.23 382
69 머리 염색 NPC 강의 옹동봉 2016.12.22 150
68 [CR] ㅇㅇㅇㄹ // cr 초간단 강의 onpclogin 우지냥 2016.12.18 337
67 [CR] cr에서 숫자값을 저장할 수 있는 함수 우지냥 2016.12.18 124
66 스크립트 팁 - 가독성 좋게해주는 팁 우지냥 2016.12.08 183
65 유저가 접속안했을때 아이피 쉽게 알아낼수있는 간단한 TIP입니다 file 우지냥 2016.12.08 260
64 [CR] Chapter. 3-1 꼭 알아둬야할 CR의 문제점 우지냥 2016.12.03 782
63 [CR] 동화 // 조건의종류 우지냥 2016.12.03 106
62 [CR] 동화 // 조건문의 기초 [1] 우지냥 2016.12.03 98
61 CR] 동화 // 변수란 무엇인가? 우지냥 2016.12.03 122
60 [CR] 동화 // 간략하고 짧은 강의 우지냥 2016.12.03 193
59 [CR] 원거리 공격마법 만들기 우지냥 2016.12.03 338
58 [CR] 전설 // 이전 강의에 이은 2번째 강의! 우지냥 2016.12.03 182
57 [CR] 전설 // 허접한 강의(전반적인 스크립트 설명) 우지냥 2016.12.03 274
56 [CR] 이영아 // callfunc 우지냥 2016.12.03 163
55 [CR] Chapter. 2-2 데이터베이스[ 엔피씨 ]강의 우지냥 2016.12.03 112
54 [CR] Chapter. 2-1 데이터베이스[ 엔피씨 ]강의 우지냥 2016.12.03 232
53 [CR] Chapter. 1-2 통합파일의 구조체( 무료 ) 우지냥 2016.12.03 436
52 [CR] Chapter. 1-1 CR이라는 구동기에 대한 이해( 무료 ) 우지냥 2016.12.03 500
51 [기타] 레이더즈 // IPv4 Address 구조강좌.. file 우지냥 2016.12.03 120
50 [CR] 레이더즈 // 상점NPC만들기.. 우지냥 2016.12.03 176
49 [CR] 주작 // CALLFUNC "SLOTCHECK" 우지냥 2016.12.03 83
48 [CR] 주작 // CALLFUNC "ITEMCOUNT 우지냥 2016.12.03 84
47 [CR] 주작 // [기타] 해당 좌표의 아이템 읽어오기 우지냥 2016.12.03 144
46 [CR] 주작 // switch문 추가 강의 우지냥 2016.12.03 83
45 [CR] 그림과 함께 하는 랭킹적용(랭킹자료포함) [4] file 행복e 2016.11.30 334
44 [CR] [스크립트] '스크립트'의 가장 기초적인 설명3 로이로이로이로이 2016.10.25 142
43 [CR] [스크립트] '스크립트'의 가장 기초적인 설명2 로이로이로이로이 2016.10.25 155
42 [CR] [스크립트] '스크립트'의 가장 기초적인 설명 로이로이로이로이 2016.10.25 260