SHOW:
|
|
- or go back to the newest paste.
1 | ### Eclipse Workspace Patch 1.0 | |
2 | #P aCis_datapack | |
3 | Index: data/xml/zones/RaidLimitZone.xml | |
4 | =================================================================== | |
5 | --- data/xml/zones/RaidLimitZone.xml (revision 0) | |
6 | +++ data/xml/zones/RaidLimitZone.xml (revision 0) | |
7 | @@ -0,0 +1,8 @@ | |
8 | +<?xml version="1.0" encoding="UTF-8"?> | |
9 | +<list> | |
10 | + <zone shape="Cuboid" minZ="-3000" maxZ="-2500"> <!-- Barakel Example --> | |
11 | + <stat name="bossId" val="25325" /> | |
12 | + <node X="90792" Y="-85439" /> | |
13 | + <node X="91291" Y="-86537" /> | |
14 | + </zone> | |
15 | +</list> | |
16 | \ No newline at end of file | |
17 | #P aCis_gameserver | |
18 | Index: java/net/sf/l2j/gameserver/model/zone/ZoneId.java | |
19 | =================================================================== | |
20 | --- java/net/sf/l2j/gameserver/model/zone/ZoneId.java (revision 5) | |
21 | +++ java/net/sf/l2j/gameserver/model/zone/ZoneId.java (working copy) | |
22 | @@ -21,7 +21,8 @@ | |
23 | CAST_ON_ARTIFACT(16), | |
24 | NO_RESTART(17), | |
25 | SCRIPT(18), | |
26 | - BOSS(19); | |
27 | + BOSS(19), | |
28 | + RAID_LIMIT(20); | |
29 | ||
30 | private final int _id; | |
31 | ||
32 | Index: java/net/sf/l2j/gameserver/model/zone/type/RaidLimitZone.java | |
33 | =================================================================== | |
34 | --- java/net/sf/l2j/gameserver/model/zone/type/RaidLimitZone.java (revision 0) | |
35 | +++ java/net/sf/l2j/gameserver/model/zone/type/RaidLimitZone.java (revision 0) | |
36 | @@ -0,0 +1,46 @@ | |
37 | +package net.sf.l2j.gameserver.model.zone.type; | |
38 | + | |
39 | +import net.sf.l2j.gameserver.model.actor.Creature; | |
40 | +import net.sf.l2j.gameserver.model.actor.ai.CtrlIntention; | |
41 | +import net.sf.l2j.gameserver.model.actor.instance.RaidBoss; | |
42 | +import net.sf.l2j.gameserver.model.zone.SpawnZoneType; | |
43 | +import net.sf.l2j.gameserver.model.zone.ZoneId; | |
44 | + | |
45 | +public class RaidLimitZone extends SpawnZoneType | |
46 | +{ | |
47 | + private int _bossId; | |
48 | + | |
49 | + public RaidLimitZone(int id) | |
50 | + { | |
51 | + super(id); | |
52 | + } | |
53 | + | |
54 | + @Override | |
55 | + public void setParameter(String name, String value) | |
56 | + { | |
57 | + if (name.equals("bossId")) | |
58 | + _bossId = Integer.parseInt(value); | |
59 | + } | |
60 | + | |
61 | + @Override | |
62 | + protected void onEnter(Creature character) | |
63 | + { | |
64 | + character.setInsideZone(ZoneId.RAID_LIMIT, true); | |
65 | + } | |
66 | + | |
67 | + @Override | |
68 | + protected void onExit(Creature character) | |
69 | + { | |
70 | + character.setInsideZone(ZoneId.RAID_LIMIT, false); | |
71 | + if (character instanceof RaidBoss) | |
72 | + { | |
73 | + final RaidBoss raidboss = ((RaidBoss) character); | |
74 | + if (raidboss.getNpcId() == _bossId) | |
75 | + { | |
76 | + raidboss.teleportTo(raidboss.getSpawn().getLoc(), 0); | |
77 | + raidboss.setTarget(null); | |
78 | + raidboss.getAI().setIntention(CtrlIntention.IDLE); | |
79 | + } | |
80 | + } | |
81 | + } | |
82 | +} | |
83 | \ No newline at end of file |