5단 속성 인첸트 본섭화
if (item.getItem().getType2() == 1) {
if (!item.isIdentified() || item.getEnchantLevel() == 0) {
switch (i) {
case -1:
s = s1;
sa = "$246";
sb = "$247";
int attr_level = item.getAttrEnchantLevel();
if(attr_level>0){
if(attr_level %5==4){
if(10==item.getEnchantLevel()){
item.setAttrEnchantLevel(attr_level -1);
}
}else if(attr_level %5==0){
if(11==item.getEnchantLevel()){
item.setAttrEnchantLevel(attr_level -1);
}
}
}
break;
[중략]
} else {
switch (i) {
case -1:
s = (new StringBuilder()).append(pm + item.getEnchantLevel()).append(" ").append(s1).toString();
sa = "$246";
sb = "$247";
int attr_level = item.getAttrEnchantLevel();
if(attr_level>0){
if(attr_level %5==4){
if(10==item.getEnchantLevel()){
item.setAttrEnchantLevel(attr_level -1);
}
}else if(attr_level %5==0){
if(11==item.getEnchantLevel()){
item.setAttrEnchantLevel(attr_level -1);
}
}
}
break;
public void AttrEnchant(L1PcInstance pc, L1ItemInstance item, int itemId) {
int attr_level = item.getAttrEnchantLevel();
int chance = _random.nextInt(100) + 1;
int AttrScroll = 0;
if (itemId == L1ItemId.FIRE_ENCHANT_WEAPON_SCROLL) { // 불의 무기 강화 주문서
AttrScroll=1;
} else if (itemId== L1ItemId.WATER_ENCHANT_WEAPON_SCROLL) { // 물의 무기 강화 주문서
AttrScroll=6;
} else if (itemId == L1ItemId.WIND_ENCHANT_WEAPON_SCROLL) { // 바람의 무기 강화 주문서
AttrScroll=11;
} else if (itemId == L1ItemId.EARTH_ENCHANT_WEAPON_SCROLL) { // 땅의 무기 강화 주문서
AttrScroll=16;
}else{
pc.sendPackets(new S_ServerMessage(79)); // 아무일도 일어나지 않았습니다.
return;
}
if (!pc.getInventory().checkItem(itemId, 1)) {
return;
}
if (attr_level == 0) {
if (chance <= 30) {
pc.sendPackets(new S_ServerMessage(1410, item.getLogName()));
item.setAttrEnchantLevel(AttrScroll);
} else {
pc.sendPackets(new S_ServerMessage(1411, item.getLogName()));
}
pc.getInventory().consumeItem(itemId, 1);
} else if (AttrScroll<=attr_level&&attr_level < AttrScroll+3) {
if(item.getEnchantLevel()<10){
if (attr_level == AttrScroll+2) {//4단계 강화 시도시
pc.sendPackets(new S_ServerMessage(1294)); //인챈트: 해당 강화 주문서 사용 불가
return;
}
}
if (chance <= 20/(attr_level -AttrScroll+1)) {
pc.sendPackets(new S_ServerMessage(1410, item.getLogName()));
//인챈트: %0에 영롱한 대자연의 힘이 스며듭니다.
item.setAttrEnchantLevel(attr_level +1);
} else {
pc.sendPackets(new S_ServerMessage(1411, item.getLogName()));
}
pc.getInventory().consumeItem(itemId, 1);
} else if (attr_level ==AttrScroll+3) {
if(item.getEnchantLevel()<11){//5단계 강화 시도시
pc.sendPackets(new S_ServerMessage(1294)); //인챈트: 해당 강화 주문서 사용 불가
return;
}
if (chance <= 3) {
pc.sendPackets(new S_ServerMessage(3296, item.getLogName()));
//인챈트: %0에 찬란한 대자연의 힘이 스며듭니다.
item.setAttrEnchantLevel(attr_level +1);
} else {
pc.sendPackets(new S_ServerMessage(1411, item.getLogName()));
//인챈트: %0에 힘이 스며들지 못했습니다.
}
pc.getInventory().consumeItem(itemId, 1);
} else if (attr_level == AttrScroll+4) {//5단계
pc.sendPackets(new S_ServerMessage(79)); //
return;
}else{
if(attr_level %5==4||attr_level %5==0){
pc.sendPackets(new S_ServerMessage(3297)); //3297 인챈트: 다른 속성 부여 불가(속성 4단 이상)
return;
}else{
if (chance <=30) {
pc.sendPackets(new S_ServerMessage(1410, item.getLogName()));
item.setAttrEnchantLevel(AttrScroll);
} else {
pc.sendPackets(new S_ServerMessage(1411, item.getLogName()));
}
pc.getInventory().consumeItem(itemId, 1);
}
}
pc.getInventory().updateItem(item, L1PcInventory.COL_ATTRENCHANTLVL);
pc.getInventory().saveItem(item, L1PcInventory.COL_ATTRENCHANTLVL);
pc.saveInventory();
}
EnchantWeapon.java
} else if (
itemId == L1ItemId.FIRE_ENCHANT_WEAPON_SCROLL
|| itemId == L1ItemId.WATER_ENCHANT_WEAPON_SCROLL
|| itemId == L1ItemId.WIND_ENCHANT_WEAPON_SCROLL
|| itemId == L1ItemId.EARTH_ENCHANT_WEAPON_SCROLL) {
AttrEnchant(pc, l1iteminstance1, itemId);
}
L1ItemInstance.java
public String getNumberedName(int count) {
StringBuilder name = new StringBuilder();
if (isIdentified()) {
if (getItem().getType2() == 1 ) {//무기
switch(getAttrEnchantLevel()){
case 1: name.append("$6115"); break;
case 2: name.append("$6116"); break;
case 3: name.append("$6117"); break;
case 4: name.append("$14361"); break;
case 5: name.append("$14365"); break;
case 6: name.append("$6118"); break;
case 7: name.append("$6119"); break;
case 8: name.append("$6120"); break;
case 9: name.append("$14362"); break;
case 10: name.append("$14366"); break;
case 11: name.append("$6121"); break;
case 12: name.append("$6122"); break;
case 13: name.append("$6123"); break;
case 14: name.append("$14363"); break;
case 15: name.append("$14367"); break;
case 16: name.append("$6124"); break;
case 17: name.append("$6125"); break;
case 18: name.append("$6126"); break;
case 19: name.append("$14364"); break;
case 20: name.append("$14368"); break;
default: break;
}
L1Attack.java
double dmg = weaponTotalDamage + _statusDamage;
dmg+=calcPcPcAttrDmg();
/** 무기 속성 인챈에 따른 효과 부여(본섭화) **/
private double calcPcPcAttrDmg() {
int Attr = _weaponAttrEnchantLevel;
double AttrDmg = 0;
switch (_weaponAttrEnchantLevel) {
case 1: case 2: case 3:case 4: case 5:
AttrDmg += (Attr - 1) * 2+1;
AttrDmg -= AttrDmg * _targetPc.getResistance().getFire() / 100;
break;
case 6: case 7: case 8: case 9: case 10:
AttrDmg += (Attr - 6) * 2+1;
AttrDmg -= AttrDmg * _targetPc.getResistance().getWater() / 100;
break;
case 11: case 12: case 13:case 14: case 15:
AttrDmg += (Attr - 11) * 2+1;
AttrDmg -= AttrDmg * _targetPc.getResistance().getWind() / 100;
break;
case 16: case 17: case 18: case 19: case 20:
AttrDmg += (Attr - 16) * 2+1;
AttrDmg -= AttrDmg * _targetPc.getResistance().getEarth() / 100;
break;
}
return AttrDmg;
}
double dmg = weaponTotalDamage + _statusDamage;
dmg += calcPcNpcAttrDmg(); // 속성 데미지
/**몬스터 속성에 따른 **/
private int calcPcNpcAttrDmg() {
int AttrDmg = 0;
int Attr = _weaponAttrEnchantLevel;
int NpcWeakAttr = _targetNpc.getNpcTemplate().get_weakAttr();
switch (NpcWeakAttr) {
case 1: // 땅 취약 몬스터
if (Attr >= 15 && Attr <= 20) {
AttrDmg +=1+(Attr - 15) * 2;
}
break;
case 2: // 물 취약 몬스터
if (Attr >= 6 && Attr <= 10) {
AttrDmg += 1+(Attr - 6) * 2;
}
break;
case 4: // 불 취약 몬스터
if (Attr >= 1 && Attr <= 5) {
AttrDmg +=(Attr-1)* 2+1;
}
break;
case 8: // 바람 취약 몬스터
if (Attr >= 11 && Attr <= 15) {
AttrDmg +=1+ (Attr - 11) * 2;
}
break;
}
return AttrDmg;
}
출처 : 비공개까페

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