피버그 완전 방어
프리서버 오픈소스 리니지 피버그 완전 방어
1. 렙따케릭 스초불가능
l1j.server.server.clientpackets.C_ReturnStaus.java
if(pc.getLevel() == pc.getHighLevel() ) { // 1번:렙따케릭 스초 불가능
-------------------------------------------------------------------------
l1j.server.server.clientpackets.C_NPCAction.java
}else if (npcId == 4206000){ //검색
if (pc.getLevel() == pc.getHighLevel() ){
pc.sendPackets(new S_SystemMessage("레벨이 따운된 케릭터 입니다. 렙업후 이용해주세요."));
}else if (!pc.getInventory().checkItem(L1ItemId.REMINISCING_CANDLE)){
pc.sendPackets(new S_ServerMessage(1290));
}else {
pc.getInventory().consumeItem(L1ItemId.REMINISCING_CANDLE, 1);
L1Teleport.teleport(pc, 32723+_random.nextInt(10), 32851+_random.nextInt(10), (short)5166, 5, true);
StatInitialize(pc);
htmlid = "";}
2. 렙따케릭도 가능하고 버그도 막히게
if(pc.getLevel() >= 51) { // 2번:렙따케릭 스초가능 및버그방지
l1j.server.server.clientpackets.
C_ReturnStaus.java
생략
.
.
.
if(pc.getLevel() > 1 && pc.getAbility().getElixirCount() > 0) {
pc.sendPackets(new S_ReturnedStat(pc, S_ReturnedStat.END));
} else {
try {
if(pc.getLevel() >= 51) {
pc.getAbility().setBonusAbility(pc.getLevel() - 50);
}
else {
pc.getAbility().setBonusAbility(0);
}
if(pc.getLevel() >= 51) { // 2번:렙따케릭 스초가능 및버그방지
pc.setExp(pc.getReturnStat());
pc.sendPackets(new S_ReturnedStat(pc, S_ReturnedStat.END));
pc.sendPackets(new S_OwnCharStatus(pc));
pc.sendPackets(new S_OwnCharAttrDef(pc));
pc.sendPackets(new S_SPMR(pc));
pc.setCurrentHp(pc.getMaxHp());
pc.setCurrentMp(pc.getMaxHp());
pc.sendPackets(new S_HPUpdate(pc.getCurrentHp(), pc.getMaxHp()));
pc.sendPackets(new S_MPUpdate(pc.getCurrentMp(), pc.getMaxMp()));
L1Teleport.teleport(pc, 32612, 32734, (short)4, 5, true);
pc.setReturnStat(0);
pc.save();
pc.CheckStatus();
}
else
{
return;
}///스초버그 추가할부분
} catch (Exception exception) {}
}
break;
}
} else if(type == 3) { // 스텟 초기화시 엘릭서 처리
try{
int str = readC();
int intel = readC();
int wis = readC();
int dex = readC();
int con = readC();
int cha = readC();
pc.getAbility().addStr((byte) (str - pc.getAbility().getStr()));
pc.getAbility().addInt((byte) (intel - pc.getAbility().getInt()));
pc.getAbility().addWis((byte) (wis - pc.getAbility().getWis()));
pc.getAbility().addDex((byte) (dex - pc.getAbility().getDex()));
pc.getAbility().addCon((byte) (con - pc.getAbility().getCon()));
pc.getAbility().addCha((byte) (cha - pc.getAbility().getCha()));
if(pc.getLevel() >= 51) {
pc.getAbility().setBonusAbility(pc.getLevel() - 50);
}
else {
pc.getAbility().setBonusAbility(0);
}
if(pc.getLevel() >= 51) { // 2번:렙따케릭 스초가능 및버그방지
pc.setExp(pc.getReturnStat());
pc.sendPackets(new S_OwnCharStatus(pc));
pc.sendPackets(new S_OwnCharAttrDef(pc));
pc.setCurrentHp(pc.getMaxHp());
pc.setCurrentMp(pc.getMaxHp());
pc.sendPackets(new S_HPUpdate(pc.getCurrentHp(), pc.getMaxHp()));
pc.sendPackets(new S_MPUpdate(pc.getCurrentMp(), pc.getMaxMp()));
pc.sendPackets(new S_ReturnedStat(pc, 4));
L1Teleport.teleport(pc, 32612, 32734, (short)4, 5, true);
pc.setReturnStat(0);
pc.save();
pc.CheckStatus();
}
else {
return;
} ///스초버그 추가할부분
} catch (Exception exception) {}
}
}
출처 : 린프리

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