펫관련 본섭화와 밸런스
에바팩기반 네오팩기준입니다. 본섭화나 하자섭을 위한 소스입니다.
우선 펫 관련하여 피와 엠 성장치는 본섭화하고 데미지는 밸런스 잡는 소스입니다.
본섭화는 말안해도 아실거고 밸런스는 개인적인 생각으로 잡아본 수치입니다.
일단 펫을 일반 하이 프리미엄 골드 레어로 구분하고 속성으로는 물리펫과 마법펫 그리고 복합펫으로 구분함.
펫의 피 데미지 공속 이속의 합을 일반은 100 아기레어 150 하이 200 프리미엄 250 골드 레어 300으로 밸런스를 잡았습니다.
만약 피 공속 이속이 같다면 일반은 데미지 10일때 아기레어 15 하이 20 프리미엄 25 골드 레어 30 되도록 맞췄습니다.
그리고 마법펫은 물리적인 합을 절반으로 줄이고 복합펫은 물리력은 물리펫과 같고 마법력만 마법펫의 반정도로 줄였습니다.
(곰은 이속이 너무 느린관계로 20% 상향 칠터치는 다른 마법에 비해 20% 하향 라쿤은 마법펫이지만 물리펫 공격력 부여)
테스트결과 별다른 이상없음. 테스트해보시고 이상있으면 리플달아주세요.
(해츨링펫은 네오팩에 없습니다. 해츨링 소스있으신분 좀 올려주세요.)
펫의 데미지 본섭에선 마법펫은 8렙당 추타 물리펫은 4렙당 추타 그리고 기본데미지 있습니다.
마법펫 물리펫 구분은 힘이 10이하면 마법펫 10이상이면 물리펫으로 구분하였습니다.
피와 엠의 성장은 본섭이랑 동일합니다.
물리데미지랑 마법데미지는 될수있으면 본섭에 가깝도록 설정하면서 서로간에 밸런스 조절만 했습니다.
자세한 내용은 첨부파일안에 있습니다.(첨부파일안엔 펫말고도 이전 마법 힐 마법발동무기가 같이있음)
첨부파일안에 내용중 나비켓에 변경해야될 부분은 분홍색으로 표시했습니다.(네오팩 나비켓기준입니다.)
pettype의 hpuomin max mpupmin max
npc의 STR INT와 엠틱
mobskill의 vlue dice count 엠소모
그리고 나비켓 mobskill에 추가해야될것은 몇몇 일반마법펫의 마법
기존 물리공격 actNo를 1로 바꾸세요.
45039 0 (추가)고양이(칠 터치) 2 100 0 0 -6 0 0 0 0 0 10 10 0 0 0 0 0 0
45046 0 (추가)비글(스탈락) 2 100 0 0 -6 0 0 0 0 0 10 16 0 0 0 0 0 0
45047 0 (추가)세인트 버나드(윈드 커터) 2 100 0 0 -6 0 0 0 0 0 10 7 0 0 0 0 0 0
45048 0 여우(파이어애로우) 2 100 0 0 -6 0 0 0 0 0 10 15 0 0 0 0 0 0
45697 3 (추가)하이 라쿤(위크니스) 2 20 0 0 -3 0 0 0 0 0 0 47 0 0 0 0 0 0
그리고 펫의 (피 엠) 축 저주 만들기 쉽도록 평균만 본섭이랑 동일하게 하고 최소 최대의 편차를 최대로 하였습니다.
빨간부분 추가하세요.
l1j.server.server.model.L1Attack.java
// ●●●● NPC 로부터 플레이어에의 데미지 산출 ●●●●
private int calcNpcPcDamage() {
int lvl = _npc.getLevel();
double dmg = 0D;
int str = _npc.getAbility().getTotalStr();
/*if (lvl < 10) {
dmg = _random.nextInt(lvl) + 10D + _npc.getAbility().getTotalStr() / 2 + 1;
} else {
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr() / 2 + 1;
}*/
if (_npc instanceof L1PetInstance) { //마법펫 물리펫 str 10을 기준으로 구분함.
if (_npc.getAbility().getStr() < 10) { //마법펫은 8렙당 1추타임.
dmg = (lvl / 8) + _random.nextInt(str) * 2;
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
} else if (_npc.getAbility().getStr() >= 10) { //물리펫은 4렙당 1추타임.
dmg = (lvl / 4) + _random.nextInt(str) * 2;
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
}
} else { //기존npc데미지부분은 간소화만 시켰습니다. 그리고 기존부분 주석처리함.
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr() + (lvl * lvl / 100);
}
/*
if (lvl < 10) // 몹렙이 10미만
dmg = _random.nextInt(lvl) + 10D + _npc.getAbility().getTotalStr() + 2;
else if(lvl >=10 && lvl < 20) // 몹렙이 10 ~ 49
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 2;
else if(lvl >=20 && lvl < 30) //몹렙이 50 ~ 69
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 4;
else if(lvl >=30 && lvl < 40) //몹렙이 50 ~ 69
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 8;
else if(lvl >=40 && lvl < 50) //몹렙이 50 ~ 69
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 12;
else if(lvl >=50 && lvl < 60) // 몹렙이 70 ~ 79
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 16;
else if(lvl >=60 && lvl < 70) // 몹렙이 80 ~ 86
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 20;
else if(lvl >=70 && lvl < 80) //몹렙이 50 ~ 69
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 30;
else if(lvl >=80 && lvl < 87) //몹렙이 50 ~ 69
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()+ 40;
else if(lvl >=87) // 몹렙이 87 이상
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr()*2 +100;
*/
/*
if (_npc instanceof L1PetInstance) {
dmg += (lvl / 16); // 펫은 LV16마다 추가 타격
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
}
*/
// ●●●● NPC 로부터 NPC 에의 데미지 산출 ●●●●
private int calcNpcNpcDamage() {
int lvl = _npc.getLevel();
double dmg = 0;
int str = _npc.getAbility().getTotalStr();
if (_npc instanceof L1PetInstance) { //마법펫 물리펫 str 10을 기준으로 구분함.
if (_npc.getAbility().getStr() < 10) { //마법펫은 8렙당 1추타임.
dmg = (lvl / 8) + _random.nextInt(str) * 2;
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
} else if (_npc.getAbility().getStr() >= 10) { //물리펫은 4렙당 1추타임.
dmg = (lvl / 4) + _random.nextInt(str) * 2;
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
}
} else {
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr() + (lvl * lvl / 100);
}
/*
if (_npc instanceof L1PetInstance) {
dmg = _random.nextInt(_npc.getNpcTemplate().get_level()) + _npc.getAbility().getTotalStr() / 2 + 1;
dmg += (lvl / 16); // 펫은 LV16마다 추가 타격
dmg += ((L1PetInstance) _npc).getDamageByWeapon();
} else {
dmg = _random.nextInt(lvl) + _npc.getAbility().getTotalStr() / 2 + 1;
}
*/
[출처] 왠마왕

로스트사가 님의 최근 댓글
감사합니다. 2019 06.13 감사합니다. 2019 06.12 감사합니다. 2019 05.03 감사합니다. 2019 05.03 감사합니다. 2018 03.11