Reworked equip lvlup + Reactor quest item drop + ToT quests fix

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.
This commit is contained in:
ronancpl
2017-08-16 14:06:59 -03:00
parent e0a27e00ab
commit c8e36c10e7
129 changed files with 744 additions and 448 deletions

View File

@@ -44,8 +44,8 @@ function scheduleNew() {
function stopentry() {
em.setProperty("entry","false");
Orbis_Boat_Cabin.resetReactors(); //boxes
Ellinia_Boat_Cabin.resetReactors();
Orbis_Boat_Cabin.clearMapObjects(); //boxes
Ellinia_Boat_Cabin.clearMapObjects();
}
function takeoff() {

View File

@@ -10,9 +10,7 @@ var map;
var timeOnRide = 60; //Seconds
var onRide;
function init() {
}
function init() {}
function setup() {
var eim = em.newInstance("Hak_" + + em.getProperty("player"));

View File

@@ -53,7 +53,7 @@ function action(mode, type, selection) {
if (mode == 0) {
cm.sendNext("#b(As I took my hand off the bulletin board, the mysterious energy that was covering my disappeared as well.)");
} else {
cm.getPlayer().saveLocation("DOJO");
cm.getPlayer().saveLocation("MIRROR");
cm.warp(925020000, 4);
}
cm.dispose();

View File

@@ -41,7 +41,7 @@ function action(mode, type, selection) {
if(cm.isQuestStarted(3900) && cm.getPlayer().getQuestInfo(3900) != 5) {
cm.sendOk("#b(You drink the water from the oasis and feel refreshed.)", 2);
//TODO: Update quest progress.
cm.getPlayer().updateQuestInfo(3900, 5);
cm.getPlayer().updateQuestInfo(3900, "5");
}
cm.dispose();
}

View File

@@ -1,249 +1,11 @@
/* @Author SharpAceX / Ronan
/* @Author SharpAceX
Name: Steward
Map(s): Foyer
Info: Steward / Commands
Info: Steward
NPC ID: 9201143.js
*/
var status;
var comm_lv6 = [];
var desc_lv6 = [];
var comm_lv5 = [];
var desc_lv5 = [];
var comm_lv4 = [];
var desc_lv4 = [];
var comm_lv3 = [];
var desc_lv3 = [];
var comm_lv2 = [];
var desc_lv2 = [];
var comm_lv1 = [];
var desc_lv1 = [];
var levels = ["Common", "Donator", "JrGM", "GM", "SuperGM", "Developer", "Admin"];
var comm_cursor, desc_cursor;
function addCommand(comm, desc) {
comm_cursor.add(comm);
desc_cursor.add(desc);
}
function writeSolaxiaCommandsLv6() { //Admin
comm_cursor = comm_lv6;
desc_cursor = desc_lv6;
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
}
function writeSolaxiaCommandsLv5() { //Developer
comm_cursor = comm_lv5;
desc_cursor = desc_lv5;
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
}
function writeSolaxiaCommandsLv4() { //SuperGM
comm_cursor = comm_lv4;
desc_cursor = desc_lv4;
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
}
function writeSolaxiaCommandsLv3() { //GM
comm_cursor = comm_lv3;
desc_cursor = desc_lv3;
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
addCommand("", "");
}
function writeSolaxiaCommandsLv2() { //JrGM
comm_cursor = comm_lv2;
desc_cursor = desc_lv2;
addCommand("hide", "");
addCommand("unhide", "");
addCommand("sp", "");
addCommand("ap", "");
addCommand("empowerme", "");
addCommand("buffmap", "");
addCommand("buff", "");
addCommand("bomb", "");
addCommand("dc", "");
addCommand("cleardrops", "");
addCommand("clearslot", "");
addCommand("warp", "");
addCommand("warpto", "");
addCommand("summon", "");
addCommand("gmshop", "");
addCommand("heal", "");
addCommand("item", "");
addCommand("level", "");
addCommand("levelpro", "");
addCommand("setstat", "");
addCommand("maxstat", "");
addCommand("maxskill", "");
addCommand("mesos", "");
addCommand("search", "");
addCommand("jail", "");
addCommand("unjail", "");
addCommand("unbug", "");
}
function writeSolaxiaCommandsLv1() { //Donator
comm_cursor = comm_lv1;
desc_cursor = desc_lv1;
addCommand("buffme", "");
addCommand("goto", "");
addCommand("recharge", "");
addCommand("whereami", "");
}
function writeSolaxiaCommandsLv0() { //Common
comm_cursor = comm_lv0;
desc_cursor = desc_lv0;
addCommand("commands", "");
addCommand("time", "");
addCommand("staff", "");
addCommand("uptime", "");
addCommand("gacha", "");
addCommand("whatdropsfrom", "");
addCommand("whodrops", "");
addCommand("dispose", "");
addCommand("equiplv", "");
addCommand("rates", "");
addCommand("online", "");
addCommand("gm", "");
addCommand("bug", "");
addCommand("joinevent", "");
addCommand("leaveevent", "");
addCommand("bosshp", "");
addCommand("ranks", "");
}
function writeSolaxiaCommands() {
writeSolaxiaCommandsLv0(); //Common
writeSolaxiaCommandsLv1(); //Donator
writeSolaxiaCommandsLv2(); //JrGM
writeSolaxiaCommandsLv3(); //GM
writeSolaxiaCommandsLv4(); //Developer
writeSolaxiaCommandsLv5(); //SuperGM
writeSolaxiaCommandsLv6(); //Admin
}
function start() {
if(cm.getPlayer.getCS()) {
writeSolaxiaCommands();
action(1, 0, 0);
} else {
cm.sendNext("At your service, my friend.");
cm.dispose();
}
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && status == 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
var sendStr = "There are all available commands for you:\r\n\r\n#b";
for(var i = 0; i < cm.getGmLevel(); i++) {
sendStr += "#L" + i + "#" + levels[i] + "#l\r\n";
}
cm.sendSimple(sendStr);
} else if(status == 1) {
var lvComm, lvDesc;
if(selection == 0) {
lvComm = comm_lv1;
lvDesc = desc_lv1;
} else if(selection == 1) {
lvComm = comm_lv2;
lvDesc = desc_lv2;
} else if(selection == 2) {
lvComm = comm_lv3;
lvDesc = desc_lv3;
} else if(selection == 3) {
lvComm = comm_lv4;
lvDesc = desc_lv4;
} else if(selection == 4) {
lvComm = comm_lv5;
lvDesc = desc_lv5;
} else {
lvComm = comm_lv6;
lvDesc = desc_lv6;
}
var sendStr = "The following commands are available for #b" + levels[selection] + "#k:\r\n\r\n";
for(var i = 0; i < lvComm.length; i++) {
sendStr += " #L" + i + "# " + lvComm[i] + " - " + lvDesc[i];
sendStr += "#l\r\n";
}
cm.sendPrev(sendStr);
}
}
cm.sendNext("At your service, my friend.");
cm.dispose();
}

288
scripts/npc/commands.js Normal file
View File

@@ -0,0 +1,288 @@
/* @Author Ronan
* @Author Vcoc
Name: Steward
Map(s): Foyer
Info: Commands
Script: commands.js
*/
/*
Please, keep the commands organized!
*/
var status;
var comm_lv6 = [];
var desc_lv6 = [];
var comm_lv5 = [];
var desc_lv5 = [];
var comm_lv4 = [];
var desc_lv4 = [];
var comm_lv3 = [];
var desc_lv3 = [];
var comm_lv2 = [];
var desc_lv2 = [];
var comm_lv1 = [];
var desc_lv1 = [];
var comm_lv0 = [];
var desc_lv0 = [];
var levels = ["Common", "Donator", "JrGM", "GM", "SuperGM", "Developer", "Admin"];
var comm_cursor, desc_cursor;
function addCommand(comm, desc) {
comm_cursor.push(comm);
desc_cursor.push(desc);
}
function writeSolaxiaCommandsLv6() { //Admin
comm_cursor = comm_lv6;
desc_cursor = desc_lv6;
addCommand("warpworld", "");
addCommand("saveall", "");
addCommand("dcall", "");
addCommand("mapplayers", "");
addCommand("getacc", "");
addCommand("shutdown", "");
addCommand("shutdownnow", "");
addCommand("clearquestcache", "");
addCommand("clearquest", "");
}
function writeSolaxiaCommandsLv5() { //Developer
comm_cursor = comm_lv5;
desc_cursor = desc_lv5;
addCommand("debugmonster", "");
addCommand("debugpacket", "");
addCommand("debugnearestportal", "");
addCommand("debugnearestspawnpoint", "");
addCommand("debugpos", "");
addCommand("debugmap", "");
addCommand("debugmobsp", "");
addCommand("debugevent", "");
addCommand("debugareas", "");
addCommand("debugreactors", "");
addCommand("debugcoupons", "");
addCommand("debugplayercoupons", "");
addCommand("debugtimer", "");
}
function writeSolaxiaCommandsLv4() { //SuperGM
comm_cursor = comm_lv4;
desc_cursor = desc_lv4;
addCommand("servermessage", "");
addCommand("proitem", "");
addCommand("seteqstat", "");
addCommand("exprate", "");
addCommand("mesorate", "");
addCommand("droprate", "");
addCommand("bossdroprate", "");
addCommand("itemvac", "");
addCommand("forcevac", "");
addCommand("zakum", "");
addCommand("horntail", "");
addCommand("pinkbean", "");
addCommand("pap", "");
addCommand("pianus", "");
addCommand("playernpc", "");
addCommand("face", "");
addCommand("hair", "");
}
function writeSolaxiaCommandsLv3() { //GM
comm_cursor = comm_lv3;
desc_cursor = desc_lv3;
addCommand("spawn", "");
addCommand("mutemap", "");
addCommand("checkdmg", "");
addCommand("inmap", "");
addCommand("reloadevents", "");
addCommand("reloaddrops", "");
addCommand("reloadportals", "");
addCommand("reloadmap", "");
addCommand("hpmp", "");
addCommand("music", "");
addCommand("monitor", "");
addCommand("monitors", "");
addCommand("ignore", "");
addCommand("ignored", "");
addCommand("pos", "");
addCommand("togglecoupon", "");
addCommand("chat", "");
addCommand("fame", "");
addCommand("giftnx", ""); //Ronan, muda esse comando para "givenx", faz mais sentido. XD
addCommand("vp", ""); //Ronan, muda esse comando para "givevp", faz mais sentido. XD
addCommand("id", "");
addCommand("expeds", "");
addCommand("kill", "");
addCommand("seed", "");
addCommand("killall", "");
addCommand("notice", "");
addCommand("rip", "");
addCommand("openportal", "");
addCommand("closeportals", "");
addCommand("pe", "");
addCommand("startevent", "");
addCommand("endevent", "");
addCommand("online2", "");
addCommand("warpsnowball", "");
addCommand("ban", "");
addCommand("unban", "");
addCommand("healmap", "");
addCommand("healperson", "");
addCommand("hurt", "");
addCommand("killmap", "");
addCommand("night", "");
addCommand("npc", "");
}
function writeSolaxiaCommandsLv2() { //JrGM
comm_cursor = comm_lv2;
desc_cursor = desc_lv2;
addCommand("hide", "");
addCommand("unhide", "");
addCommand("sp", "");
addCommand("ap", "");
addCommand("empowerme", "");
addCommand("buffmap", "");
addCommand("buff", "");
addCommand("bomb", "");
addCommand("dc", "");
addCommand("cleardrops", "");
addCommand("clearslot", "");
addCommand("warp", "");
addCommand("warpto", "");
addCommand("warphere", "");
addCommand("gmshop", "");
addCommand("heal", "");
addCommand("item", "");
addCommand("level", "");
addCommand("levelpro", "");
addCommand("setstat", "");
addCommand("maxstat", "");
addCommand("maxskill", "");
addCommand("mesos", "");
addCommand("search", "");
addCommand("jail", "");
addCommand("unjail", "");
addCommand("job", "");
addCommand("unbug", "");
}
function writeSolaxiaCommandsLv1() { //Donator
comm_cursor = comm_lv1;
desc_cursor = desc_lv1;
addCommand("buffme", "");
addCommand("goto", "");
addCommand("recharge", "");
addCommand("whereami", "");
}
function writeSolaxiaCommandsLv0() { //Common
comm_cursor = comm_lv0;
desc_cursor = desc_lv0;
addCommand("commands", "");
addCommand("time", "");
addCommand("staff", "");
addCommand("uptime", "");
addCommand("gacha", "");
addCommand("whatdropsfrom", "");
addCommand("whodrops", "");
addCommand("dispose", "");
addCommand("equiplv", "");
addCommand("rates", "");
addCommand("online", "");
addCommand("gm", "");
addCommand("bug", "");
// addCommand("points", ""); //Caso for usar o comando @points, a linha ja foi adicionada, basta remover os //
addCommand("joinevent", "");
addCommand("leaveevent", "");
addCommand("bosshp", "");
addCommand("ranks", "");
}
function writeSolaxiaCommands() {
writeSolaxiaCommandsLv0(); //Common
writeSolaxiaCommandsLv1(); //Donator
writeSolaxiaCommandsLv2(); //JrGM
writeSolaxiaCommandsLv3(); //GM
writeSolaxiaCommandsLv4(); //Developer
writeSolaxiaCommandsLv5(); //SuperGM
writeSolaxiaCommandsLv6(); //Admin
}
function start() {
status = -1;
writeSolaxiaCommands();
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (mode == 0 && type > 0) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
var sendStr = "There are all available commands for you:\r\n\r\n#b";
for(var i = 0; i < cm.getPlayer().gmLevel(); i++) {
sendStr += "#L" + i + "#" + levels[i] + "#l\r\n";
}
cm.sendSimple(sendStr);
} else if(status == 1) {
var lvComm, lvDesc;
if(selection == 0) {
lvComm = comm_lv1;
lvDesc = desc_lv1;
} else if(selection == 1) {
lvComm = comm_lv2;
lvDesc = desc_lv2;
} else if(selection == 2) {
lvComm = comm_lv3;
lvDesc = desc_lv3;
} else if(selection == 3) {
lvComm = comm_lv4;
lvDesc = desc_lv4;
} else if(selection == 4) {
lvComm = comm_lv5;
lvDesc = desc_lv5;
} else {
lvComm = comm_lv6;
lvDesc = desc_lv6;
}
var sendStr = "The following commands are available for #b" + levels[selection] + "#k:\r\n\r\n";
for(var i = 0; i < lvComm.length; i++) {
sendStr += " #L" + i + "# " + lvComm[i] + " - " + lvDesc[i];
sendStr += "#l\r\n";
}
cm.sendPrev(sendStr);
} else {
cm.dispose();
}
}
}

