[요정]속성 마법에 의한 추가 데미지
출처 : LOVE연구소 개테님
안녕하세요.
요정의 정령 마법중 일부 마법은 일반 추가 대미지가 아닌 속성 추가 대미지 인걸 어제 처음 알았네요.
(파이어 웨폰, 버닝 웨폰, 아이 오브 스톰, 스톰 샷)
이미 아는 분들은 다 하셨겠지만, 안하신 분들은 늦게라도 하세요.
L1Character.java
// 속성 마법에 의한 추가 대미지
private int _attrDmgup;
/** 속성 마법에 의한 추가 대미지 (개태) </br>
* 파이어 웨폰, 버닝 웨폰, 아이 오브 스톰, 스톰 샷**/
public int getAttrDmgup() {
return _attrDmgup;
}
/** 속성 마법에 의한 추가 대미지 (개태) </br>
* 파이어 웨폰, 버닝 웨폰, 아이 오브 스톰, 스톰 샷**/
public void addAttrDmgup(int i) {
_attrDmgup += i;
if (_attrDmgup >= 127) {
_attrDmgup = 127;
} else if (_attrDmgup <= -128) {
_attrDmgup = -128;
}
}
=================================================================
L1SkillUse.java
case FIRE_WEAPON: {
L1PcInstance pc = (L1PcInstance) cha;
pc.addAttrDmgup(4);
pc.sendPackets(new S_SkillIconAura(147, _getBuffIconDuration));
}
break;
case BURNING_WEAPON: {
L1PcInstance pc = (L1PcInstance) cha;
pc.addAttrDmgup(6);
pc.addHitup(6);
pc.sendPackets(new S_SkillIconAura(162, _getBuffIconDuration));
}
break;
case STORM_EYE: {
L1PcInstance pc = (L1PcInstance) cha;
pc.addAttrDmgup(3);
pc.addBowHitup(2);
pc.sendPackets(new S_SkillIconAura(155, _getBuffIconDuration));
}
break;
case STORM_SHOT: {
L1PcInstance pc = (L1PcInstance) cha;
pc.addAttrDmgup(6);
pc.addBowHitup(3);
pc.sendPackets(new S_SkillIconAura(165, _getBuffIconDuration));
}
break;
=================================================================
L1SkillTimer.java
case FIRE_WEAPON:
cha.addAttrDmgup(-4);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconAura(147, 0));
}
break;
case STORM_EYE:
cha.addBowHitup(-2);
cha.addAttrDmgup(-3);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconAura(155, 0));
}
break;
case BURNING_WEAPON:
cha.addAttrDmgup(-6);
cha.addHitup(-6);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconAura(162, 0));
}
break;
case STORM_SHOT:
cha.addAttrDmgup(-6);
cha.addBowHitup(-3);
if (cha instanceof L1PcInstance) {
L1PcInstance pc = (L1PcInstance) cha;
pc.sendPackets(new S_SkillIconAura(165, 0));
}
break;
=================================================================
L1Attack.java
/** 속성 마법에 의한 추가 대미지 (개태) : 통합 메서드 **/
private int calcAttrSkillDmg() {
int dmg = 0;
if (_calcType == PC_PC) {
dmg = calcAttrSkillPcDmg();
} else if (_calcType == PC_NPC) {
dmg = calcAttrSkillNpcDmg();
}
return dmg;
}
/** 속성 마법에 의한 추가 대미지 (개태) : 대상이 PC **/
private int calcAttrSkillPcDmg() {
double dmg = _pc.getAttrDmgup();
double maxDmg = dmg * 2D;
int attrDefence = 0;
if (_pc.getSkillEffectTimerSet().hasSkillEffect(FIRE_WEAPON) || _pc.getSkillEffectTimerSet().hasSkillEffect(BURNING_WEAPON)) {
if (_weaponType == 20 || _weaponType == 62) {
return 0;
}
attrDefence = _targetPc.getResistance().getFire();
} else if (_pc.getSkillEffectTimerSet().hasSkillEffect(STORM_EYE) || _pc.getSkillEffectTimerSet().hasSkillEffect(STORM_SHOT)) {
if (_weaponType != 20 && _weaponType != 62) {
return 0;
}
attrDefence = _targetPc.getResistance().getWind();
}
dmg -= (dmg / 100D) * attrDefence;
if (dmg < 0) {
dmg = 0;
} else if (dmg > maxDmg) {
dmg = maxDmg;
}
return (int) dmg;
}
/** 속성 마법에 의한 추가 대미지 (개태) : 대상이 NPC **/
private int calcAttrSkillNpcDmg() {
double dmg = _pc.getAttrDmgup();
int weakAttr = _targetNpc.getNpcTemplate().get_weakAttr();
if (_pc.getSkillEffectTimerSet().hasSkillEffect(FIRE_WEAPON) || _pc.getSkillEffectTimerSet().hasSkillEffect(BURNING_WEAPON)) {
if (_weaponType == 20 || _weaponType == 62) {
return 0;
} else if (weakAttr == 0) {
dmg = dmg / 2D;
} else if (weakAttr != 4) {
return 0;
}
} else if (_pc.getSkillEffectTimerSet().hasSkillEffect(STORM_EYE) || _pc.getSkillEffectTimerSet().hasSkillEffect(STORM_SHOT)) {
if (_weaponType != 20 && _weaponType != 62) {
return 0;
} else if (weakAttr == 0) {
dmg = dmg / 2D;
} else if (weakAttr != 8) {
return 0;
}
}
return (int) dmg;
}
L1Attack의 calcPcPcDamage , calcPcNpcDamage 두군데 에서 통합부분 추가해주시면 됩니다.
/** 속성 마법에 의한 추가 대미지 **/
weaponTotalDamage += calcAttrSkillDmg();
* 이와 비슷한 성격의 한번씩 점검 해보셔야할 부분
- L1Attack 속성 인챈트에 의한 추가 대미지
- L1Magic 속성 방어에 의한 대미지 감소
[출처] 속성 마법에 의한 추가 대미지 (비공개 카페)

연구사원 님의 최근 댓글
감사합니다 2017 11.29 9999 가 본 영자모드이고 7777이 부영자 모드 같더군요. 2016 06.13 좋은 자료 감사합니다. 2016 06.09 감사합니다. 2016 06.08 감사합니다. 2016 06.08