Area boss G. Centipede + fixed Hak event

Added new script for area boss Giant Centipede. Fixed event Hak not
disposing players properly, which made character clients stuck until
logout.
This commit is contained in:
ronancpl
2017-04-18 23:46:59 -03:00
parent c17e4c93a3
commit 72ef73a949
11 changed files with 138 additions and 35 deletions

View File

@@ -5,12 +5,13 @@ var rideTo = new Array(250000100, 200000141);
var birdRide = new Array(200090300, 200090310);
var myRide;
var returnMap;
var exitMap;
var map;
var docked;
var timeOnRide = 60; //Seconds
var onRide;
function init() {
}
function setup() {
@@ -24,27 +25,35 @@ function playerEntry(eim, player) {
} else {
myRide = 1;
}
docked = 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);
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() {
onRide.warpEveryone(docked.getId());
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) {
return 0;
playerExit(eim, player, false);
}
function cancelSchedule() {}
function dispose() {
em.cancelSchedule();
}
function dispose(eim) {}