Quest & Command tweak + MapleCashDropFetcher + Cash drop tidyup
Solved a possible exploit on starting/completing non-scripted quests. Added missing drop data for Aran's puppeteer questline. Moved GM tier level of some commands. Applied proper synchronization for BuddyList modules. Issued commands now requires "@" heading for normal players and donators (GM level < 2) and "!" for Jr. GM and above (GM level >= 2). Added custom feature: a message will be sent to acquaintances of a player (friends, family, guild, spouse) when they change/upgrade jobs. Removed cash drop entries from the DB. New tool: MapleCashDropFetcher. Reports on a text file all cash-type drop data on DB.
This commit is contained in:
@@ -18,10 +18,17 @@ function action(mode, type, selection){
|
||||
|
||||
|
||||
if(status == 0){
|
||||
if(cm.isQuestStarted(21728)) {
|
||||
cm.sendOk("You search for any hints of the Puppeteer, but it seems a powerful force blocks the path... Better return to #b#p1061019##k.");
|
||||
cm.setQuestProgress(21728, 0, 1);
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
cm.sendGetText("A suspicious voice pierces through the silence. #bPassword#k!");
|
||||
}
|
||||
else if(status == 1){
|
||||
if(cm.getText() == "Francis is a genius Puppeteer!"){
|
||||
if(cm.getText() == "Francis is a genius Puppeteer!"){
|
||||
if(cm.isQuestStarted(20730) && cm.getQuestProgress(20730, 9300285) == 0)
|
||||
cm.warp(910510001, 1);
|
||||
else if(cm.isQuestStarted(21731) && cm.getQuestProgress(21731, 9300346) == 0)
|
||||
|
||||
@@ -152,6 +152,7 @@ function writeSolaxiaCommandsLv2() { //JrGM
|
||||
comm_cursor = comm_lv2;
|
||||
desc_cursor = desc_lv2;
|
||||
|
||||
addCommand("whereami", "");
|
||||
addCommand("hide", "");
|
||||
addCommand("unhide", "");
|
||||
addCommand("sp", "");
|
||||
@@ -188,10 +189,13 @@ function writeSolaxiaCommandsLv1() { //Donator
|
||||
comm_cursor = comm_lv1;
|
||||
desc_cursor = desc_lv1;
|
||||
|
||||
addCommand("bosshp", "");
|
||||
addCommand("mobhp", "");
|
||||
addCommand("whatdropsfrom", "");
|
||||
addCommand("whodrops", "");
|
||||
addCommand("buffme", "");
|
||||
addCommand("goto", "");
|
||||
addCommand("recharge", "");
|
||||
addCommand("whereami", "");
|
||||
}
|
||||
|
||||
function writeSolaxiaCommandsLv0() { //Common
|
||||
@@ -204,21 +208,21 @@ function writeSolaxiaCommandsLv0() { //Common
|
||||
addCommand("credits", "");
|
||||
addCommand("uptime", "");
|
||||
addCommand("gacha", "");
|
||||
addCommand("whatdropsfrom", "");
|
||||
addCommand("whodrops", "");
|
||||
addCommand("dispose", "");
|
||||
addCommand("equiplv", "");
|
||||
addCommand("showrates", "");
|
||||
addCommand("rates", "");
|
||||
addCommand("online", "");
|
||||
addCommand("gm", "");
|
||||
addCommand("bug", "");
|
||||
addCommand("reportbug", "");
|
||||
//addCommand("points", "");
|
||||
addCommand("joinevent", "");
|
||||
addCommand("leaveevent", "");
|
||||
addCommand("bosshp", "");
|
||||
addCommand("mobhp", "");
|
||||
addCommand("ranks", "");
|
||||
addCommand("str", "");
|
||||
addCommand("int", "");
|
||||
addCommand("luk", "");
|
||||
addCommand("dex", "");
|
||||
}
|
||||
|
||||
function writeSolaxiaCommands() {
|
||||
|
||||
49
scripts/quest/21728.js
Normal file
49
scripts/quest/21728.js
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
This file is part of the HeavenMS (MapleSolaxiaV2) MapleStory Server
|
||||
Copyleft (L) 2017 RonanLana
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
var status = -1;
|
||||
|
||||
function end(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
qm.dispose();
|
||||
} else {
|
||||
if(mode == 0 && type > 0) {
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
if(qm.getQuestProgress(21728, 0) == 0) {
|
||||
qm.sendNext("You haven't found the #rPuppeteer's cave#k yet, did you?");
|
||||
} else {
|
||||
qm.sendNext("Hm, so the entrance is blocked by a powerful force? I see, gimme a time to think now...");
|
||||
qm.gainExp(200 * qm.getPlayer().getExpRate());
|
||||
qm.forceCompleteQuest();
|
||||
}
|
||||
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
44
scripts/quest/21729.js
Normal file
44
scripts/quest/21729.js
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
This file is part of the HeavenMS (MapleSolaxiaV2) MapleStory Server
|
||||
Copyleft (L) 2017 RonanLana
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
var status = -1;
|
||||
|
||||
function start(mode, type, selection) {
|
||||
if (mode == -1) {
|
||||
qm.dispose();
|
||||
} else {
|
||||
if(mode == 0 && type > 0) {
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mode == 1)
|
||||
status++;
|
||||
else
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
qm.sendNext("Okay, you should not return to #bTru#k for further details on your next steps. ... Oh wait!! I remembered something. See the #rMysterious Statue#k over there? That statue has it's origins unknwown, and there's something scribbled onto it that resembles something big, it probably is the password for the cave? #rGet the password there#k, it may help you on your journey.");
|
||||
qm.forceStartQuest();
|
||||
|
||||
qm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,8 @@
|
||||
Quest ID: 2214
|
||||
*/
|
||||
|
||||
importPackage(java.util);
|
||||
|
||||
var status = -1;
|
||||
|
||||
function end(mode, type, selection) {
|
||||
@@ -42,6 +44,13 @@ function end(mode, type, selection) {
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
var hourDay = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if(!(hourDay >= 17 && hourDay < 20)) {
|
||||
qm.sendNext("(Hmm, I'm searching the trash can but can't find the #t4031894# JM was talking about, maybe it's not time yet...)");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if(!qm.canHold(4031894, 1)) {
|
||||
qm.sendNext("(Eh, I can't hold the #t4031894# right now, I need an ETC slot available.)");
|
||||
qm.dispose();
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
Quest ID: 2215
|
||||
*/
|
||||
|
||||
importPackage(java.util);
|
||||
|
||||
var status = -1;
|
||||
|
||||
function end(mode, type, selection) {
|
||||
@@ -42,6 +44,13 @@ function end(mode, type, selection) {
|
||||
status--;
|
||||
|
||||
if (status == 0) {
|
||||
var hourDay = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
|
||||
if(!(hourDay >= 17 && hourDay < 20)) {
|
||||
qm.sendNext("(Hmm, I'm searching the trash can but can't find the #t4031894# JM was talking about, maybe it's not time yet...)");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
if(qm.getMeso() < 2000) {
|
||||
qm.sendNext("(Oh, I don't have the combined fee amount yet.)");
|
||||
qm.dispose();
|
||||
|
||||
Reference in New Issue
Block a user