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

짜집기 단테스의유물상자^^;;

2016.07.05 17:05

준희미니 조회 수:111

%B4%DC%C5%D7%BD%BA%C0%AF%B9%B0.JPG?type=

 

안녕하세요^^;; 단테스의 유물상자를 짜집기해보았어요... 그냥 상점판매만해놓기보다 조금은더 다양해보일까해서..ㅠㅠ

위사진처럼 라스타바드 중앙광장 단테스주위에 상자들이있구엽 단테스유물상자는 상점판매를하셔도되고 드랍을해도좋고..

이벤트로해도조쿠요~^^ 여러방면으로 좋은쪽으로설정하시구 유물상자를 획득개봉하게되면 음음 위대한주문서들과

단테스상자열쇠까지 100%지급되고 그후에 확률로서 각종아이템들이추가로 지급되는 그런건데엽

확률적으로 특정아이템이 나올때는 단테스유물주머니가 안나와요...^^;; 여기부분은 잘조정해서 완벽하게 가꾸시길바랄게요

단테스상자열쇠를 저렇게 배치해놓은 중앙광장에서 상자를개봉할때쓰도록..해보았어요 내용물은 변경하셔도되구여

열심히 짜집은 흔적들이많이보이실거예여 상당히 소스용량도많이먹고 간소화도잘안되어있는거같죠^^;; 실력탓입니다 헤헷..

짜집기만했을뿐 전체적인 소스구성은 각종연구카페에서 공개된자료에한해서 응용되었습니다. 감사합니다.

 

서버폴더\data\xml\Item 트레저박스 메모장으로여신후에

 

<!-- 단테스의 유물 주머니 -->
<TreasureBox Type="SPECIFIC" ItemId="50015">
<Item ItemId="121054" Count="1"/>
</TreasureBox>

 

나비켓 etcitem 테이블

 

249003 위대한 용사의 주문 위대한 용사의 주문 scroll normal paper 630 193 2878 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
249002 위대한 궁수의 주문 위대한 궁수의 주문 scroll normal paper 630 212 2878 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
249000 위대한 치유의 주문 위대한 치유의 주문 scroll normal paper 630 190 2878 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
249004 위대한 법사의 주문 위대한 법사의 주문 scroll normal paper 630 220 2878 0 1 0 0 0 0 0 0 0 0 1 0 0 0 800 0 0 1 1
50015 단테스의 유물 주머니 단테스의 유물 주머니 treasure_box normal cloth 0 4777 4246 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1
50016 단테스의 유물 상자 단테스의 유물 상자 other normal silver 8 3286 7133 4345 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1
430027 단테스의 보물상자 열쇠 단테스의 보물상자 열쇠 other normal iron 0 3560 2152 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1

나비켓 armor 테이블

 

121054 단테스의 유물 단테스의 유물 ron -1 gemstone 1000 4901 21 0 0 -1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 3 0 0 10 0 0 0 0 3 0 3 1 0 0 1800 0 0 0 0 0 0 0 0 0 0

나비켓 skills 테이블

 

2600 위대한 용사의 주문 0 0 0 0 0 0 0 1200 buff 4 0 0 0 0 0 2 2 0 -1 0 0 2 $853 0 6342 0 292 0 0
2601 위대한 궁수의 주문 0 0 0 0 0 0 0 1200 buff 4 0 0 0 0 0 8 2 0 -1 0 0 2 $855 0 750 0 294 0 0
2602 위대한 치유의 주문 8 0 0 0 0 0 500 0 buff 3 15 8 0 0 0 12 16 0 -1 0 0 1 $1,471  19 832 0 77 0 0

나비켓 spawnlist_door 테이블

 

7001 단테스보물상자 4331 32848 32769 479 0 0 0 0 0
7002 단테스보물상자 4331 32846 32773 479 0 0 0 0 0
7003 단테스보물상자 4331 32840 32767 479 0 0 0 0 0
7004 단테스보물상자 4331 32838 32771 479 0 0 0 0 0
7005 단테스보물상자 4331 32843 32762 479 0 0 0 0 0
7006 단테스보물상자 4331 32851 32770 479 0 0 0 0 0
7007 단테스보물상자 4331 32843 32777 479 0 0 0 0 0

