Concurrency fix + new scripts
Fixed some situation involving concurrency upon using getCharacters() from MapleMap, added scripts and other bug fixes.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
importPackage(Packages.tools);
|
||||
|
||||
var returnTo = new Array(200000141, 250000100);
|
||||
var rideTo = new Array(250000100, 200000141);
|
||||
var birdRide = new Array(200090300, 200090310);
|
||||
@@ -5,28 +7,44 @@ var myRide;
|
||||
var returnMap;
|
||||
var map;
|
||||
var docked;
|
||||
|
||||
var timeOnRide = 60; //Seconds
|
||||
var onRide;
|
||||
|
||||
function init() {
|
||||
em.setProperty("isRiding","false");
|
||||
}
|
||||
|
||||
function setup() {
|
||||
var eim = em.newInstance("Hak_" + + em.getProperty("player"));
|
||||
return eim;
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
myRide = em.getProperty("myRide");
|
||||
docked = em.getChannelServer().getMapFactory().getMap(rideTo[myRide]);
|
||||
returnMap = em.getChannelServer().getMapFactory().getMap(returnTo[myRide]);
|
||||
onRide = em.getChannelServer().getMapFactory().getMap(birdRide[myRide]);
|
||||
|
||||
em.setProperty("isRiding","true");
|
||||
em.schedule("timeOut", timeOnRide * 1000);
|
||||
if (player.getMapId() == returnTo[0]) {
|
||||
myRide = 0;
|
||||
} 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(tools.MaplePacketCreator.getClock(timeOnRide));
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide));
|
||||
eim.schedule("timeOut", timeOnRide * 1000);
|
||||
}
|
||||
|
||||
function timeOut() {
|
||||
onRide.warpEveryone(docked.getId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose() {
|
||||
em.cancelSchedule();
|
||||
}
|
||||
Reference in New Issue
Block a user