아수라겉댐 해결법 솟
출처 : 요크님 감사합니다
1
2
3
4
src - handler - MapleServerHandler.java
case ASURA_DMG:
PlayerHandler.AsuraAttack(rh, c.getPlayer());
break;
Colored by Color Scripter
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
src - handler - channel - PlayerHandler.java
public static void AsuraAttack(ReadingMaple rh, final MapleCharacter chr) throws InterruptedException {
if (chr == null) {
return;
}
AttackInfo attack = DamageParse.parseDmgAsura(rh);
SkillStatEffect effect = null;
ISkill skill = null;
skill = SkillFactory.getSkill(attack.skill);
effect = attack.getAttackEffect(chr, 0, skill);
DamageParse.applyAttack(attack, skill, chr, 1, effect, AttackType.NON_RANGED);
}
Colored by Color Scripter
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
src - handler - channel - DamageParse.java
public static AttackInfo parseDmgAsura(ReadingMaple rh) {
AttackInfo ret = new AttackInfo();
rh.skip(1);
ret.tbyte = rh.readByte();
ret.targets = (byte) ((ret.tbyte >>> 4) & 0xF);
ret.hits = (byte) (ret.tbyte & 0xF);
ret.skill = rh.readInt();
rh.skip(7);
ret.display = rh.readByte();
ret.animation = rh.readByte();
rh.skip(5);
ret.speed = rh.readByte();
ret.lastAttackTickCount = 0;
rh.skip(8);
ret.allDamage = new ArrayList<AttackPair>();
int oid = 0, damage = 0;
List<Pair<Integer, Boolean>> allDamageNumbers;
for (int i = 0; i < ret.targets; i++) {
oid = rh.readInt();
rh.skip(20); //added MonsterID
allDamageNumbers = new ArrayList<Pair<Integer, Boolean>>();
for (int j = 0; j < ret.hits; j++) {
damage = rh.readInt();
allDamageNumbers.add(new Pair<Integer, Boolean>(Integer.valueOf(damage), false));
}
rh.skip(8);
ret.allDamage.add(new AttackPair(Integer.valueOf(oid), allDamageNumbers));
}
ret.position = rh.readPos();
return ret;
}
Colored by Color Scripter
cs
1
2
src - packet - opcode - RecvPacketOpcode.java
ASURA_DMG,
Colored by Color Scripter
cs
opcodes.ini
ASURA_DMG=83
[출처] [0xD6] 아수라 해결법 배포 (@USFM - 메이플스토리 공식 카페) |작성자 alchemy

박인성 님의 최근 댓글