사이트 로그인
2024.04.09 03:18
config\charsettings.properties 메모장 열어서
# 각 클래스의 MaxHPMP
이곳을 수정하세요.
나비켓에서 hp 수정시 잘못된 스텟이라고 피1 엠1 되면서 스초하라고 할 때
server.controller.pc 안에 프리미엄컨트롤러.java
private void CheckMaxHP(L1PcInstance pc) {
double maxHp = 0;
double[] knight = { 18.5, 19.5, 20.5, 21.5, 23.5, 25.5, 26.5, 26.5, 27.5, 27.5, 28.5, 28.5, 29.5, 29.5, 30.5, 30.5, 31.5, 31.5, 32.5, 32.5, 33.5, 33.5 };
double[] elf = { 12.5, 13.5, 13.5, 13.5, 14.5, 15.5, 16.5, 19.5, 20.5, 20.5, 21.5, 21.5, 22.5, 22.5, 23.5, 23.5, 24.5, 24.5, 25.5, 25.5, 26.5, 26.5, 27.5, 27.5 };
double[] dragonknight = { 16.5, 17.5, 18.5, 19.5, 20.5, 22.5, 23.5, 23.5, 24.5, 24.5, 25.5, 25.5, 26.5, 26.5, 27.5, 27.5, 28.5, 28.5, 29.5, 29.5, 30.5, 30.5 };
double[] wizard = { 10.5, 10.5, 11.5, 11.5, 12.5, 13.5, 14.5, 17.5, 18.5, 18.5, 19.5, 19.5, 20.5, 20.5, 21.5, 21.5, 22.5, 22.5, 23.5, 23.5, 24.5, 24.5, 25.5, 25.5 };
double[] darkelf = { 11.5, 11.5, 12.5, 12.5, 14.5, 14.5, 14.5, 14.5, 16.5, 16.5, 16.5, 19.5, 20.5, 20.5, 21.5, 21.5, 22.5, 22.5, 23.5, 23.5, 24.5, 24.5, 25.5, 25.5, 26.5, 26.5, 27.5, 27.5 };
double[] crown = { 11.5, 11.5, 12.5, 12.5, 13.5, 13.5, 15.5, 16.5, 17.5, 21.5, 22.5, 22.5, 23.5, 23.5, 24.5, 24.5, 25.5, 25.5, 26.5, 26.5, 27.5, 27.5, 28.5, 28.5, 29.5, 29.5 };
double[] Illusionist = { 11.5, 11.5, 12.5, 12.5, 13.5, 15.5, 16.5, 16.5, 17.5, 17.5, 18.5, 18.5, 19.5, 19.5, 20.5, 20.5, 21.5, 21.5, 22.5, 22.5, 23.5, 23.5, 24.5, 24.5 };
double range = 50;
try {
if (pc.getLevel() >= 65 && !pc.isGm()) {
if (pc.isKnight()) {
maxHp = (knight[pc.getAbility().getCon() - 14] * pc.getLevel()) + range;
} else if (pc.isElf()) {
maxHp = (elf[pc.getAbility().getCon() - 12] * pc.getLevel()) + range;
} else if (pc.isDragonknight()) {
maxHp = (dragonknight[pc.getAbility().getCon() - 14] * pc.getLevel()) + range;
} else if (pc.isWizard()) {
maxHp = (wizard[pc.getAbility().getCon() - 12] * pc.getLevel()) + range;
} else if (pc.isDarkelf()) {
maxHp = (darkelf[pc.getAbility().getCon() - 8] * pc.getLevel()) + range;
} else if (pc.isCrown()) {
maxHp = (crown[pc.getAbility().getCon() - 10] * pc.getLevel()) + range;
} else if (pc.isIllusionist()) {
maxHp = (Illusionist[pc.getAbility().getCon() - 12] * pc.getLevel()) + range;
}
if (maxHp < pc.getBaseMaxHp()) {
for (L1ItemInstance item : pc.getInventory().getItems()) {
if (item.isEquipped()) {
pc.getInventory().setEquipped(item, false);
}
}
if (pc.getSkillEffectTimerSet().hasSkillEffect(ADVANCE_SPIRIT)){
pc.getSkillEffectTimerSet().removeSkillEffect(ADVANCE_SPIRIT);
}
L1SkillUse l1skilluse = new L1SkillUse();
l1skilluse.handleCommands(pc, L1SkillId.CANCELLATION, pc.getId(), pc.getX(), pc.getY(), null, 0, L1SkillUse.TYPE_LOGIN);
pc.setMaxHp(1);
pc.setCurrentHp(1);
pc.setMaxMp(1);
pc.setCurrentMp(1);
pc.save();
pc.sendPackets(new S_OwnCharStatus2(pc)); // 나비켓 기록
pc.sendPackets(new S_HPUpdate(pc));
pc.sendPackets(new S_MPUpdate(pc.getCurrentMp(), pc.getMaxMp()));
pc.sendPackets(new S_SystemMessage("\\fYHP 수치가 올바르지 않습니다. 스텟초기화를 다시 하세요."));
pc.sendPackets(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fCHP 수치가 올바르지 않습니다. 스텟초기화를 다시 하세요."));
for (L1PcInstance player : L1World.getInstance().getAllPlayers()) {
if (pc.isGm()) {
player.sendPackets(new S_SystemMessage("\\fY" + pc.getName() + "님 HP 버그에 검출되었습니다."));
//Accound에 등록한후에 BanIP추가
Account.ban(pc.getAccountName());//중계기라고 할지라도 자동 벤시켜버린다.
}
}
}
}
} catch (Exception e) {
_log.log(Level.SEVERE, "PrimeumControler[]Error2", e);
}
}
}
여기에서
if (pc.getLevel() >= 65 && !pc.isGm()) 요부분 을 99로 고쳐주거나
아니면 해당 커리부분을 주석처리 ( /* */) 하세요.