What i did was
Change :
Code:
case PASSIVE_ENERGY:
PlayerHandler.closeRangeAttack(slea, c, c.getPlayer(), true);
break;
to
Code:
case PASSIVE_ENERGY:
PlayerHandler.MagicDamage(slea, c, c.getPlayer());
break;
AFter that It worked flawlessly . - Out of every skill i tried, Passive_energy wasnt being logged.
Before the Change, if i did Magic_attack + 1 - they worked, but other magic skills didnt.
Doing this i could change Passive_energy to 82 , and leave Magic Attack at 80/81(cant rmbr)
My Reasoning Behind this, was when i did Magic_Attack + 1 , Teleport Mastery Logged as Magic Damage, So i thought to change whatever handled it to magic damage as well.
As for PoweGuard I was fiddling around, and just changed it to Body_pressure:
Code:
case 1101007: // pguard
case 1201007:
ret.statups.put(MapleBuffStat.BODY_PRESSURE, ret.info.get(MapleStatInfo.x));
break;
- lazy fix imo, ill actually fix this at some point.
You Said to Add in the Skill Id's after the switch in ParseDmgM ? I have done that, i tried 3 different spots, and coudnt get it right.
ParseDMGM:
Code:
public static final AttackInfo parseDmgM(LittleEndianAccessor lea, MapleCharacter chr)
/* */ {
/* 1066 */ AttackInfo ret = new AttackInfo();
/* 1067 */ lea.skip(1);
/* 1068 */ ret.tbyte = lea.readByte();
/* */
/* 1070 */ ret.targets = (byte)(ret.tbyte >>> 4 & 0xF);
/* 1071 */ ret.hits = (byte)(ret.tbyte & 0xF);
/* 1072 */ ret.skill = lea.readInt();
/* 1073 */ if (ret.skill >= 91000000) {
/* 1074 */ return null;
/* */ }
/* 1076 */ lea.skip(9);
switch (ret.skill) {
case 24121000:// mille
// case 24121005://tempest
//case 5101004: // Corkscrew
//case 15101003: // Cygnus corkscrew
case 5201002: // Gernard
case 14111006: // Poison bomb
case 4341002:
case 4341003:
case 5301001:
case 5300007:
case 31001000: // grim scythe
case 31101000: // soul eater
case 31111005: // carrion breath
ret.charge = lea.readInt();
break;
default:
ret.charge = 0;
break;
}
/* */
/* 1096 */ ret.unk = lea.readByte();
/* 1097 */ ret.display = lea.readUShort();
/* 1098 */ lea.skip(4);
/* 1099 */ lea.skip(1);
/* 1100 */ if ((ret.skill == 5300007) || (ret.skill == 5101012) || (ret.skill == 5081001) || (ret.skill == 15101010)) {
/* 1101 */ lea.readInt();
/* */ }
if(ret.skill == 24121005){
lea.readInt();
}
/* 1103 */ ret.speed = lea.readByte();
/* 1104 */ ret.lastAttackTickCount = lea.readInt();
if ((ret.skill == 12111007) ||(ret.skill == 22161005) ||(ret.skill == 32111010) ||(ret.skill == 2111007) || (ret.skill == 2211007) || (ret.skill == 2311007))
lea.skip(4);
else
/* 1105 */ lea.skip(8);
/* */
/* 1107 */ ret.allDamage = new ArrayList();
/* */
/* 1109 */ if (ret.skill == 4211006) {
/* 1110 */ return parseMesoExplosion(lea, ret, chr);
/* */ }
/* */
/* 1114 */ /*if (ret.skill == 24121000) {
/* 1115 */ // lea.readInt();
/* */ // }
/* 1117 */ for (int i = 0; i < ret.targets; i++) {
/* 1118 */ int oid = lea.readInt();
/* */
/* 1125 */ lea.skip(18);
/* */
/* 1127 */ List allDamageNumbers = new ArrayList();
/* */
/* 1129 */ for (int j = 0; j < ret.hits; j++) {
/* 1130 */ int damage = lea.readInt();
/* */
/* 1132 */ allDamageNumbers.add(new Pair(Integer.valueOf(damage), Boolean.valueOf(false)));
/* */ }
/* 1134 */ lea.skip(4);
/* 1135 */ ret.allDamage.add(new AttackPair(Integer.valueOf(oid).intValue(), allDamageNumbers));
/* */ }
/* 1137 */ ret.position = lea.readPos();
/* 1138 */ return ret;
/* */ }