2.0 버전에서 ER 체크는 어디서 하나요?
컨텐츠 정보
- 390 조회
- 1 댓글
- 0 추천
- 0 비추천
- 목록
본문
원거리 공격 회피율이 스텟창에는 분명 나오고 있는데
이게 어떤 기준으로 나타나고 있는지 모르겠습니다.
서버 패킷이나 클라 패킷 아무리 봐도 ER을 처리 해주는 부분이 안보이거든요.
MR이나 SP는 따로 패킷에 있습니다..
소스 내에서는 공격 성공율을 처리 하는 과정에서만 getEr() 이랑 toOriginalStatER() 에서만 체크하고
실질적으로 스텟창에 보여주는게 어디서 보여주는지 모르겠습니다.
관련자료
댓글 1

얌야밍님의 댓글
자문 자답 입니다.
ER 값은 서버 상에 특별하게 올려주는 값이 없고
클라이언트 에서 레벨과 덱스를 보고 판별 해서 나타나는거 같습니다.
클래스별 고유의 ER값이 소스 상에는 존재할건데 이게 다 없어져야합니다.
그리고 getEr() 함수에서 계산 공식은
public int getEr(Character cha)
{
int er = 0;
if(cha.getTotalDex()<8)
er = -1;
else
er = (cha.getTotalDex()-8) / 2;
switch(cha.getClassType()){
case Lineage.LINEAGE_CLASS_ROYAL:
er += cha.getLevel() / 8;
break;
case Lineage.LINEAGE_CLASS_ELF:
er += cha.getLevel() / 6;
break;
case Lineage.LINEAGE_CLASS_KNIGHT:
er += cha.getLevel() / 4;
break;
case Lineage.LINEAGE_CLASS_WIZARD:
er += cha.getLevel() / 10;
break;
}
// 버프로 올라가는 다이나믹 ER 값 추가
er += cha.getDynamicEr();
return er;
}
입니다. 스텟창이랑 동일하게 나오네요.
ER 값은 서버 상에 특별하게 올려주는 값이 없고
클라이언트 에서 레벨과 덱스를 보고 판별 해서 나타나는거 같습니다.
클래스별 고유의 ER값이 소스 상에는 존재할건데 이게 다 없어져야합니다.
그리고 getEr() 함수에서 계산 공식은
public int getEr(Character cha)
{
int er = 0;
if(cha.getTotalDex()<8)
er = -1;
else
er = (cha.getTotalDex()-8) / 2;
switch(cha.getClassType()){
case Lineage.LINEAGE_CLASS_ROYAL:
er += cha.getLevel() / 8;
break;
case Lineage.LINEAGE_CLASS_ELF:
er += cha.getLevel() / 6;
break;
case Lineage.LINEAGE_CLASS_KNIGHT:
er += cha.getLevel() / 4;
break;
case Lineage.LINEAGE_CLASS_WIZARD:
er += cha.getLevel() / 10;
break;
}
// 버프로 올라가는 다이나믹 ER 값 추가
er += cha.getDynamicEr();
return er;
}
입니다. 스텟창이랑 동일하게 나오네요.