낚시 시스템 본섭화 소스
낚시 시스템 본섭화 최종 분석
낚시로 얻을수있는 아이템
물고기들은 딜레이가 없고 무게가 0.02로 고대물약의 66-288배의 회복대비 무게절감효과가 있음.
마력회복물약이나 강화화속도물약을 가지고 다니기보다 물고기를 가지고다니면서 사용하면 유용하다.
어린물고기(8-10) 평균9
재빠른물고기(8-21) 평균15
강한물고기(22-56) 평균40
실패(20%) 잉어(20.5%) 붕어(20.5%) = 61%
어린물고기(10%) 재빠른물고기(8%) 강한물고기(6%) =24%
붉은빛나는물고기(3%) 파란빛나는물고기(3%) 흰빛나는물고기(3%) 초록빛나는물고기(3%) = 12%
반짝이는비늘(1.5%) 상자물고기(1%) 진귀한거북이(0.5%) = 3%
유용한 아이템 얻을확율 29%
붉은빛나는물고기(3%) = 농축체력회복제(50%) 붕어(48.9%) 루비(0.8%) 고급(0.2%) 최고급(0.1%)
파란빛나는물고기(3%) = 마력회복물약(50%) 붕어(48.9%) 사파이어(0.8%) 고급(0.2%) 최고급(0.1%)
초록빛나는물고기(3%) = 강화속도물약(50%) 붕어(48.9%) 에메랄드(0.8%) 고급(0.2%) 최고급(0.1%)
흰빛나는물고기(3%) = 농축강력체력회복제(50%) 붕어(48.9%) 에메랄드(0.8%) 고급(0.2%) 최고급(0.1%)
상자물고기(1%)에서 물에젖은세트를 구할수있는 확율
붕어(13%) 잉어(13%) 어린물고기(13%) = 39%
갑옷(7%) 망토(7%) 방패(7%) 부츠(7%) 장갑(7%) = 35%
투구(5%) 모자(5%) 후드(5%) = 15%
귀걸이(3.5%) 목걸이(3.5%) 반지(4%) = 11%
에바팩기반 런던서버를 기준으로 소스 수정
나비켓 etcitem에 물고기들 무게 20으로 변경
41298 어린 물고기
41299 재빠른 물고기
41300 강한 물고기
41301 붉은 빛 나는 물고기
41302 초록 빛 나는 물고기
41303 파란 빛 나는 물고기
41304 흰 빛 나는 물고기
없는건 추가하세요.
41425 상자 물고기 $7509 event normal animalmatter 20 3611 7521 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
나비켓 armor에 물에 젖은 모자 물에 젖은 후드 추가 (중간35는 minlv)
물에젖은시리즈 모두 minlv 35로 바꾸세요. 물에젖은투구 ac-2로 변경
21092 물에 젖은 모자 $5275 helm -1 iron 20000 3609 7519 2817 -1 4 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
21093 물에 젖은 후드 $7508 helm -1 iron 20000 3610 7520 2818 -1 4 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
아래 빨간부분이 추가 수정된 부분입니다.
===========================================================================================
l1j.server.server.clientpackets.C_ItemUSe.java
아래부분은 원본소스
} else if (itemId == 41301 || itemId == 140024 ) { // 샤이닝렛드핏슈
int chance = _random.nextInt(10);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40019, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40045, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40049, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40053, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41302) { // 샤이닝그린핏슈
int chance = _random.nextInt(3);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40018, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40047, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40051, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40055, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41303 || itemId == 140067 ) { // 샤이닝브르핏슈
int chance = _random.nextInt(3);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40015, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40046, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40050, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40054, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41304) { // 샤이닝화이트핏슈
int chance = _random.nextInt(3);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40021, 1);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 1437011, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40044, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40048, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40052, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 40615) { // 그림자의 신전 2층의 열쇠
---------------------------------------------------------------------------------------------
이렇게 고치세요.
} else if (itemId == 41301 || itemId == 140024 ) { // 샤이닝렛드핏슈
int chance = _random.nextInt(10);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40019, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40045, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40049, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40053, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41302) { // 샤이닝그린핏슈
int chance = _random.nextInt(10);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40018, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40047, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40051, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40055, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41303 || itemId == 140067 ) { // 샤이닝브르핏슈
int chance = _random.nextInt(10);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40015, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40046, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40050, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40054, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41304) { // 샤이닝화이트핏슈
int chance = _random.nextInt(10);
if (chance >= 0 && chance < 5) {
UseHeallingPotion(pc, 15, 189);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 40021, 1);
} else if (chance >= 5 && chance < 9) {
createNewItem(pc, 1437011, 1);
} else if (chance >= 9) {
int gemChance = _random.nextInt(3);
if (gemChance == 0) {
createNewItem(pc, 40044, 1);
} else if (gemChance == 1) {
createNewItem(pc, 40048, 1);
} else if (gemChance == 2) {
createNewItem(pc, 40052, 1);
}
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 41425) { // 상자 물고기
int chance = _random.nextInt(200);
if (chance >= 0 && chance < 26) {
createNewItem(pc, 41296, 1); // 붕어
} else if (chance >= 26 && chance < 52) {
createNewItem(pc, 41297, 1); // 잉어
} else if (chance >= 52 && chance < 78) {
createNewItem(pc, 41298, 1); // 어린 물고기
} else if (chance >= 78 && chance < 92) {
createNewItem(pc, 21052, 1); // 물에 젖은 망토
} else if (chance >= 92 && chance < 106) {
createNewItem(pc, 21053, 1); // 물에 젖은 갑옷
} else if (chance >= 106 && chance < 120) {
createNewItem(pc, 21054, 1); // 물에 젖은 장갑
} else if (chance >= 120 && chance < 134) {
createNewItem(pc, 21055, 1); // 물에 젖은 부츠
} else if (chance >= 134 && chance < 148) {
createNewItem(pc, 21056, 1); // 물에 젖은 방패
} else if (chance >= 148 && chance < 158) {
createNewItem(pc, 21051, 1); // 물에 젖은 투구
} else if (chance >= 158 && chance < 168) {
createNewItem(pc, 21092, 1); // 물에 젖은 모자
} else if (chance >= 168 && chance < 178) {
createNewItem(pc, 21093, 1); // 물에 젖은 후드
} else if (chance >= 178 && chance < 186) {
createNewItem(pc, 41306, 1); // 깨진 반지
} else if (chance >= 186 && chance < 193) {
createNewItem(pc, 41305, 1); // 깨진 귀걸이
} else if (chance >= 193 && chance < 200) {
createNewItem(pc, 41307, 1); // 깨진 목걸이
}
pc.getInventory().removeItem(useItem, 1);
} else if (itemId == 40615) { // 그림자의 신전 2층의 열쇠
==============================================================================================
l1j.server.server.TimeController.FishingTimeController.java
private void fishing() {
if (_fishingList.size() > 0) {
long currentTime = System.currentTimeMillis();
L1PcInstance pc = null;
for (int i = 0; i < _fishingList.size(); i++) {
pc = _fishingList.get(i);
if (pc.isFishing()) {
long time = pc.getFishingTime();
if (currentTime <= (time + 1000) && currentTime >= (time - 1000) ) {
pc.setFishingReady(true);
pc.sendPackets(new S_PacketBox(S_PacketBox.FISHING));
} else if ( currentTime > (time + 100)
){
int chance = _random.nextInt(200) + 1;
if (chance < 50) {
successFishing(pc, 41298, "$5256"); // 25%어린 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 65) {
successFishing(pc, 41300, "$5258"); // 7.5% 강한 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 80) {
successFishing(pc, 41299, "$5257"); // 7.5%재빠른 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 90) {
successFishing(pc, 41296, "$5249"); // 5%붕어
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 100) {
successFishing(pc, 41297, "$5250"); // 5%잉어
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 105) {
successFishing(pc, 41301, "$5259"); // 2.5%붉은 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 110) {
successFishing(pc, 41302, "$5260"); // 2.5%초록 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 115) {
successFishing(pc, 41303, "$5261"); // 2.5%파란 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 170) {
successFishing(pc, 41304, "$5262"); // 2.5%흰 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 175) {
successFishing(pc, 40074, "$249"); // 1.5% 젤
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 180) {
successFishing(pc, 40087, "$244"); // 1.5% 데이
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 185) {
successFishing(pc, 240087, "$244"); // 저주 데이
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 188) {
successFishing(pc, 240074, "$249"); // 저주젤
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 190) {
successFishing(pc, 437004, "$5825"); // 전투강화주문서
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 192) {
successFishing(pc, 437003, "$5824"); // 마력증강 주문서
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 194) {
successFishing(pc, 437002, "$5823"); // 체력증강주문서
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 196) {
successFishing(pc, 140087, "$244"); // 축데이
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 198) {
successFishing(pc, 140074, "$249"); // 축젤
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 200) { //4% 비늘
successFishing(pc, 500235, "반짝이는 비늘");
pc.setFishingTime(0);
pc.setFishingReady(false);
pc.setFishing(false);
pc.sendPackets(new S_CharVisualUpdate(pc));
Broadcaster.broadcastPacket(pc, new S_CharVisualUpdate(pc));
pc.sendPackets(new S_ServerMessage(1163, ""));// 낚시가 종료했습니다.
removeMember(pc);
} else {
pc.sendPackets(new S_ServerMessage(1136, "")); // 낚시해에 실패했습니다.
pc.getInventory().consumeItem(41295, 1); //실패시 삭제
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
pc.getInventory().consumeItem(41295, 1);
}
}
}
}
}
}
----------------------------------------------------------------------------------------------------------
위에 파란부분 아래 빨간부분으로 통째로 복사하세요.
private void fishing() {
if (_fishingList.size() > 0) {
long currentTime = System.currentTimeMillis();
L1PcInstance pc = null;
for (int i = 0; i < _fishingList.size(); i++) {
pc = _fishingList.get(i);
if (pc.isFishing()) {
long time = pc.getFishingTime();
if (currentTime <= (time + 1000) && currentTime >= (time - 1000) ) {
pc.setFishingReady(true);
pc.sendPackets(new S_PacketBox(S_PacketBox.FISHING));
} else if ( currentTime > (time + 100)
){
int chance = _random.nextInt(1000);
if (chance < 200) {
pc.sendPackets(new S_ServerMessage(1136, "")); // 20%낚시에 실패.
pc.getInventory().consumeItem(41295, 1); //실패시 삭제
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
pc.getInventory().consumeItem(41295, 1);
} else if (chance < 405) {
successFishing(pc, 41297, "$5250"); // 20.5%잉어
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 610) {
successFishing(pc, 41296, "$5249"); // 20.5%붕어
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 710) {
successFishing(pc, 41298, "$5256"); // 10%어린 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 790) {
successFishing(pc, 41299, "$5257"); // 8%재빠른 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 850) {
successFishing(pc, 41300, "$5258"); // 6% 강한 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 880) {
successFishing(pc, 41301, "$5259"); // 3%붉은 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 910) {
successFishing(pc, 41302, "$5260"); // 3%초록 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 940) {
successFishing(pc, 41303, "$5261"); // 3%파란 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 970) {
successFishing(pc, 41304, "$5262"); // 3%흰 빛 나는 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 980) {
successFishing(pc, 41425, "$7509"); // 1% 상자 물고기
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 985) {
successFishing(pc, 41252, "$5248"); // 0.5% 진귀한 거북이
long time2 = System.currentTimeMillis() + 10000 + _random.nextInt(6) * 1000;
pc.setFishingTime(time2);
} else if (chance < 1000) {
successFishing(pc, 500235, "반짝이는 비늘"); // 1.5% 반짝이는 비늘
pc.setFishingTime(0);
pc.setFishingReady(false);
pc.setFishing(false);
pc.sendPackets(new S_CharVisualUpdate(pc));
Broadcaster.broadcastPacket(pc, new S_CharVisualUpdate(pc));
pc.sendPackets(new S_ServerMessage(1163, ""));// 낚시가 종료했습니다.
removeMember(pc);
}
}
}
}
}
}
출처 : 린프리

찰떡01 님의 최근 댓글
ㄳ 2023 06.17 ㄱㅅ 2020 12.19 클라 공유 부탁드립니다. 2020 12.19 ㄱㅅ 2020 11.26 ㄱㅅ 2020 11.05