짜집기 단테스의유물상자^^;;
안녕하세요^^;; 단테스의 유물상자를 짜집기해보았어요... 그냥 상점판매만해놓기보다 조금은더 다양해보일까해서..ㅠㅠ
위사진처럼 라스타바드 중앙광장 단테스주위에 상자들이있구엽 단테스유물상자는 상점판매를하셔도되고 드랍을해도좋고..
이벤트로해도조쿠요~^^ 여러방면으로 좋은쪽으로설정하시구 유물상자를 획득개봉하게되면 음음 위대한주문서들과
단테스상자열쇠까지 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;
빠진게있는지 모르겠네요... 능력이되신다면 좀더 깔끔하게 가꾸어서 사용하시기바랄게요^^;;
제가해놓은것중에 아이템번호들은 아마 받으시는분들 아이템번호와 일치하지않는부분이많을수있으니까요 잘확인해보시고
아이템 알맞게 번호설정하시기바랄게요 위에 모두 아이템이름같은거 적어놓았으니 편하게보고바꾸시면될거예요
이상 짜집기 페이트였습니다...ㅠ ㅠ

준희미니 님의 최근 댓글
rt 2021 05.25 ㄳ 2021 05.11 ㄳ 2021 05.11 rt 2021 05.09 rt 2021 04.25