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:
@@ -34,6 +34,7 @@ import javax.script.Invocable;
|
||||
import javax.script.ScriptException;
|
||||
|
||||
import constants.ServerConstants;
|
||||
import constants.GameConstants;
|
||||
import client.MapleCharacter;
|
||||
import net.server.Server;
|
||||
import net.server.world.World;
|
||||
@@ -499,19 +500,6 @@ public class EventManager {
|
||||
return(MapleLifeFactory.getMonster(mid));
|
||||
}
|
||||
|
||||
private static String ordinal(int i) {
|
||||
String[] sufixes = new String[] { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
|
||||
switch (i % 100) {
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
return i + "th";
|
||||
|
||||
default:
|
||||
return i + sufixes[i % 10];
|
||||
}
|
||||
}
|
||||
|
||||
private void exportReadyGuild(Integer guildId) {
|
||||
MapleGuild mg = server.getGuild(guildId);
|
||||
String callout = "[Guild Quest] Your guild has been registered to attend to the Sharenian Guild Quest at channel " + this.getChannelServer().getId()
|
||||
@@ -524,7 +512,7 @@ public class EventManager {
|
||||
private void exportMovedQueueToGuild(Integer guildId, int place) {
|
||||
MapleGuild mg = server.getGuild(guildId);
|
||||
String callout = "[Guild Quest] Your guild has been registered to attend to the Sharenian Guild Quest at channel " + this.getChannelServer().getId()
|
||||
+ " and is currently on the " + ordinal(place) + " place on the waiting queue.";
|
||||
+ " and is currently on the " + GameConstants.ordinal(place) + " place on the waiting queue.";
|
||||
|
||||
mg.dropMessage(6, callout);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class QuestScriptManager extends AbstractScriptManager {
|
||||
qms.put(c, qm);
|
||||
Invocable iv = getInvocable("quest/" + questid + ".js", c);
|
||||
if (iv == null) {
|
||||
FilePrinter.printError(FilePrinter.QUEST_UNCODED, "Quest " + questid + " is uncoded.\r\n");
|
||||
FilePrinter.printError(FilePrinter.QUEST_UNCODED, "START Quest " + questid + " is uncoded.\r\n");
|
||||
}
|
||||
if (iv == null || QuestScriptManager.getInstance() == null) {
|
||||
qm.dispose();
|
||||
@@ -112,6 +112,7 @@ public class QuestScriptManager extends AbstractScriptManager {
|
||||
qms.put(c, qm);
|
||||
Invocable iv = getInvocable("quest/" + questid + ".js", c);
|
||||
if (iv == null) {
|
||||
FilePrinter.printError(FilePrinter.QUEST_UNCODED, "END Quest " + questid + " is uncoded.\r\n");
|
||||
qm.dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user