Rebalanced the way equipment exp is gained (about 100~200 same-level range mobs to pass equip level 1 to 2). Fixed reactors dropping quest items to player if they don't have the quest started. Fixed broken Temple of Time quests.
103 lines
3.6 KiB
JavaScript
103 lines
3.6 KiB
JavaScript
importPackage(Packages.client);
|
|
importPackage(Packages.tools);
|
|
importPackage(Packages.server.life);
|
|
|
|
//Time Setting is in millisecond
|
|
var closeTime = 50 * 1000; //The time to close the gate
|
|
var beginTime = 60 * 1000; //The time to begin the ride
|
|
var rideTime = 120 * 1000; //The time that require move to destination
|
|
var invasionTime = 30 * 1000; //The time to balrog ship approach
|
|
var invasionDelay = 5 * 1000; //The time that spawn balrog
|
|
var Orbis_btf;
|
|
var Boat_to_Orbis;
|
|
var Orbis_Boat_Cabin;
|
|
var Orbis_docked;
|
|
var Ellinia_btf;
|
|
var Ellinia_Boat_Cabin;
|
|
var Ellinia_docked;
|
|
|
|
function init() {
|
|
Orbis_btf = em.getChannelServer().getMapFactory().getMap(200000112);
|
|
Ellinia_btf = em.getChannelServer().getMapFactory().getMap(101000301);
|
|
Boat_to_Orbis = em.getChannelServer().getMapFactory().getMap(200090010);
|
|
Boat_to_Ellinia = em.getChannelServer().getMapFactory().getMap(200090000);
|
|
Orbis_Boat_Cabin = em.getChannelServer().getMapFactory().getMap(200090011);
|
|
Ellinia_Boat_Cabin = em.getChannelServer().getMapFactory().getMap(200090001);
|
|
Ellinia_docked = em.getChannelServer().getMapFactory().getMap(101000300);
|
|
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
|
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000111);
|
|
|
|
Ellinia_docked.setDocked(true);
|
|
Orbis_docked.setDocked(true);
|
|
|
|
scheduleNew();
|
|
}
|
|
|
|
function scheduleNew() {
|
|
em.setProperty("docked", "true");
|
|
|
|
em.setProperty("entry", "true");
|
|
em.setProperty("haveBalrog", "false");
|
|
em.schedule("stopentry", closeTime);
|
|
em.schedule("takeoff", beginTime);
|
|
}
|
|
|
|
function stopentry() {
|
|
em.setProperty("entry","false");
|
|
Orbis_Boat_Cabin.clearMapObjects(); //boxes
|
|
Ellinia_Boat_Cabin.clearMapObjects();
|
|
}
|
|
|
|
function takeoff() {
|
|
Orbis_btf.warpEveryone(Boat_to_Ellinia.getId());
|
|
Ellinia_btf.warpEveryone(Boat_to_Orbis.getId());
|
|
Ellinia_docked.broadcastShip(false);
|
|
Orbis_docked.broadcastShip(false);
|
|
|
|
em.setProperty("docked","false");
|
|
|
|
em.schedule("approach", invasionTime);
|
|
em.schedule("arrived", rideTime);
|
|
}
|
|
|
|
function arrived() {
|
|
Boat_to_Orbis.warpEveryone(Orbis_Station.getId());
|
|
Orbis_Boat_Cabin.warpEveryone(Orbis_Station.getId());
|
|
Boat_to_Ellinia.warpEveryone(Ellinia_docked.getId());
|
|
Ellinia_Boat_Cabin.warpEveryone(Ellinia_docked.getId());
|
|
Orbis_docked.broadcastShip(true);
|
|
Ellinia_docked.broadcastShip(true);
|
|
Boat_to_Orbis.broadcastEnemyShip(false);
|
|
Boat_to_Ellinia.broadcastEnemyShip(false);
|
|
Boat_to_Orbis.killAllMonsters();
|
|
Boat_to_Ellinia.killAllMonsters();
|
|
em.setProperty("haveBalrog", "false");
|
|
scheduleNew();
|
|
}
|
|
|
|
function approach() {
|
|
if (Math.floor(Math.random() * 10) < 10) {
|
|
em.setProperty("haveBalrog","true");
|
|
Boat_to_Orbis.broadcastEnemyShip(true);
|
|
Boat_to_Ellinia.broadcastEnemyShip(true);
|
|
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
|
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
|
|
|
em.schedule("invasion", invasionDelay);
|
|
}
|
|
}
|
|
|
|
function invasion() {
|
|
var map1 = Boat_to_Ellinia;
|
|
var pos1 = new java.awt.Point(-538, 143);
|
|
map1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos1);
|
|
map1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos1);
|
|
|
|
var map2 = Boat_to_Orbis;
|
|
var pos2 = new java.awt.Point(339, 148);
|
|
map2.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos2);
|
|
map2.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos2);
|
|
}
|
|
|
|
function cancelSchedule() {
|
|
} |