2.7 벚꽃팩(넬기반) 레벨별 경험치 보너스 차등적용
작업할 파일
2.7 벚꽃팩\src\l1j\server\server\utils\CalcExp.java
private static void AddExp(L1PcInstance pc, int exp, int lawful) {}
CalcExp.java 파일 원본에서 위 메서드를 찾아서 아래 코드로 바꿔치기 하고 컴파일 합니다.
private static void AddExp(L1PcInstance pc, int exp, int lawful) {
int add_lawful = (int) (lawful * Config.RATE_LA) * -1;
pc.addLawful(add_lawful);
double exppenalty = ExpTable.getPenaltyRate(pc.getLevel());
// 1. 기본 경험치 계산 (기존 배율 적용)
double foodBonus = 1.0;
if (pc.hasSkillEffect(L1SkillId.COOKING_1_7_N)
|| pc.hasSkillEffect(L1SkillId.COOKING_1_7_S)) {
foodBonus = 1.01;
}
// 최종 기본 경험치
int add_exp = (int) (exp * exppenalty * Config.RATE_XP * foodBonus);
// 2. 고레벨 구간 추가 보너스 로직
int level = pc.getLevel();
int bonusExp = 0;
if (level >= 45) {
java.util.Random rnd = new java.util.Random();
double bonusMultiplier = 0.0;
if (level >= 50) {
// 50레벨부터 1레벨당 +1.0씩 기본 배율 증가 + 랜덤 보너스
bonusMultiplier = (20.0 + (level - 50)) + (rnd.nextDouble() * 5.0);
} else if (level >= 48) {
bonusMultiplier = 12.0 + (rnd.nextDouble() * 6.0);
} else {
bonusMultiplier = 5.0 + (rnd.nextDouble() * 5.0);
}
// 보너스 경험치 계산
bonusExp = (int) (exp * bonusMultiplier);
// 3. 최소 보너스 경험치 보장 (레벨이 높을수록 최소 보장치 강화)
int minBonus = (level >= 50) ? 100 : 50;
bonusExp = Math.max(bonusExp, minBonus);
}
// 4. 최종 경험치 합산 (기본 + 보너스)
// 0 이하의 경험치가 들어오지 않도록 최종적으로 1을 보장
int totalExp = Math.max(1, add_exp + bonusExp);
pc.addExp(totalExp);
}
설명
45레벨 미만
2.70 벚꽃팩\config\rates.properties 파일의
#RateXp 0.0-32767.0
RateXp = ??
기본 경험치 배수에 따라 동작
45~49레벨
몬스터가 주는 경험치 + RateXp 기본 배율 * 추가 경험치 1.0 ~ 5.0 랜덤
50레벨
몬스터가 주는 경험치 + RateXp 기본 배율 * 추가 경험치 20.0배
50 이후 1레벨당 추가 경험치 1퍼씩 상승
ex)
51레벨 추가 경험치 21.0
52레벨 추가 경험치 22.0
최종정리
45 미만 몬스터 EXP * RateXp 기본 배율만 적용
45~49 (EXP * RateXp) + (EXP * (1.0 ~ 5.0)) 기본 배율 + 1~5배 랜덤 보너스
50 (EXP * RateXp) + (EXP * 20.0) 기본 배율 + 20배 보너스
51 (EXP * RateXp) + (EXP * 21.0) 기본 배율 + 21배 보너스
52 (EXP * RateXp) + (EXP * 22.0) 기본 배율 + 22배 보너스
이후 1레벨당 보너스 경험치 1씩 증가
55레벨 이후 너무 과하게 경험치가 들어온다 싶으면 RateXp 경험치 배수를 바꾸거나 charsettings.properties 에서 페널티 값을 조절.

뷸바다 님의 최근 댓글
동영상 재생 포인트 날라갔어요! ㅜ 6800에서 1800남음ㅜ 2026 06.28 추가 경험치라고 써놔서 좀 헷갈릴 수 있는데 쉽게 말해서 몬스터가 주는 경험치가 10 * 기본배수(10배수일경우) = 10010 * 추가 경험치(46~49 구간 12배수라고 가정하면) = 120최종 100*120 = 220 2026 06.27 정정 합니다. 45~ 49구간 12.0 ~ 18.0배 입니다.해당 코드 부분} else if (level >= 48) { bonusMultiplier = 12.0 + (rnd.nextDouble() * 6.0); } else { bonusMultiplier = 5.0 + (rnd.nextDouble() * 5.0); } 2026 06.27