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

소지품 확인 사용자 정의 함수

2017.01.03 12:29

웨이1 조회 수:127

요즘 통파일에 관심이 조금 있어서 이것저것 해보는데 

 

유용한 정보를 발견해서 퍼왔습니다(바람박스)

 

////

 

아이템창이 꽉차있는지 확인하는 사용자 정의 함수 
  
이 소지품확인은 아이템이 꽉차있을때 additem으로 얻는 아이템은 증발이 되기 때문에 필요하다 
그 이유는 퀘스트를 깻는데 아이템을 못받으면 참 어이가 없지 않는가? 그래서 필요하다. 
  
우선 함수에서 아이템창이 풀상태인지 체크하는 함수는 존재하지 않는다. 
이걸 확인하기 위해서는 소지품을 확인하는 아이템을 추가해서 존재하면 빈공간 
존재하지 않으면 빈공간이 없다는거다. 
  
기본 구성을 하겠다. 
  
func    Clear    { 
    set @sd, mysd(); 
    set @Clear, getarg(0); 

  
대충 구성을 하면 이러하다. 전의 아이템 체크에서는 sd값도 적어줘야 하는 형태를 띄었지만 
이번 소지품확인은 상관이없다. 왜냐하면 퀘스트 완료후 확인하는 아이템을 수령하는 방식은 자신만 사용을 하기 때문이다. 
혹시나 이걸 응용하고 싶다면 바꾸면된다. 다만 쓸일이 있을지는 모르겠다. 
  
우선 아이템창은 a ~ z 까지 있다. 
그럼 이 순서대로 아이템을 채워서 그 아이템이 존재하면 빈공간이 존재한다는 방식이 되어야한다. 
그럼 item_db에 확인을 해주는 아이템이 있어야한다. 
800,소지품확인,10,48,0,0,1275,0,30,0,0,0,0,0,0,0,0,0:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,%d개,,0,, 
나는 이렇게 사용한다. 그냥 사용할때 이 형식을 쓰도록해라. 
  
그럼 완성을 시켜 보겠다. 
func    Clear    { 
    set @sd, mysd(); 
    set @Clear, getarg(0); 
    for(set @C, 0; @C < @Clear; set @C, @C + 1) 
    { 
        additem @sd, name2itemid("소지품확인"), 1; 
    } 
    set @Check, pc_countitem(@sd, name2itemid("소지품확인")); // 아이템창에 이 아이템이 몇개(줄)이 있는지 확인 
    for(set @C, 0; @C < @Clear; set @C, @C + 1) 
    { 
        delitem @sd, name2itemid("소지품확인"), 1; 
    } 
    if(@Check < @Clear) 
    { 
        dialog 1, 0, 0, "소지품 공간이 부족합니다.\n필요한 소지품 공간은 " + @Clear + "개 입니다.\n아이템창을 비워주세요."; 
        end; 
    } 
    return;