View File

@@ -43,10 +43,13 @@ function enter(pi) {
pi.warp(270040100, "out00");
} else {
if(map > 200) {
pi.playerMessage(5, "As the time starts to flow oddly, you are transported back to a safe lane.");
pi.warp(270030000, "in00");
} else if(map > 100) {
pi.playerMessage(5, "As the time starts to flow oddly, you are transported back to a safe lane.");
pi.warp(270020000, "in00");
} else {
pi.playerMessage(5, "As the time starts to flow oddly, you are transported back to a safe lane.");
pi.warp(270010000, "in00");
}
}

10
scripts/quest/3507.js Normal file
View File

@@ -0,0 +1,10 @@
function end(mode, type, selection) {
if(qm.isQuestCompleted(3523) || qm.isQuestCompleted(3524) || qm.isQuestCompleted(3525) || qm.isQuestCompleted(3526) || qm.isQuestCompleted(3527) || qm.isQuestCompleted(3539)) {
qm.completeQuest();
qm.sendOk("You are now filled with all of your memories again.. You are now allowed to go to #m270020000#.");
} else {
qm.sendOk("You have not yet checked with your first teacher about your memories?");
}
qm.dispose();
}

View File

@@ -23,12 +23,46 @@
* The sorcerer who sells emotions
*/
importPackage(Packages.client);
function start(mode, type, selection) {
if(qm.getPlayer().getMeso() >= 1000000) {
if(qm.canHold(2022337, 1)) {
qm.gainItem(2022337, 1);
qm.gainMeso(-1000000);
//qm.sendOk("Nice doing business with you~~.");
qm.startQuest(3514);
} else {
qm.sendOk("Check out for a slot on your USE inventory first.");
}
} else {
qm.sendOk("Oy, you don't have the money. I charge #r1,000,000 mesos#k for the emotion potion. No money, no deal.");
}
qm.dispose();
}
function usedPotion(ch) {
return ch.getBuffSource(MapleBuffStat.HPREC) == 2022337;
}
function end(mode, type, selection) {
if(qm.haveItem(2022337)) {
qm.sendOk("Are you scared to drink the potion? I can assure you it's only a minor #rside effect#k.");
if(!usedPotion(qm.getPlayer())) {
if(qm.haveItem(2022337)) {
qm.sendOk("Are you scared to drink the potion? I can assure you it has only a minor #rside effect#k.");
} else {
if(qm.canHold(2022337)) {
qm.gainItem(2022337, 1);
qm.sendOk("Lost it? Luckily for you I managed to recover it back. Take it.");
} else {
qm.sendOk("Lost it? Luckily for you I managed to recover it back. Make a room to get it.");
}
}
} else {
qm.sendOk("It seems the potion worked and your emotions are no longer frozen.");
qm.sendOk("It seems the potion worked and your emotions are no longer frozen. And, oh, my... You're ailing bad, #bpurge#k that out quickly.");
qm.gainExp(891500 * qm.getPlayer().getExpRate());
qm.completeQuest(3514);
}
qm.dispose();
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -25,8 +25,8 @@
function start(mode, type, selection) {
qm.startQuest();
qm.getPlayer().updateQuestInfo(3507, 1);
//qm.getPlayer().updateQuestInfo(3507, "1");
qm.completeQuest();
qm.sendOk("You have regained your memories and are now allowed to go to #m270020000#.");
qm.sendOk("You have regained your memories, talk to #b#p2140001##k to get the pass.");
qm.dispose();
}

View File

@@ -21,9 +21,9 @@
*/
/**
* @author BubblesDev
* @purpose Drops Blue Primrose Seeds (4001100)
* @purpose Sky-ride to Orbis box
* @map Primrose Hill
*/
function act() {
rm.dropItems();
rm.dropItems(true, 2, 25, 100);
}

View File

@@ -24,5 +24,5 @@
* Box of Magic Library
*/
function act() {
rm.dropItems();
rm.dropItems(true, 2, 25, 100);
}