스타포스 강화 능력치 수정
public static void StarForceEnhanceItem(IItem equip, boolean fall)
{
Equip nEquip = (Equip) equip;
스타포스 강화 소스의 일부입니다. 위를 보면 boolean형 변수인
fall이 선언되어있는데 저 부분이 쓰인곳을 찾아보면
성공시에
StarForceEnhanceItem(item, false);
실패시에
StarForceEnhanceItem(item, true);
가 쓰입니다.
즉, 성공시에는 0 실패시에는 1이 전달된다는 말인데요. 나머지 소스부분을 살펴보면
if (nEquip.getDex() > 0)
{
nEquip.setDex((short) (nEquip.getDex() + (fall ? -2 : 2)));
}
이렇게 구성되어 있습니다.
fall의 값이 성공했으면 0이 반환되므로 2가 반환되고
실패시에는 1이므로 -2가 반환되겠죠?
그러므로 강화 성공시에는 무조건적으로 2의 스탯만 오르게됩니다..
뭔가 스타포스 강화 치고는 메리트가 없죠?
=======================================================================
<여기서 잠깐, 저 윗부분에서 2차 피연산자가 음수가 반환되어야 하는 이유로는 여기에 있습니다
if (fall) {
if (nEquip.getEnhance() > 0) {
nEquip.setEnhance((byte) (nEquip.getEnhance() - 1));
} else {
nEquip.setEnhance((byte) 0); <<실패로 처리
}
} else {
nEquip.setEnhance((byte) (nEquip.getEnhance() + 1));
}
강화를 모두 한 후의 밑부분에 있는 부분인데요.
fall값을 넘겨받은것과는 별도로 위의 강화부분에서 음수를 받은 경우에는 실패로 간주하고
강화수를 그대로 두며
강화를 성공하였을경우에는 강화수가 올라감과 동시에 위에서 강화된 능력치를 부여받게됩니다 >
=============================================================
그래서! 이렇게 바꿔봤습니다.
nEquip.setWatk((short)
(nEquip.getWatk() + (fall ? -1 : (ItemInformation.getInstance().getReqLevel(nEquip.getItemId())/30 + 1))));
자.. 이러면 어떻게될까요?
장비 레벨이 150이라면 6의 공격력을 올려주게 되며
장비레벨이 60이라면 3의 공격력을 올려주게 되죠.
조금 더 해서 장비 강화에서 레벨만 불러온다면 뭔가 아쉽겠죠?
그러므로 장비 강화 수치에 따른 능력치를 부여해주도록 합시다.
if (nEquip.getStarForce() < 10)
위의 소스를 넣게되면 10강미만의 경우엔 몇, 몇 이런식으로
강화 차수에 따른 능력치별 강화가 가능합니다.
자..이제 강화 관련은 다 끝난거같죠?
하지만 여기서 끝이 아닙니다.. 우리가 눈으로보는 강화 화면

이 부분도 따로 수정을 해줘야합니다..
초기 강화 수치가 ( x ? -2 : 2)로 되어있었죠?
화면도 보니 모두 2로 나옵니다... 흐흑... 이 부분을 모두 바꿔줘야합니다.
역시나 프리뷰 소스도..
public static List<Pair<EnchantEquipStats, Integer>> StarForcePreview(IItem equip) {
final List<Pair<EnchantEquipStats, Integer>> stats = new ArrayList();
Equip nEquip = (Equip) equip;
if (nEquip.getWatk() > 0) {
stats.add(new Pair(EnchantEquipStats.WATK, 2));
}
이렇게... 모두 2로 고정되어있습니다... ㅠㅠㅠㅠ
이제 이 부분을 바꿔야 하므로..
if (nEquip.getStarForce() < 10)
{
if (nEquip.getWatk() > 0) {
stats.add
(new Pair(EnchantEquipStats.WATK, (ItemInformation.getInstance().getReqLevel(nEquip.getItemId())/30 + 1)));
}
이렇게 바꿔줍시다.
밑 부분 역시 동일하게 바꿔주고..
인게임에서 확인해보면

이렇게 바뀌게 됩니다.
(회피치나 명중치는 큰 영향을 주지 않는부분이라 딱히 수정하지 않았습니다)
예전에는 육오를 하면서 몇몇 자료를 올렸었는데.. 꽤나 사라져있네요 ㅎ
육오는 하지 않아서 나름 바꾼것도 아깝고 해서 뿌릴려고했는데 포맷으로 사라진거같네요..
이젠 219손대면서 놀아봐야겠네요
육오할땐 테스트해주는분들도 많았는데.. 크읔...
뭔가 쓰다보니 개발보다는 강의 위주로 된거같습니다만.. 내역 올릴때 다른분들도 보시는거같아서
이런식으로 올려서 양이 방대하니.. 스압은 죄송합니다 ㅠㅠ

cksals33 님의 최근 댓글
감사용 2017 04.03