Added new script for area boss Giant Centipede. Fixed event Hak not disposing players properly, which made character clients stuck until logout.
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
importPackage(Packages.tools);
|
|
|
|
var returnTo = new Array(200000141, 250000100);
|
|
var rideTo = new Array(250000100, 200000141);
|
|
var birdRide = new Array(200090300, 200090310);
|
|
var myRide;
|
|
var returnMap;
|
|
var exitMap;
|
|
var map;
|
|
var timeOnRide = 60; //Seconds
|
|
var onRide;
|
|
|
|
function init() {
|
|
|
|
}
|
|
|
|
function setup() {
|
|
var eim = em.newInstance("Hak_" + + em.getProperty("player"));
|
|
return eim;
|
|
}
|
|
|
|
function playerEntry(eim, player) {
|
|
if (player.getMapId() == returnTo[0]) {
|
|
myRide = 0;
|
|
} else {
|
|
myRide = 1;
|
|
}
|
|
exitMap = eim.getEm().getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
|
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
|
onRide = eim.getMapFactory().getMap(birdRide[myRide]);
|
|
player.changeMap(onRide, onRide.getPortal(0));
|
|
player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide));
|
|
eim.schedule("timeOut", timeOnRide * 1000);
|
|
}
|
|
|
|
function timeOut(eim) {
|
|
end(eim);
|
|
}
|
|
|
|
function playerExit(eim, player, success) {
|
|
eim.unregisterPlayer(player);
|
|
player.changeMap(success ? exitMap.getId() : returnMap.getId(), 0);
|
|
}
|
|
|
|
function end(eim) {
|
|
var party = eim.getPlayers();
|
|
for (var i = 0; i < party.size(); i++) {
|
|
playerExit(eim, party.get(i), true);
|
|
}
|
|
eim.dispose();
|
|
}
|
|
|
|
function playerDisconnected(eim, player) {
|
|
playerExit(eim, player, false);
|
|
}
|
|
|
|
function cancelSchedule() {}
|
|
|
|
function dispose(eim) {} |