C_ItemUse.java

 

/** 단테스의 유물 상자 **/
    } else if (itemId == 50016) {
     int bonus = _random.nextInt(100) + 1;
     L1ItemInstance bonusitem = null;
     bonusitem = pc.getInventory().storeItem(249000, 1);
     pc.sendPackets(new S_ServerMessage(403, bonusitem.getItem()
       .getNameId()));
     bonusitem = pc.getInventory().storeItem(249002, 1);
     pc.sendPackets(new S_ServerMessage(403, bonusitem.getItem()
       .getNameId()));
     bonusitem = pc.getInventory().storeItem(249003, 1);
     pc.sendPackets(new S_ServerMessage(403, bonusitem.getItem()
       .getNameId()));
     bonusitem = pc.getInventory().storeItem(249004, 1);
     pc.sendPackets(new S_ServerMessage(403, bonusitem.getItem()
       .getNameId()));
     bonusitem = pc.getInventory().storeItem(430027, 1);
     pc.sendPackets(new S_ServerMessage(403, bonusitem.getItem()
       .getNameId()));
     pc.getInventory().removeItem(useItem, 1);
     if (bonus <= 0.1) {
      bonusitem = pc.getInventory().storeItem(20390, 1); //진명황의투구
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 0.2 && bonus <= 0.3) {
      bonusitem = pc.getInventory().storeItem(20395, 1); //진명황의갑옷
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 0.4 && bonus <= 0.5) {
      bonusitem = pc.getInventory().storeItem(20402, 1); //진명황의망토
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 0.6 && bonus <= 0.7) {
      bonusitem = pc.getInventory().storeItem(20408, 1); //진명황의부츠
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 0.8 && bonus <= 0.9) {
      bonusitem = pc.getInventory().storeItem(20410, 1); //진명황의장갑
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 1.0 && bonus <= 1.2) {
      bonusitem = pc.getInventory().storeItem(41148, 1); //카운터 배리어
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 1.3 && bonus <= 1.5) {
      bonusitem = pc.getInventory().storeItem(40222, 1); //디스인티그레이트
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 1.6 && bonus <= 1.8) {
      bonusitem = pc.getInventory().storeItem(402781, 1); //아머 브레이크
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 1.9 && bonus <= 2.1) {
      bonusitem = pc.getInventory().storeItem(450142, 1); //파괴의이도류
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 2.2 && bonus <= 2.4) {
      bonusitem = pc.getInventory().storeItem(450143, 1); //파괴의크로우
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 2.5 && bonus <= 2.8) {
      bonusitem = pc.getInventory().storeItem(100084, 1); //흑왕도
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 2.9 && bonus <= 3.2) {
      bonusitem = pc.getInventory().storeItem(100164, 1); //흑왕아
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 3.3 && bonus <= 3.5) {
      bonusitem = pc.getInventory().storeItem(100189, 1); //흑왕궁
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 3.6 && bonus <= 3.7) {
      bonusitem = pc.getInventory().storeItem(41149, 1); //소울오브프레임
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     } else if (bonus >= 3.8 && bonus <= 100) {
      bonusitem = pc.getInventory().storeItem(50015, 1); //단테스의유물주머니
      pc.sendPackets(new S_ServerMessage(403, bonusitem
        .getItem().getNameId()));
     }

 

} else if (itemId == 249002) {// 위대한 궁수의 주문
     //    pc.setBuffnoch(1);
     int[] allBuffSkill = { 2601 };
     L1SkillUse l1skilluse = new L1SkillUse();
     for (int i = 0; i < allBuffSkill.length; i++) {
      l1skilluse.handleCommands(pc, allBuffSkill[i],
        pc.getId(), pc.getX(), pc.getY(), null, 0,
        L1SkillUse.TYPE_GMBUFF);
      pc.sendPackets(new S_SkillSound(pc.getId(), 750, 0));
      Broadcaster.broadcastPacket(pc,
        new S_SkillSound(pc.getId(), 750, 0));
     }
     pc.getInventory().removeItem(useItem, 1);
    } else if (itemId == 249003) {// 위대한 용사의 주문
     //   pc.setBuffnoch(1);
     int[] allBuffSkill = { 2600 };
     L1SkillUse l1skilluse = new L1SkillUse();
     for (int i = 0; i < allBuffSkill.length; i++) {
      l1skilluse.handleCommands(pc, allBuffSkill[i],
        pc.getId(), pc.getX(), pc.getY(), null, 0,
        L1SkillUse.TYPE_GMBUFF);
      pc.sendPackets(new S_SkillSound(pc.getId(), 6342, 0));
      Broadcaster.broadcastPacket(pc,
        new S_SkillSound(pc.getId(), 6342, 0));
     }
     pc.getInventory().removeItem(useItem, 1);
    } else if (itemId == 249000) {// 위대한 치유의 주문
     //   pc.setBuffnoch(1);
     int[] allBuffSkill = { 57 };
     L1SkillUse l1skilluse = new L1SkillUse();
     for (int i = 0; i < allBuffSkill.length; i++) {
      l1skilluse.handleCommands(pc, allBuffSkill[i],
        pc.getId(), pc.getX(), pc.getY(), null, 0,
        L1SkillUse.TYPE_GMBUFF);
     }
     pc.getInventory().removeItem(useItem, 1);

} else if (itemId == 249004) { // 위대한 법사의 주문
     pc.sendPackets(new S_SystemMessage("
\\aF위대한 마력에의해 MP가 회복됩니다.")); // 당신의%0가
     // 회복해
     // 갈
     // 것입니다.
     pc.setCurrentMp(pc.getCurrentMp() + 10); // 80~100
     pc.getInventory().removeItem(useItem, 1);
     pc.sendPackets(new S_SkillSound(pc.getId(), 195, 0));
     Broadcaster.broadcastPacket(pc, new S_SkillSound(
       pc.getId(), 195, 0));

 

C_Door.java

 

if(door.getDoorId() >= 8001 && door.getDoorId() <= 8010){
   if(pc.getInventory().checkItem(L1ItemId.GIRANCAVE_BOXKEY, 1)){
    giranCaveBox(pc, door);
    return;
   }else{
    return;
   }
  } //검색후 요긔밑에^^;;

 

if(door.getDoorId() >= 7001 && door.getDoorId() <= 7007){
   if(pc.getInventory().checkItem(L1ItemId.GIRANCAVE_BOXKEY1, 1)){
    giranCaveBox1(pc, door);
    return;
   }else{
    return;
   }

 

if(door.getDoorId() >= 8001 && door.getDoorId() <= 8010){
    if(pc.getInventory().checkItem(L1ItemId.GIRANCAVE_BOXKEY, 1)){
     giranCaveBox(pc, door);
     return;
    }else{
     return;
    }

   } //검색후 요긔밑에^^;;


   if(door.getDoorId() >= 7001 && door.getDoorId() <= 7007){
    if(pc.getInventory().checkItem(L1ItemId.GIRANCAVE_BOXKEY1, 1)){
     giranCaveBox1(pc, door);
     return;
    }else{
     return;
    }

   }
  }

 

private void giranCaveBox(L1PcInstance pc, L1DoorInstance door) { //검색후

   }

  }

} //끝나는후 밑에

 

private void giranCaveBox1(L1PcInstance pc, L1DoorInstance door) { 
  int ran = _random.nextInt(100) + 1;
  L1ItemInstance item = null;  
  if (door.getOpenStatus() == ActionCodes.ACTION_Close){
   pc.getInventory().consumeItem(L1ItemId.GIRANCAVE_BOXKEY1, 1);   
   door.open();
   if (ran >= 0 && ran <= 10){
    item = pc.getInventory().storeItem(40018, 2); //강화속도향상물약
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 11 && ran <= 20){
    item = pc.getInventory().storeItem(550001, 2); //강화용기의물약
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 21 && ran <= 30){
    item = pc.getInventory().storeItem(550002, 2); //강화엘븐와퍼
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 31 && ran <= 40){
    item = pc.getInventory().storeItem(550003, 2); //강화지혜의물약
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 41 && ran <= 50){
    item = pc.getInventory().storeItem(550004, 2); //강화마력의물약
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 51 && ran <= 60){
    item = pc.getInventory().storeItem(550005, 2); //강화에바의축복
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 61 && ran <= 70){
    item = pc.getInventory().storeItem(550006, 2); //강화변신주문서
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 71 && ran <= 75){
    item = pc.getInventory().storeItem(120077, 1); //투명망토
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 76 && ran <= 80){
    item = pc.getInventory().storeItem(20049, 1); //거대여왕개미의금빛날개
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 81 && ran <= 85){
    item = pc.getInventory().storeItem(20050, 1); //거대여왕개미의은빛날개
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 86 && ran <= 90){
    item = pc.getInventory().storeItem(20079, 1); //뱀파이어의망토
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 91 && ran <= 95){
    item = pc.getInventory().storeItem(20279, 1); //라이아의반지
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 96 && ran <= 97){
    item = pc.getInventory().storeItem(420021, 1); //테베호루스의반지
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }else if(ran >= 98 && ran <= 100){
    item = pc.getInventory().storeItem(420022, 1); //테베아누비스의반지
    pc.sendPackets(new S_ServerMessage(403, item.getName()));
   }
  }
 }

 

L1DoorInstance.java

 

if (this.getDoorId() >= 8001 && this.getDoorId() <= 8010){  //검색하신후
    CloseTime = System.currentTimeMillis() + 1800000;
    NpcRestController.getInstance().addDoor(this);
   } //끝나는곳 밑에추가
   
   if (this.getDoorId() >= 7001 && this.getDoorId() <= 7007){
    CloseTime = System.currentTimeMillis() + 1800000;
    NpcRestController.getInstance().addDoor(this);
   }

 

L1SkillId.java

 

public static final int PHYSICAL_ENCHANT_STR1 = 2600;
public static final int PHYSICAL_ENCHANT_DEX1 = 2601;

 

L1SkillUse.java

 

private void sendIcon(L1PcInstance pc) { //검색하신후에 적당한곳안에추가

 

case PHYSICAL_ENCHANT_STR1: pc.sendPackets(new S_Strup(pc, 6, _getBuffIconDuration)); break;
case PHYSICAL_ENCHANT_DEX1: pc.sendPackets(new S_Dexup(pc, 6, _getBuffIconDuration)); break;

 

private void deleteRepeatedSkills(L1Character cha) { //검색하신후에

 

{ PHYSICAL_ENCHANT_DEX, DRESS_DEXTERITY, PHYSICAL_ENCHANT_DEX1},
{ PHYSICAL_ENCHANT_STR, DRESS_MIGHTY, PHYSICAL_ENCHANT_STR1},
 

switch(_skillId){ //검색하신후에

 

case PHYSICAL_ENCHANT_STR1:{
     L1PcInstance pc = (L1PcInstance) cha;
     pc.getAbility().addAddedStr((byte) 6);
     pc.sendPackets(new S_Strup(pc, 6, _getBuffIconDuration));
    }
    break;
    case PHYSICAL_ENCHANT_DEX1:{
     L1PcInstance pc = (L1PcInstance) cha;
     pc.getAbility().addAddedDex((byte) 6);
     pc.sendPackets(new S_Dexup(pc, 6, _getBuffIconDuration));
    }
    break;

 

L1SkillTimer.java

 

case PHYSICAL_ENCHANT_STR1:
   cha.getAbility().addAddedStr((byte) -6);
   if (cha instanceof L1PcInstance) {
    L1PcInstance pc = (L1PcInstance) cha;
    pc.sendPackets(new S_Strup(pc, 6, 0));
   }
   break;
  case PHYSICAL_ENCHANT_DEX1:
   cha.getAbility().addAddedDex((byte) -6);
   if (cha instanceof L1PcInstance) {
    L1PcInstance pc = (L1PcInstance) cha;
    pc.sendPackets(new S_Dexup(pc, 6, 0));
   }
   break;

 

빠진게있는지 모르겠네요... 능력이되신다면 좀더 깔끔하게 가꾸어서 사용하시기바랄게요^^;;

제가해놓은것중에 아이템번호들은 아마 받으시는분들 아이템번호와 일치하지않는부분이많을수있으니까요 잘확인해보시고

아이템 알맞게 번호설정하시기바랄게요 위에 모두 아이템이름같은거 적어놓았으니 편하게보고바꾸시면될거예요

 

이상 짜집기 페이트였습니다...ㅠ ㅠ

 

 
 

번호 제목 글쓴이 날짜 조회 수
공지 소스자료는 직접 올려주세요 게임존 2017.06.06 550
509 UI6 펫/서먼 업데이트 준희미니 2016.07.07 84
508 인벤정보 표기 B.C 준희미니 2016.07.07 88
507 펫 밥 그 릇. 준희미니 2016.07.07 37
506 에바)샤르나 75,80변신 준희미니 2016.07.07 72
505 UI6차 기억창 로딩부분 18세이상만님께서 수정했던 자료 준희미니 2016.07.07 43
504 일팩용 3.53c 옵코드 준희미니 2016.07.07 57
503 중계기 노딜X그!! 준희미니 2016.07.07 231
502 기르관련 맵(중앙광장포함) 준희미니 2016.07.07 41
501 혈맹채팅 안되시는 분들... 준희미니 2016.07.07 22
500 혈맹업데이트(수정) 준희미니 2016.07.07 48
499 숨계도리아 준희미니 2016.07.07 26
498 일본팩에서 해상전 추출 통으로~ 준희미니 2016.07.07 69
497 일본팩에서 해상전 추출 통으로~ 2 준희미니 2016.07.07 19
496 일본팩에서 해상전 추출 통으로~ 3 준희미니 2016.07.07 18
495 일본팩에서 해상전 추출 통으로~ 4 준희미니 2016.07.07 17
494 일본팩에서 해상전 추출 통으로~ 마지막 준희미니 2016.07.07 23
493 일팩해상전 에바 적용중 에러 준희미니 2016.07.07 40
492 일팩 해상전 및 기억 temp창 수정할수있는 통소스 파일.파헤쳐야함 file 준희미니 2016.07.07 20
491 스킬 gfx 변경 사항 준희미니 2016.07.07 195
490 오렌 리뉴얼중 X 지역 땅굴포탈 좌표 준희미니 2016.07.07 16
489 편지 공개않하는 이유라도 있나요? 준희미니 2016.07.07 61
488 해상전.에 몹나오게하는방법. (요청)허접자료임 고수분들패스 준희미니 2016.07.07 57
487 편지 리스트 삭제 준희미니 2016.07.07 16
486 짜집기 기르관련 스킬들 준희미니 2016.07.07 80
485 해상전 일팩소스 에바소스로 변경작업. 에러 5남기고..필요한파일첨부.조금의희망 준희미니 2016.07.07 30
484 만피제한소스 뤼니징 2016.07.07 64
483 사운드 재생 PACKETBOX 준희미니 2016.07.07 44
482 차단, 스펨편지차단 준희미니 2016.07.07 21
481 차단, 스펨편지차단 준희미니 2016.07.07 13
480 기억창 사라지는 문제점 해결.. 소스아님 준희미니 2016.07.07 57
479 픽시의 변신 막대 준희미니 2016.07.07 43
478 혈맹창 file 준희미니 2016.07.07 1013
477 혈맹창 준희미니 2016.07.07 42
476 다중 편지 발송.. 준희미니 2016.07.07 29
475 편지차단/차단 준희미니 2016.07.07 13
474 제가 설명했던 배열을 이용한 원형큐 예제입니다 file 준희미니 2016.07.07 51
473 방향오류 file 준희미니 2016.07.07 25
472 혈맹창고 이용 내역 준희미니 2016.07.05 38
471 특정렙특정맵에서 경험치 안먹게하기 준희미니 2016.07.05 45
470 말섬 리뉴얼 입니다 준희미니 2016.07.05 102
» 짜집기 단테스의유물상자^^;; file 준희미니 2016.07.05 111
468 심해 알드란 텔[능동적 자료] file 준희미니 2016.07.05 19
467 독 아이콘 eva 버전 file 준희미니 2016.07.05 48
466 MiNA 기준 실시간 포트 변경 준희미니 2016.07.05 49
465 그냥 별건아닌데 준희미니 2016.07.05 160
464 군주 파티시 피바 준희미니 2016.07.05 48
463 짜집기 혈맹버프^^;; 준희미니 2016.07.05 65
462 다이노 인형 짜집기 준희미니 2016.07.05 41
461 [UI6] 혈맹탈퇴 준희미니 2016.07.05 18
460 새로운 본던멥입니당 준희미니 2016.07.05 46