플라이 라이딩
SkillStatEffect.java
isSoaring 검색
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public final boolean isSoaring() {
switch (sourceid) {
//(생략)
return skill;
}
return false;
}
/* 추가 시작 */
public final boolean isFlyRiding() {
switch (sourceid) {
case 80001285: //둥실둥실 풍선 라이딩
//(생략)
return skill;
}
return false;
}
/* 추가 완료 */
|
cs |
SkillStatEffect.java
if (ret.isMonsterRiding()) { 검색
|
1
2
3
4
5
6
7
8
9
|
/* 추가 시작 */
if (ret.isFlyRiding()) {
addBuffStatPairToListIfNotZero(statups, BuffStats.CTS_NewFlying, 1, false);
}
/* 추가 완료 */
if (ret.isMonsterRiding()) {
addBuffStatPairToListIfNotZero(statups, BuffStats.MONSTER_RIDING, 1, false);
}
|
cs |
SkillStatEffect.java
applyBuffEffect 검색
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
private final void applyBuffEffect(final MapleCharacter applyfrom, final MapleCharacter applyto, final boolean primary, final boolean lightCharge) {
//(생략)
default:
/* 추가 시작 */
if (isFlyRiding()) {
int mountid = parseMountInfo(applyfrom, sourceid);
Map<BuffStats, List<StackedSkillEntry>> stacked = applyfrom.getStackSkills();
for (Triple<BuffStats, Integer, Boolean> statup : statups) {
if (statup.getThird()) {
if (!stacked.containsKey(statup.getFirst())) {
stacked.put(statup.getFirst(), new ArrayList<StackedSkillEntry>());
}
stacked.get(statup.getFirst()).add(new StackedSkillEntry(skill ? getSourceId() : -getSourceId(), statup.getSecond(), (System.currentTimeMillis() % 1000000000), localDuration));
}
}
applyfrom.getClient().getSession().write(MainPacketCreator.giveSpecialMount(sourceid, effects.getStats("time"), mountid, statups, stacked));
if (!applyfrom.isHidden()) {
applyfrom.getMap().broadcastMessage(applyfrom, MainPacketCreator.showMonsterRiding(applyfrom.getId(), mountid, sourceid), false);
}
applyfrom.setKeyValue2("mountid", mountid);
applyfrom.setKeyValue2("mountskillid", sourceid);
normal = false;
} else /* 추가 완료 */if (isMonsterRiding()) {
//(생략)
|
cs |
MainPacketCreator.java
giveMount 검색
|
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
|
public static Packet giveMount(int buffid, int skillid) {
//(생략)
return packet.getPacket();
}
/* 추가 시작 */
public static Packet giveSpecialMount(int skillid, int bufflength, int mountid, List<Triple<BuffStats, Integer, Boolean>> statups, Map<BuffStats, List<StackedSkillEntry>> stacks) {
WritingPacket packet = new WritingPacket();
packet.writeShort(SendPacketOpcode.GIVE_BUFF.getValue());
PacketProvider.writeBuffMask(packet, statups);
for (Triple<BuffStats, Integer, Boolean> statup : statups) {
if (!statup.getThird()) {
if (statup.getFirst() != BuffStats.MONSTER_RIDING) {
packet.writeInt(statup.getSecond().intValue());
packet.writeInt(skillid);
packet.writeInt(bufflength);
}
}
}
packet.write0(9);
packet.writeInt(mountid);
packet.writeInt(skillid);
packet.write0(10);
packet.write(1);
packet.write(8);
packet.writeInt(0);
return packet.getPacket();
}
/* 추가 완료 */
|
cs |
PlayerHandler.java
CancelBuffHandler 검색
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public static void CancelBuffHandler(int sourceid, MapleCharacter chr, ReadingMaple rh) {
//(생략)
/* 추가 시작 */
} else if (SkillFactory.getSkill(sourceid).getEffect(chr.getSkillLevel(sourceid)).isFlyRiding()) {
chr.cancelEffectFromBuffStat(BuffStats.CTS_NewFlying, -1);
chr.setKeyValue2("mountid", 0);
chr.setKeyValue2("mountsourceid", 0);
chr.send(MainPacketCreator.cancelMount());
chr.getMap().broadcastMessage(chr, MainPacketCreator.cancelForeignRiding(chr.getId()), false);
/* 추가 완료 */
} else if (SkillFactory.getSkill(sourceid).getEffect(chr.getSkillLevel(sourceid)).isMonsterRiding()) {
//(생략)
|
cs |

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