100%인첸 주문서 소스
L1itemId.java
public static final int TEST_ENCHANT_WEAPON = 438006; //무기주문서
public static final int TEST_ENCHANT_ARMOR = 438007; //갑옷주문서
적당한곳에 넣어주시구요. 어떤 에바팩에는 있는 것도 있으니 잘 확인 해보시구요.
있으면 패스~
저는 기존에 있던걸루 활용했습니다.
itemTable.java
case L1ItemId.TEST_ENCHANT_ARMOR:
item = new EnchantArmor(temp);
item.setWorking(true);
break; // 갑옷주문서
case L1ItemId.TEST_ENCHANT_WEAPON:
item = new EnchantWeapon(temp);
item.setWorking(true); // 무기주문서
break;
이거 없으신분들도 중간쯤에 맘에 드시는 곳에 넣으세요.기존에 있는 분들은 잘확인 해보시구요.
있으면 패스~
마지막으로 여기가 중요하죠.
EnchantWeapon.java
int rnd = _random.nextInt(100) + 1;
int enchant_chance_wepon;//이걸루 찾으세요.
//** 인첸 확률 수정 **// by 천국
if (enchant_level <= 7) { //이거로 교체.
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 6;
}
if (enchant_level == 8) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 7;
}
if (enchant_level == 9) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 8;
}
if (enchant_level == 10) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 9;
}
if (enchant_level == 11) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 10;
}
if (enchant_level == 12) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 11;
}
if (enchant_level == 13) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 12;
}
if (enchant_level == 14) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 13;
}
if (enchant_level >= 15) {
enchant_chance_wepon = (100 + 3 * Config.ENCHANT_CHANCE_WEAPON) / 14;
}
//** 인첸 확률 수정 **/// by 천국
enchant_chance_wepon = 100/((enchant_level-safe_enchant+1)*2)/(enchant_level/9!=0?1*2:1) + Config.ENCHANT_CHANCE_WEAPON;
// 100%인첸주문서 //
if (itemId == L1ItemId.TEST_ENCHANT_WEAPON) { // 빨간부분 추가
enchant_chance_wepon = 10000;
}
// 100%인첸주문서 //
if (rnd < enchant_chance_wepon) {//요고 위에다가 넣는게 중요해요.
int randomEnchantLevel = RandomELevel(l1iteminstance1, itemId);
SuccessEnchant(pc, l1iteminstance1, randomEnchantLevel);
} else if (enchant_level >= 9 && rnd < (enchant_chance_wepon * 2)) {
// \f1%0이%2과 강렬하게%1 빛났습니다만, 다행히 무사하게 살았습니다.
pc.sendPackets(new S_ServerMessage(160, l1iteminstance1.getLogName(), "$245", "$248"));
} else {
FailureEnchant(pc, l1iteminstance1);
}
}
}
}
}
무기 주문서 인첸 확률은 같은 에바팩이더라도 수정자에 따라 다릅니다. 디락님수정했던걸 제가또 수정한거라서; 암튼 비슷 비슷 할거에요. 다른건 알아서 하시고요. 빨간색부분 넣는 위치가 중요합니다. 위에다 하니까 일반 주문서도 100%인첸되는 현상이 일어 나더군요.
밑에다가 넣으니까. 일반 주문서처럼 날라갑니다. 참고하세요.
EnchantArmor.java
enchant_chance_armor = 100/((enchant_level-safe_enchant+1)*2)/(enchant_level/7!=0?1*2:1)/(enchant_level_tmp)+Config.ENCHANT_CHANCE_ARMOR;
}
}
if (itemId == L1ItemId.TEST_ENCHANT_ARMOR) { // 빨간부분 추가
enchant_chance_armor = 10000;
}
if (rnd < enchant_chance_armor) {//이거 찾으시면 될거에요.이거 위에 넣으세요
int randomEnchantLevel = RandomELevel(l1iteminstance1, itemId);
SuccessEnchant(pc, l1iteminstance1, randomEnchantLevel);
} else if (enchant_level >= 9 && rnd < (enchant_chance_armor * 2)) {
String item_name_id = l1iteminstance1.getName();
String pm = "";
String msg = "";
if (enchant_level > 0) {
pm = "+";
}
msg = (new StringBuilder()).append(pm + enchant_level).append(" ").append(item_name_id).toString();
// \f1%0이%2과 강렬하게%1 빛났습니다만, 다행히 무사하게 살았습니다.
pc.sendPackets(new S_ServerMessage(160, msg, "$252", "$248"));
} else {
FailureEnchant(pc, l1iteminstance1);
}
}
}
}
}
이거 또한 무기와 마찬가지로 넣는 위치가 중요 했습니다. 잘보시고. 비슷할거에요;참고바랍니다.
---------------------------------------------------------------------
다음은 나비켓 테이블에 무기주문서랑 갑옷주문서를 넣어줘야합니다.
L1itemId.java << 쪽에 있었던 무기주문서랑 갑옷주문서 아이템 번호 잘보시구요.
혹시나 기존에 있을수도 있으니 있었던 분들은 그걸 활용해서.
etcitem 에서 수정하는건 아실거라 생각하구요.
인벤이미지(invgfx),그라운드이미지(grdgfx)를 이쁜걸 넣으셔서 하시면 좋겠죠^^
나비켓 테이블에서 다른건 뭐..다른 주문서 참조하시면 될거같구요.
-출처-이연희 서방님

헬레리뇨 님의 최근 댓글
수고많으셨습니다. 좋은자료 잘 받아가요^^ 2016 08.09