Rearranged travel packets
An approach on infinite loopings on "Before Takeoff" maps.
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/npc/world0/9201134.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/npc/world0/2030010.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/npc/world0/2091005.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/scripting/event/EventManager.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/npc/world0/2012001.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/net/SendOpcode.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/server/life/SpawnPoint.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/npc/world0/2012002.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/server/maps/MapleMapFactory.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/server/life/MapleMonster.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/tools/MaplePacketCreator.java</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/scripts/event/Boats.js</file>
|
||||
<file>file:/C:/Nexon/MapleSolaxia/src/server/maps/MapleMap.java</file>
|
||||
</group>
|
||||
|
||||
@@ -22,6 +22,8 @@ function init() {
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
em.setProperty("docked", "true");
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime);
|
||||
em.schedule("takeoff", beginTime);
|
||||
}
|
||||
@@ -31,16 +33,17 @@ function stopEntry() {
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
em.setProperty("entry", "true");
|
||||
KC_bfd.warpEveryone(Plane_to_CBD.getId());
|
||||
CBD_bfd.warpEveryone(Plane_to_KC.getId());
|
||||
em.schedule("arrived", rideTime);
|
||||
scheduleNew();
|
||||
em.setProperty("docked","false");
|
||||
KC_bfd.warpEveryone(Plane_to_CBD.getId());
|
||||
CBD_bfd.warpEveryone(Plane_to_KC.getId());
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Plane_to_CBD.warpEveryone(CBD_docked.getId());
|
||||
Plane_to_KC.warpEveryone(KC_docked.getId());
|
||||
Plane_to_CBD.warpEveryone(CBD_docked.getId());
|
||||
Plane_to_KC.warpEveryone(KC_docked.getId());
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
|
||||
@@ -25,21 +25,22 @@ function init() {
|
||||
Ellinia_docked = em.getChannelServer().getMapFactory().getMap(101000300);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000111);
|
||||
OBoatsetup();
|
||||
EBoatsetup();
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
em.setProperty("docked", "true");
|
||||
Ellinia_docked.setDocked(true);
|
||||
Orbis_docked.setDocked(true);
|
||||
Ellinia_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
em.setProperty("docked", "true");
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.setProperty("haveBalrog","false");
|
||||
em.setProperty("haveBalrog", "false");
|
||||
em.schedule("stopentry", closeTime);
|
||||
em.schedule("takeoff", beginTime);
|
||||
|
||||
Boat_to_Orbis.killAllMonsters();
|
||||
Boat_to_Ellinia.killAllMonsters();
|
||||
}
|
||||
|
||||
function stopentry() {
|
||||
@@ -48,56 +49,50 @@ function stopentry() {
|
||||
Ellinia_Boat_Cabin.resetReactors();
|
||||
}
|
||||
|
||||
|
||||
|
||||
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");
|
||||
Orbis_btf.warpEveryone(Boat_to_Ellinia.getId());
|
||||
Ellinia_btf.warpEveryone(Boat_to_Orbis.getId());
|
||||
Ellinia_docked.setDocked(false);
|
||||
Orbis_docked.setDocked(false);
|
||||
Ellinia_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
|
||||
em.schedule("invasion", 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());
|
||||
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.killAllMonsters();
|
||||
Boat_to_Ellinia.killAllMonsters();
|
||||
em.setProperty("haveBalrog", "false");
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function invasion() {
|
||||
var numspawn = 2;
|
||||
if(numspawn > 0) {
|
||||
for(var i=0; i < numspawn; i++) {
|
||||
Boat_to_Orbis.spawnMonsterOnGroudBelow(MapleLifeFactory.getMonster(8150000), new java.awt.Point(485, -221));
|
||||
Boat_to_Ellinia.spawnMonsterOnGroudBelow(MapleLifeFactory.getMonster(8150000), new java.awt.Point(-590, -221));
|
||||
}
|
||||
Boat_to_Orbis.setDocked(true);
|
||||
Boat_to_Ellinia.setDocked(true);
|
||||
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||
if (Math.floor(Math.random() * 10) < 10) {
|
||||
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);
|
||||
|
||||
em.setProperty("haveBalrog","true");
|
||||
Boat_to_Ellinia.broadcastShip(true);
|
||||
Boat_to_Orbis.broadcastShip(true);
|
||||
}
|
||||
}
|
||||
|
||||
function OBoatsetup() {
|
||||
em.getChannelServer().getMapFactory().getMap(200090011).getPortal("out00").setScriptName("OBoat1");
|
||||
em.getChannelServer().getMapFactory().getMap(200090011).getPortal("out01").setScriptName("OBoat2");
|
||||
}
|
||||
|
||||
function EBoatsetup() {
|
||||
em.getChannelServer().getMapFactory().getMap(200090001).getPortal("out00").setScriptName("EBoat1");
|
||||
em.getChannelServer().getMapFactory().getMap(200090001).getPortal("out01").setScriptName("EBoat2");
|
||||
}
|
||||
|
||||
function cancelSchedule() {
|
||||
}
|
||||
@@ -26,7 +26,7 @@
|
||||
-- By ---------------------------------------------------------------------------------------------
|
||||
Information
|
||||
-- Version Info -----------------------------------------------------------------------------------
|
||||
1.5 - Fix for infinity looping [Information]
|
||||
1.5 - Fix for infinity looping [Information]
|
||||
1.4 - Ship/boat is now showed
|
||||
- Removed temp message[Information]
|
||||
- Credit to Snow/superraz777 for old source
|
||||
@@ -61,18 +61,18 @@ function init() {
|
||||
Leafre_docked = em.getChannelServer().getMapFactory().getMap(240000110);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
Leafre_Station = em.getChannelServer().getMapFactory().getMap(240000100);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
Leafre_docked.setDocked(true);
|
||||
Orbis_docked.setDocked(true);
|
||||
Leafre_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
em.setProperty("docked", "true");
|
||||
Orbis_docked.setDocked(true);
|
||||
Leafre_docked.setDocked(true);
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime);
|
||||
em.schedule("takeoff", beginTime);
|
||||
em.schedule("stopEntry", closeTime); //The time to close the gate
|
||||
em.schedule("takeoff", beginTime); //The time to begin the ride
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
@@ -80,19 +80,26 @@ function stopEntry() {
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
Leafre_docked.setDocked(false);
|
||||
Orbis_docked.setDocked(false);
|
||||
Leafre_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
em.setProperty("docked","false");
|
||||
Orbis_btf.warpEveryone(Cabin_to_Leafre.getId());
|
||||
Leafre_btf.warpEveryone(Cabin_to_Orbis.getId());
|
||||
em.schedule("arrived", rideTime);
|
||||
|
||||
Orbis_docked.broadcastShip(false);
|
||||
Leafre_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
Orbis_docked.setDocked(false);
|
||||
Leafre_docked.setDocked(false);
|
||||
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Cabin_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Cabin_to_Leafre.warpEveryone(Leafre_Station.getId());
|
||||
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Leafre_docked.broadcastShip(true);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -40,18 +40,18 @@ function init() {
|
||||
Orbis_docked = em.getChannelServer().getMapFactory().getMap(200000151);
|
||||
Ariant_docked = em.getChannelServer().getMapFactory().getMap(260000100);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
Ariant_docked.setDocked(true);
|
||||
Orbis_docked.setDocked(true);
|
||||
Ariant_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
em.setProperty("docked", "true");
|
||||
Orbis_docked.setDocked(true);
|
||||
Ariant_docked.setDocked(true);
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime);
|
||||
em.schedule("takeoff", beginTime);
|
||||
em.schedule("stopEntry", closeTime); //The time to close the gate
|
||||
em.schedule("takeoff", beginTime); //The time to begin the ride
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
@@ -59,19 +59,24 @@ function stopEntry() {
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
em.setProperty("docked","false");
|
||||
Orbis_btf.warpEveryone(Genie_to_Ariant.getId());
|
||||
Ariant_btf.warpEveryone(Genie_to_Orbis.getId());
|
||||
Ariant_docked.setDocked(false);
|
||||
Orbis_docked.broadcastShip(false);
|
||||
Ariant_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
Orbis_docked.setDocked(false);
|
||||
Ariant_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
em.schedule("arrived", rideTime);
|
||||
Ariant_docked.setDocked(false);
|
||||
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Genie_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Genie_to_Ariant.warpEveryone(Ariant_docked.getId());
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ariant_docked.broadcastShip(true);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
importPackage(Packages.tools);
|
||||
|
||||
var returnTo = new Array(200000141, 250000100);
|
||||
var rideTo = new Array(250000100, 200000141);
|
||||
var birdRide = new Array(200090300, 200090310);
|
||||
@@ -7,44 +5,28 @@ var myRide;
|
||||
var returnMap;
|
||||
var map;
|
||||
var docked;
|
||||
|
||||
var timeOnRide = 60; //Seconds
|
||||
var onRide;
|
||||
|
||||
function init() {
|
||||
}
|
||||
|
||||
function setup() {
|
||||
var eim = em.newInstance("Hak_" + + em.getProperty("player"));
|
||||
return eim;
|
||||
em.setProperty("isRiding","false");
|
||||
}
|
||||
|
||||
function playerEntry(eim, player) {
|
||||
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]);
|
||||
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);
|
||||
player.changeMap(onRide, onRide.getPortal(0));
|
||||
player.getClient().getSession().write(MaplePacketCreator.getClock(timeOnRide));
|
||||
eim.schedule("timeOut", timeOnRide * 1000);
|
||||
player.getClient().getSession().write(tools.MaplePacketCreator.getClock(timeOnRide));
|
||||
}
|
||||
|
||||
function timeOut() {
|
||||
onRide.warpEveryone(docked.getId());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function playerDisconnected(eim, player) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
function dispose() {
|
||||
em.cancelSchedule();
|
||||
function cancelSchedule() {
|
||||
}
|
||||
@@ -23,18 +23,18 @@ function init() {
|
||||
Ludibrium_docked = em.getChannelServer().getMapFactory().getMap(220000110);
|
||||
Orbis_Station = em.getChannelServer().getMapFactory().getMap(200000100);
|
||||
Ludibrium_Station = em.getChannelServer().getMapFactory().getMap(220000100);
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
function scheduleNew() {
|
||||
Ludibrium_docked.setDocked(true);
|
||||
Orbis_docked.setDocked(true);
|
||||
Ludibrium_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(true));
|
||||
em.setProperty("docked", "true");
|
||||
Orbis_docked.setDocked(true);
|
||||
Ludibrium_docked.setDocked(true);
|
||||
|
||||
em.setProperty("entry", "true");
|
||||
em.schedule("stopEntry", closeTime);
|
||||
em.schedule("takeoff", beginTime);
|
||||
em.schedule("stopEntry", closeTime); //The time to close the gate
|
||||
em.schedule("takeoff", beginTime); //The time to begin the ride
|
||||
}
|
||||
|
||||
function stopEntry() {
|
||||
@@ -42,19 +42,23 @@ function stopEntry() {
|
||||
}
|
||||
|
||||
function takeoff() {
|
||||
Ludibrium_docked.setDocked(false);
|
||||
Orbis_docked.setDocked(false);
|
||||
Ludibrium_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
Orbis_docked.broadcastMessage(MaplePacketCreator.boatPacket(false));
|
||||
em.setProperty("docked","false");
|
||||
Orbis_btf.warpEveryone(Train_to_Ludibrium.getId());
|
||||
Ludibrium_btf.warpEveryone(Train_to_Orbis.getId());
|
||||
em.schedule("arrived", rideTime);
|
||||
Orbis_docked.broadcastShip(false);
|
||||
Ludibrium_docked.broadcastShip(false);
|
||||
|
||||
em.setProperty("docked","false");
|
||||
Orbis_docked.setDocked(false);
|
||||
Ludibrium_docked.setDocked(false);
|
||||
|
||||
em.schedule("arrived", rideTime); //The time that require move to destination
|
||||
}
|
||||
|
||||
function arrived() {
|
||||
Train_to_Orbis.warpEveryone(Orbis_Station.getId());
|
||||
Train_to_Ludibrium.warpEveryone(Ludibrium_Station.getId());
|
||||
Orbis_docked.broadcastShip(true);
|
||||
Ludibrium_docked.broadcastShip(true);
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,9 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
function init() {
|
||||
em.getChannelServer().getMapFactory().getMap(222020100).resetReactors();
|
||||
em.getChannelServer().getMapFactory().getMap(222020200).resetReactors();
|
||||
|
||||
scheduleNew();
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ public class MapleMap {
|
||||
private byte monsterRate;
|
||||
private boolean clock;
|
||||
private boolean boat;
|
||||
private boolean docked;
|
||||
private boolean docked = false;
|
||||
private String mapName;
|
||||
private String streetName;
|
||||
private MapleMapEffect mapEffect = null;
|
||||
@@ -1278,7 +1278,7 @@ public class MapleMap {
|
||||
public void startMapEffect(String msg, int itemId) {
|
||||
startMapEffect(msg, itemId, 30000);
|
||||
}
|
||||
|
||||
|
||||
public void startMapEffect(String msg, int itemId, long time) {
|
||||
if (mapEffect != null) {
|
||||
return;
|
||||
@@ -1504,10 +1504,9 @@ public class MapleMap {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
chr.getClient().announce((MaplePacketCreator.getClockTime(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND))));
|
||||
}
|
||||
if (hasBoat() == 2) {
|
||||
chr.getClient().announce((MaplePacketCreator.boatPacket(true)));
|
||||
} else if (hasBoat() == 1 && (chr.getMapId() != 200090000 || chr.getMapId() != 200090010)) {
|
||||
chr.getClient().announce(MaplePacketCreator.boatPacket(false));
|
||||
if (hasBoat() > 0) {
|
||||
if(hasBoat() == 1) chr.getClient().announce((MaplePacketCreator.boatPacket(true)));
|
||||
else chr.getClient().announce(MaplePacketCreator.boatPacket(false));
|
||||
}
|
||||
chr.receivePartyMemberHP();
|
||||
}
|
||||
@@ -2120,7 +2119,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
private int hasBoat() {
|
||||
return docked ? 2 : (boat ? 1 : 0);
|
||||
return !boat ? 0 : (docked ? 1 : 2);
|
||||
}
|
||||
|
||||
public void setBoat(boolean hasBoat) {
|
||||
@@ -2434,4 +2433,8 @@ public class MapleMap {
|
||||
restoreMapSpawnPoints();
|
||||
instanceMapFirstSpawn();
|
||||
}
|
||||
|
||||
public void broadcastShip(final boolean state) {
|
||||
broadcastMessage(MaplePacketCreator.boatPacket(state));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4440,6 +4440,7 @@ public class MaplePacketCreator {
|
||||
return mplew.getPacket();
|
||||
}
|
||||
|
||||
|
||||
public static byte[] boatPacket(boolean type) {//don't think this is correct..
|
||||
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
|
||||
mplew.writeShort(SendOpcode.CONTI_STATE.getValue());
|
||||
|
||||
Reference in New Issue
Block a user