Knights' Seal & I. MaxHP + Adherent mob status + Script point-warps

Fixed Seal skill not working for Blaze Wizard.
Added a check against Seal skill on bosses.
Reviewed improper usage of "random spawn point arrival" at several warps on scripts.
Refactored CPQ modules fetching players from the channel storage, this should be unneeded after a recent update on the player object from MPC.
Added door objects as a visible map object for the player server-side view component.
Fixed a few scenarios where mobs would unexpectedly show up impervious to mob status.
Fixed scenario where a player wouldn't receive disease informations from other players after changing maps.
Fixed some magic-type skills (such as Magic Claw or Freeze) not displaying damage value for other players when the player is within melee-range from the mob.
Added check for whether a given quest is scripted before trying to find the script.
Fixed registering items onto MTS leading to loss of a few of its properties (expiration, item level, etc).
Fixed "Improved MaxHP" skill gains not working for Thunderbreakers.
Refactored pet autopot to also apply on HP/MP consumption by items/skills.
Added portal sound effect on Mystic Doors.
This commit is contained in:
ronancpl
2019-09-13 03:04:44 -03:00
parent 259c2e5ba1
commit e169971384
115 changed files with 783 additions and 540 deletions

View File

@@ -245,6 +245,7 @@ function monsterKilled(mob, eim) {
eim.clearPQ();
eim.dispatchUpdateQuestMobCount(bossMobId, entryMap);
eim.dispatchUpdateQuestMobCount(9101003, entryMap); // thanks Atoot for noticing quest not getting updated after boss kill
mob.getMap().broadcastBalrogVictory(eim.getLeader().getName());
} else {
if(count == 1) {

View File

@@ -24,7 +24,7 @@ function respawn(eim){}
function playerEntry(eim, player){
var cave = eim.getMapInstance(eventMap + 10 * eim.getIntProperty("nex"));
player.changeMap(cave);
player.changeMap(cave, 1);
}
function scheduledTimeout(eim){

View File

@@ -24,7 +24,7 @@ function respawn(eim){}
function playerEntry(eim, player){
var cave = eim.getMapInstance(eventMap);
player.changeMap(cave);
player.changeMap(cave, 1);
}
function scheduledTimeout(eim){

View File

@@ -63,7 +63,7 @@ function respawn(eim) {
function playerEntry(eim, player) {
var amplifierMap = eim.getMapInstance(entryMap.getId());
player.changeMap(amplifierMap);
player.changeMap(amplifierMap, 1);
eim.schedule("timeOut", timer);
}

View File

@@ -63,7 +63,7 @@ function respawn(eim) {
function playerEntry(eim, player) {
var amplifierMap = eim.getMapInstance(entryMap.getId());
player.changeMap(amplifierMap);
player.changeMap(amplifierMap, 1);
eim.schedule("timeOut", timer);
}

View File

@@ -66,7 +66,7 @@ function action(mode, type, selection) {
ticketSelection = selection;
if (ticketSelection > -1) {
cm.gainItem(4031035 + ticketSelection, -1);
cm.warp(103000897 + (ticketSelection * 3));
cm.warp(103000897 + (ticketSelection * 3), "st00"); // thanks IxianMace for noticing a few scripts having misplaced warp SP's
hasTicket = false;
cm.dispose();
return;

View File

@@ -28,6 +28,6 @@ function start() {
cm.gainItem(4031039,1);
else
cm.gainItem(4020000 + ((Math.random()*5)|0), 1);
cm.warp(103000100);
cm.warp(103000100, 0);
cm.dispose();
}

View File

@@ -28,6 +28,6 @@ function start() {
cm.gainItem(4031040,1);
else
cm.gainItem(prizes[parseInt(Math.random() * prizes.length)],1);
cm.warp(103000100);
cm.warp(103000100, 0);
cm.dispose();
}

View File

@@ -28,6 +28,6 @@ function start() {
cm.gainItem(4031041,1);
else
cm.gainItem(prizes[parseInt(Math.random() * prizes.length)],1);
cm.warp(103000100);
cm.warp(103000100, 0);
cm.dispose();
}

View File

@@ -53,7 +53,7 @@ function action(mode, type, selection) {
cm.sendOk("Oh, you don't have the money, right? Sorry, I can't let you in.");
} else {
cm.gainMeso(-5000);
cm.warp(193000000);
cm.warp(193000000, "out00");
}
cm.dispose();

View File

@@ -28,7 +28,7 @@ function action(mode, type, selection) {
}
} else if(status == 1){
if(cm.getEventInstance().isEventCleared()) {
cm.warp(cm.getMapId() == 105100300 ? 105100301 : 105100401);
cm.warp(cm.getMapId() == 105100300 ? 105100301 : 105100401, 0);
} else {
cm.warp(105100100);
}

View File

@@ -69,7 +69,7 @@ function action(mode, type, selection) {
cm.gainItem(4031010, -1);
cm.sendOk("You will have to collect me #b30 #t4031013##k. Good luck.")
} else if (status == 4) {
cm.warp(108000100);
cm.warp(108000100, 0);
cm.dispose();
}
else {

View File

@@ -222,7 +222,7 @@ function action(mode, type, selection) {
cm.sendOk("All the training maps are currently in use. Please try again later.");
cm.dispose();
} else {
cm.warp(map);
cm.warp(map, 0);
cm.dispose();
return;
}

View File

@@ -278,7 +278,7 @@ function action(mode, type, selection) {
if(cm.getMap().countMonsters() > 0) {
cm.sendNext("This is the hidden room of the tower. After eliminating all monsters on this room, talk to me to gain access to the treasure room, leaving the center tower access behind.");
} else {
cm.warp(920011100);
cm.warp(920011100, "st00");
}
break;
}

View File

@@ -33,7 +33,7 @@ var status = 0;
function start() {
if(cm.haveItem(4031450, 1)) {
cm.warp(921100100);
cm.warp(921100100, 1);
cm.dispose();
return;
}

View File

@@ -54,7 +54,7 @@ function action(mode, type, selection) {
cm.sendYesNo("Would you like to leave the bonus stage?");
}
else {
cm.warp(922011100);
cm.warp(922011100, "st00");
cm.dispose();
}
}

View File

@@ -44,7 +44,7 @@ function action(mode, type, selection){
}
else if(status == 1) {
cm.warp(exitMap);
cm.warp(exitMap, "st00");
cm.dispose();
}
}

View File

@@ -34,7 +34,7 @@ function action(mode, type, selection) {
cm.dispose();
else {
if(cm.getMapId() > 240050400) cm.warp(240050600);
else cm.warp(240040700);
else cm.warp(240040700, "out00");
cm.dispose();
}

View File

@@ -330,7 +330,7 @@ function action(mode, type, selection) {
cm.sendYesNo("So, you're giving up? You're really going to leave?");
} else {
if (mode == 1) {
cm.warp(925020002);
cm.warp(925020002, "st00");
}
cm.dispose();
return;

View File

@@ -225,7 +225,7 @@ function action(mode, type, selection) {
cm.sendAcceptDecline("So, you're giving up? You're really going to leave?");
} else {
if (mode == 1) {
cm.warp(925020002);
cm.warp(925020002, "st00");
}
cm.dispose();
}

View File

@@ -30,7 +30,7 @@
*/
function start() {
if(cm.isQuestStarted(3310) && !cm.haveItem(4031709, 1)) {
cm.warp(926120100);
cm.warp(926120100, "out00");
} else {
cm.sendNext("Alchemy....and Alchemist.....both of them are important. But more importantly, it is the Magatia that tolerate everything. The honor of Magatia should be protected by me.");
}

View File

@@ -33,7 +33,7 @@
function start() {
if(cm.isQuestStarted(3335) && !cm.haveItem(4031695, 1)) {
cm.warp(926120300);
cm.warp(926120300, "out00");
cm.dispose();
} else {
cm.sendOk("Emotion that I feel is real? Or just illusion coming from mechanical error?");

View File

@@ -50,7 +50,7 @@ function action(mode, type, selection) {
if(status == 0) {
cm.sendYesNo("We must keep fighting to save Romeo, please keep your pace. If you are not feeling so well to continue, your companions and I will understand... So, are you going to retreat?");
} else if(status == 1) {
cm.warp(926110700);
cm.warp(926110700, 0);
cm.dispose();
}
} else {

View File

@@ -50,7 +50,7 @@ function action(mode, type, selection) {
if(status == 0) {
cm.sendYesNo("We must keep fighting to save Juliet, please keep your pace. If you are not feeling so well to continue, your companions and I will understand... So, are you going to retreat?");
} else if(status == 1) {
cm.warp(926100700);
cm.warp(926100700, 0);
cm.dispose();
}
} else {

View File

@@ -93,7 +93,7 @@ function action(mode, type, selection) {
cm.sendYesNo("We must keep fighting to save Romeo, please keep your pace. If you are not feeling so well to continue, your companions and I will understand... So, are you going to retreat?");
}
} else {
cm.warp(926110700);
cm.warp(926110700, 0);
cm.dispose();
}
} else {
@@ -111,15 +111,15 @@ function action(mode, type, selection) {
if(cm.canHold(4001160)) {
cm.gainItem(4001160, 1);
if(eim.getIntProperty("normalClear") == 1) cm.warp(926110600);
else cm.warp(926110500);
if(eim.getIntProperty("normalClear") == 1) cm.warp(926110600, 0);
else cm.warp(926110500, 0);
} else {
cm.sendOk("Make sure you have a space on your ETC inventory.");
}
cm.dispose();
} else {
cm.warp(926110600);
cm.warp(926110600, 0);
cm.dispose();
}
}

View File

@@ -93,7 +93,7 @@ function action(mode, type, selection) {
cm.sendYesNo("We must keep fighting to save Juliet, please keep your pace. If you are not feeling so well to continue, your companions and I will understand... So, are you going to retreat?");
}
} else {
cm.warp(926100700);
cm.warp(926100700, 0);
cm.dispose();
}
} else {
@@ -111,15 +111,15 @@ function action(mode, type, selection) {
if(cm.canHold(4001159)) {
cm.gainItem(4001159, 1);
if(eim.getIntProperty("normalClear") == 1) cm.warp(926100600);
else cm.warp(926100500);
if(eim.getIntProperty("normalClear") == 1) cm.warp(926100600, 0);
else cm.warp(926100500, 0);
} else {
cm.sendOk("Make sure you have a space on your ETC inventory.");
}
cm.dispose();
} else {
cm.warp(926100600);
cm.warp(926100600, 0);
cm.dispose();
}
}

View File

@@ -51,7 +51,7 @@ function action(mode, type, selection) {
} else {
if(!cm.isQuestCompleted(7770)) cm.completeQuest(7770);
cm.warp(926110600);
cm.warp(926110600, 0);
cm.dispose();
}
}

View File

@@ -92,10 +92,10 @@ function action(mode, type, selection) {
cm.gainItem(4001169, -20);
cm.getEventInstance().warpEventTeam(930000500);
} else {
cm.warp(930000800);
cm.warp(930000800, 0);
}
} else {
cm.warp(930000800);
cm.warp(930000800, 0);
}
cm.dispose();

View File

@@ -19,7 +19,7 @@ function action(mode, type, selection) {
cm.removeAll(4001163);
cm.removeAll(4001169);
cm.removeAll(2270004);
cm.warp(930000800);
cm.warp(930000800, 0);
cm.dispose();
}
}

View File

@@ -25,7 +25,7 @@ function action(mode, type, selection) {
}
} else if(status == 1) {
if (!cm.haveItem(4001163)) {
cm.warp(930000800);
cm.warp(930000800, 0);
} else {
cm.getEventInstance().warpEventTeam(930000600);
}

View File

@@ -59,7 +59,7 @@ function action(mode, type, selection) {
cm.divideTeams();
cm.getEvent().minusLimit();
cm.warp(cm.getEvent().getMapId());
cm.warp(cm.getEvent().getMapId(), 0);
cm.dispose();
} else {
cm.sendNext("Either the event has not been started, you already have the #bScroll of Secrets#k, or you have already participated in this event within the last 24 hours. Please try again later!");

View File

@@ -55,7 +55,7 @@ function action(mode, type, selection) {
cm.sendOk("Very well. Remember, there you can assemble a team or take on the fightings on your own, it's up to you. Good luck!");
} else if(status == 4) {
cm.getPlayer().saveLocation("BOSSPQ");
cm.warp(970030000);
cm.warp(970030000, "out00");
cm.dispose();
}
}

View File

@@ -71,10 +71,10 @@ function action(mode, type, selection) {
cm.warp(980030000, 3);
break;
case 5:
cm.warp(926010000);
cm.warp(926010000, 4);
break;
case 6:
cm.warp(910320000);
cm.warp(910320000, 2);
break;
}
cm.dispose();

View File

@@ -66,10 +66,10 @@ function action(mode, type, selection) {
cm.warp(980030000, 3);
break;
case 5:
cm.warp(926010000);
cm.warp(926010000, 4);
break;
case 6:
cm.warp(910320000);
cm.warp(910320000, 2);
break;
}
cm.dispose();

View File

@@ -45,7 +45,7 @@ function action(mode, type, selection){
if (completed) {
cm.getEventInstance().clearPQ();
} else {
cm.warp(923010100);
cm.warp(923010100, 0);
}
cm.dispose();

View File

@@ -49,7 +49,7 @@ function action(mode, type, selection) {
cm.sendOk("Please check and see if you have " + price + " mesos to enter this place.");
else {
cm.gainMeso(-price);
cm.warp(801000100 + 100 * cm.getPlayer().getGender());
cm.warp(801000100 + 100 * cm.getPlayer().getGender(), "out00");
}
cm.dispose();
}

View File

@@ -50,7 +50,7 @@ function action(mode, type, selection) {
cm.dispose();
}
} else {
cm.warp(801040000);
cm.warp(801040000, "in00");
cm.dispose();
}
}

View File

@@ -30,9 +30,9 @@ function action(mode, type, selection) {
cm.dispose();
} else {
if (mode == 0) {
cm.sendOk("If you want to return to #m801000000#, then talk to me");
cm.sendOk("If you want to return to #m801000000#, then talk to me.");
cm.dispose();
} if (mode == 1) {
} else if (mode == 1) {
status++;
}
if (status == 1) {

View File

@@ -60,7 +60,7 @@ function action(mode, type, selection) {
}
}
cm.warp(541010110);
cm.warp(541010110, 0);
cm.dispose();
}
}

View File

@@ -62,6 +62,7 @@ function writeFeatureTab_Skills() {
addFeature("Chair Mastery - map chair boosts HP/MP rec.");
addFeature("Mu Lung Dojo skills functional.");
addFeature("Monster Magnet skill no longer crashes players.");
addFeature("HP/MP consumption from skills triggers pet autopot.");
}
function writeFeatureTab_Quests() {
@@ -278,7 +279,6 @@ function writeFeatureTab_Project() {
addFeature("Protected many flaws with login management system.");
addFeature("Developed a robust anti-exploit login coordinator.");
addFeature("Revised uniqueness aspect of logged in accounts.");
addFeature("Developed pooling system for IoSession sent packets.");
addFeature("Usage of HikariCP to improve DB connection calls.");
addFeature("Usage of Java Threadpool to improve runnable calls.");
addFeature("Developed many survey tools for content profiling.");

View File

@@ -23,7 +23,7 @@ function action(mode, type, selection){
else if(status == 1){
if(cm.getText() == "Open Sesame"){
if(cm.isQuestCompleted(3925))
cm.warp(260010402);
cm.warp(260010402, 1);
else
cm.playerMessage(5, "Although you said the right answer, the door will not budge.");

View File

@@ -1,8 +1,5 @@
function enter(pi) {
if ( pi.getPlayer().getTeam() == 0 ) {
pi.warp( pi.getMapId() - 100);
} else {
pi.warp( pi.getMapId() - 100);
}
pi.playPortalSound();
pi.warp( pi.getMapId() - 100);
return true;
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -34,7 +34,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -46,7 +46,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -34,7 +34,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -46,7 +46,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -34,7 +34,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -46,7 +46,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -34,7 +34,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -46,7 +46,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -34,7 +34,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -46,7 +46,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -32,7 +32,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warpParty(dungeonid + i);
pi.warpParty(dungeonid + i, "out00");
return true;
}
}
@@ -44,7 +44,7 @@ function enter(pi) {
for (var i = 0; i < dungeons; i++) {
if(pi.startDungeonInstance(dungeonid + i)) {
pi.playPortalSound();
pi.warp(dungeonid + i);
pi.warp(dungeonid + i, "out00");
return true;
}
}

View File

@@ -1,5 +1,5 @@
function enter(pi) {
pi.playPortalSound();
pi.warp(pi.getMapId() + 100);
pi.warp(pi.getMapId() + 100, 0);
return true;
}

View File

@@ -19,7 +19,7 @@
*/
/*
Vs Pink Bean - Ressurection stage portal
Vs Pink Bean - Resurrection stage portal
@author Ronan
*/

View File

@@ -50,7 +50,7 @@ function enter(pi) {
}
} else {
pi.playPortalSound();
pi.warp(922020300);
pi.warp(922020300, 0);
return true;
}
}

View File

@@ -1,6 +1,6 @@
//Author: kevintjuh93
function enter(pi) {
pi.playPortalSound(); pi.warp(922240100 + (pi.getPlayer().getMapId() - 922240000));
pi.playPortalSound(); pi.warp(922240100 + (pi.getPlayer().getMapId() - 922240000), 0);
return true;
}

View File

@@ -1,6 +1,6 @@
function enter(pi) {
if (pi.getMap().getReactorByName("jnr6_out").getState() == 1) {
pi.playPortalSound(); pi.warp(926110300);
pi.playPortalSound(); pi.warp(926110300, 0);
return true;
} else {
pi.playerMessage(5, "The portal is not opened yet.");

View File

@@ -21,7 +21,7 @@
function enter(pi) {
if(pi.isQuestStarted(3935) && !pi.haveItem(4031574, 1)) {
if(pi.getWarpMap(926000010).countPlayers() == 0) {
pi.playPortalSound(); pi.warp(926000010);
pi.playPortalSound(); pi.warp(926000010, 0);
return true;
} else {
pi.message("Someone is already trying this map.");

View File

@@ -24,6 +24,6 @@
@Author Ronan
*/
function enter(pi) {
pi.playPortalSound(); pi.warp(670010800);
pi.playPortalSound(); pi.warp(670010800, 0);
return true;
}

View File

@@ -16,7 +16,7 @@ function start(mode, type, selection) {
} else {
qm.forceStartQuest();
qm.warp(912060200);
qm.warp(912060200, 0);
}
qm.dispose();
}

View File

@@ -48,7 +48,7 @@ function start(mode, type, selection) {
qm.sendOk("There is someone currently in this map, come back later.");
qm.dispose();
} else {
qm.warp(926000000);
qm.warp(926000000, "st00");
qm.forceStartQuest();
qm.dispose();
}

View File

@@ -28,5 +28,5 @@
function act(){
rm.playerMessage(5,"You have found a secret factory!");
rm.warp(Math.random() < .5 ? 922000020 : 922000021);
rm.warp(Math.random() < .5 ? 922000020 : 922000021, 0);
}