More PQ-esque script modules + HP Bar on some bosses

Completed (hopefully, now!) implementation of automated modules for PQ
scripting. Added HP bar for some bosses that wouldn't display it before
(like King Slime, Alishar and CRog).
This commit is contained in:
ronancpl
2017-05-09 20:02:10 -03:00
parent da00345aec
commit 73557f0d61
59 changed files with 943 additions and 608 deletions

View File

@@ -76,6 +76,7 @@ import server.life.SpawnPoint;
import server.partyquest.MonsterCarnival;
import server.partyquest.MonsterCarnivalParty;
import server.partyquest.Pyramid;
import scripting.event.EventInstanceManager;
import tools.FilePrinter;
import tools.MaplePacketCreator;
import tools.Pair;
@@ -100,6 +101,7 @@ public class MapleMap {
private boolean clock;
private boolean boat;
private boolean docked = false;
private EventInstanceManager event = null;
private String mapName;
private String streetName;
private MapleMapEffect mapEffect = null;
@@ -153,6 +155,14 @@ public class MapleMap {
objectWLock = objectLock.writeLock();
}
public void setEventInstance(EventInstanceManager eim) {
event = eim;
}
public EventInstanceManager getEventInstance() {
return event;
}
public void broadcastMessage(MapleCharacter source, final byte[] packet) {
chrRLock.lock();
try {
@@ -1114,12 +1124,7 @@ public class MapleMap {
monster.changeDifficulty(difficulty, isPq);
monster.setMap(this);
if (!monster.getMap().getAllPlayer().isEmpty()) {
MapleCharacter chr = (MapleCharacter) getAllPlayer().get(0);
if (monster.getEventInstance() == null && chr.getEventInstance() != null) {
chr.getEventInstance().registerMonster(monster);
}
}
if(getEventInstance() != null) getEventInstance().registerMonster(monster);
spawnAndAddRangedMapObject(monster, new DelayedPacketCreation() {
@Override
@@ -1701,6 +1706,10 @@ public class MapleMap {
}
}
}
public void broadcastStringMessage(int type, String message) {
broadcastMessage(MaplePacketCreator.serverNotice(type, message));
}
public void broadcastMessage(final byte[] packet) {
broadcastMessage(null, packet, Double.POSITIVE_INFINITY, null);