사이트 로그인
2016.06.29 09:47
먼저 덱방은 다들 아실꺼라 봅니다..
이게 어떻게 해서 연산이 이뤄지나 봅시다..
클라이언트 스레드..
접속시 ac를 불러 오는부분 입니다...
연산을 한번 보죠..
if(cha.get_dex()<=9){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 8 ) ) / 8 );
}else if(cha.get_dex()>=10 && cha.get_dex()<=12){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 7 ) ) / 7 );
}else if(cha.get_dex()>=13 && cha.get_dex()<=15){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 6 ) ) / 6 );
}else if(cha.get_dex()>=16 && cha.get_dex()<=17){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 5 ) ) / 5 );
}else if(cha.get_dex()>=18){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 4 ) ) / 4 );
}
이러한 공식을 보셧을 껍니다...참 이상하죠??
물론 엄청나게 잘되어 있는겁니다... 그걸 못알아보니 이상하다는것......
예를 하나들어봅시다..
ac가 256은 0이란 수치죠 초기에 케릭ac가 +10이기때문에
266 이란 수치로 시작하게 하는거죠 ㅇㅋ?
그럼 요정을 예를 들어서 봅쉐~
요정랩 40에 덱스 18이라봅시다...........
if(cha.get_dex()>=18){
cha.set_ac( 266 - ( cha.get_level() - ( cha.get_level() % 4 ) ) / 4 );
}
요놈이군요..... 자 대입해 봅시닷...
cha.set_ac( 266 - ( 40 - ( 40% 4 ) ) / 4 ); 요런 수학적 계산이 나오네요..
여기서 의문이 많으 실겁니다.. 40%4 이게 멀까....
%퍼센트 일까? 확률?? 아 해깔려 `` 도대체 멀까..
대충 생각하기론...ㅋ 40을 4로 나누고 남은 수를 가져온다는거죠
그럼 40 % 4 = 40 / 4 = 10 나머지 0 그럼 0이기 때문에 40 - 0 / 4 = 10오호..
덱 18에 10방이 떨어지군요 !!
다른수를 넣어보죠 42랩에 덱18이면??
42 % 4 = 42 / 4 = 10 나머지 2
42 - 2 = 40 /4 = 10
결론은 또 10이군요 .. 머 이런공식이엇던거죠..
로드시엔 저 연산으로 정확한 덱방을 받아오는거죠 ..
그후에 랩업시에 바로 적용을 위해서 ..
유틸폴더안의 CalcStat.java를 보시면
public int CalcStatAc(int lvl, int dex)
{
int ac = 0;
if(dex <= 9 && lvl % 8 == 0)
ac = 1;
if(dex >= 10 && dex <= 12 && lvl % 7 == 0)
ac = 1;
if(dex >= 13 && dex <= 15 && lvl % 6 == 0)
ac = 1;
if(dex >= 16 && dex <= 17 && lvl % 5 == 0)
ac = 1;
if(dex >= 18 && lvl % 4 == 0)
ac = 1;
return ac;
}
똑같은 연산이네용 ..
레벨을 나눈후 남은 값이 == 0과 같을때 ac 에 1을 담아서 빼주는거죠
레벨업 할때 처리는 어케 하느냐..]
int Statac = 0;//호출할 tempac초기화..
//tempac에 ac연산호출후 그값을 가져온다..
Statac = calcstat.CalcStatAc(cha.get_level(), cha.get_dex());
//리턴값을 받아 현제ac에서 빼준다..
cha.set_ac(cha.get_ac() - Statac);
이러면 레벨업시 ac가 깍이겟네요 ``
쉽죠!? 그럼 전 다시 잠수~
[출처] 덱방을 알아보자.. (비공개 카페)