Event Recall + Cash Shop bestsellers + MapleSessionCoordinator rework
Implemented an event recall system. Players that went disconnected during an event instance are able to rejoin the ongoing event upon relogin. Implemented a player-activity backed best-sellers system for the Cash Shop. Patched the recently added selective loot system interfering with quest items, ever disabling drops after the player picked up one item. Implemented a server flag for everlasting buffs. Fixed some inconsistencies with Priest Dispel skill, sometimes crashing party players. Fixed change job not properly showing effects for other players. Fixed wrong fee value being taken from players that expands their guild size. Also, implemented GMS-like fee for this action. Reworked the MapleSessionCoordinator, now evaluating client's HWID as well as remote IP. This's expected to lessen account drought time for players that are constantly changing their IP. Last but not least, added world maps for Mushroom Castle, Zipangu, CBD/Malaysia and Ellin Forest regions. Original artwork content used on files depicted in this topic are rightful property of Nexon Corps., these files thoroughly trying to adhere the "Fair Use" disclaimer policy, their purpose being solely to fulfill gaming experience for the areas that were already present on v83 GMS but still lacked worldmaps. For more info regarding Fair Use, please refer to "http://www.dmlp.org/legal-guide/fair-use".
This commit is contained in:
@@ -142,6 +142,11 @@ function scheduledTimeout(eim) {
|
||||
}
|
||||
}
|
||||
|
||||
function bunnyDefeated(eim) {
|
||||
eim.dropMessage(5, "Due to your failure to protect the Moon Bunny, you have been transported to the Exile Map.");
|
||||
end(eim);
|
||||
}
|
||||
|
||||
function playerUnregistered(eim, player) {}
|
||||
|
||||
function playerExit(eim, player) {
|
||||
@@ -232,6 +237,12 @@ function clearPQ(eim) {
|
||||
|
||||
function monsterKilled(mob, eim) {}
|
||||
|
||||
function friendlyKilled(mob, eim) {
|
||||
if (mob.getId() == 9300061) {
|
||||
eim.schedule("bunnyDefeated", 5 * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
function allMonstersDead(eim) {}
|
||||
|
||||
function cancelSchedule() {}
|
||||
|
||||
@@ -185,7 +185,7 @@ function action(mode, type, selection) {
|
||||
cm.gainItem(mats[i], -matQty [i]);
|
||||
else
|
||||
cm.gainItem(mats, -matQty );
|
||||
cm.gainMeso(-cost );
|
||||
cm.gainMeso(-cost);
|
||||
cm.gainItem(item, 1);
|
||||
cm.sendOk("All done. Stay warm!");
|
||||
}
|
||||
|
||||
45
scripts/npc/9201084.js
Normal file
45
scripts/npc/9201084.js
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
This file is part of the HeavenMS MapleStory Server
|
||||
Copyleft (L) 2016 - 2018 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;
|
||||
|
||||
function start() {
|
||||
status = -1;
|
||||
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) {
|
||||
cm.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ var ambientSong = "Bgm04/Shinin'Harbor";
|
||||
var feature_tree = [];
|
||||
var feature_cursor;
|
||||
|
||||
var tabs = ["PQs", "Skills", "Quests", "Player Social Network", "Cash & Items", "Monsters, Maps & Reactors", "PQ potentials", "Player potentials", "Server potentials", "Admin/GM commands", "Custom NPCs", "Localhost edits", "Project"];
|
||||
var tabs = ["PQs", "Skills", "Quests", "Player Social Network", "Cash & Items", "Monsters, Maps & Reactors", "PQ potentials", "Player potentials", "Server potentials", "Commands", "Custom NPCs", "Localhost edits", "Project"];
|
||||
|
||||
function addFeature(feature) {
|
||||
feature_cursor.push(feature);
|
||||
@@ -43,7 +43,7 @@ function writeFeatureTab_PQs() {
|
||||
addFeature("RnJPQ/HorntailPQ/TreasurePQ/ElnathPQ/HolidayPQ.");
|
||||
addFeature("CWKPQ as Expedition-based instance.");
|
||||
addFeature("Scarga/Horntail/Showa/Balrog/Zakum/Pinkbean.");
|
||||
addFeature("GuildPQ & queue with multi-lobby systems available.");
|
||||
addFeature("GuildPQ & queue with multi-lobby system available.");
|
||||
addFeature("Brand-new PQs: BossRushPQ, CafePQ.");
|
||||
addFeature("Mu Lung Dojo.");
|
||||
addFeature("Capt. Latanica with party fighting the boss.");
|
||||
@@ -128,6 +128,7 @@ function writeFeatureTab_MonstersMapsReactors() {
|
||||
addFeature("Reactors pick items up smartly from the field.");
|
||||
addFeature("Updated scripted portals now with proper portal SFX.");
|
||||
addFeature("Reviewed Masteria, W. Tour, N. Desert and Neo City.");
|
||||
addFeature("Added world maps for M. Castle, W. Tour & Ellin areas.");
|
||||
addFeature("Giant Cake boss drops s. bags and Maple items.");
|
||||
}
|
||||
|
||||
@@ -137,13 +138,14 @@ function writeFeatureTab_PQpotentials() {
|
||||
addFeature("Exped system: Many parties can join a same instance.");
|
||||
addFeature("Guild queue: guild registration for the GPQ.");
|
||||
addFeature("EIM Pool system: optimized instance loadouts.");
|
||||
addFeature("Recall system: players can rejoin PQ after d/c.");
|
||||
}
|
||||
|
||||
function writeFeatureTab_Playerpotentials() {
|
||||
addFeature("Adventurer Mount quests functional.");
|
||||
addFeature("All Equipment levels up.");
|
||||
addFeature("Player level rates.");
|
||||
addFeature("Gain fame by quests.");
|
||||
addFeature("Gain fame by quests and event instances.");
|
||||
addFeature("Pet evolutions functional (not GMS-like).");
|
||||
addFeature("Reviewed keybinding system.");
|
||||
addFeature("Character slots per world/server-wide.");
|
||||
@@ -160,6 +162,7 @@ function writeFeatureTab_Serverpotentials() {
|
||||
addFeature("Enhanced AP auto-assigner: focus on eqp demands.");
|
||||
addFeature("Enhanced inventory check: free slots smartly fetched.");
|
||||
addFeature("Enhanced petloot handler: no brute-force inv. checks.");
|
||||
addFeature("Players-appointed bestsellers for Owl and Cash Shop.");
|
||||
addFeature("Tweaked pet/mount hunger to a balanced growth rate.");
|
||||
addFeature("Consistent experience and meso gain system.");
|
||||
addFeature("NPC crafters won't take items freely anymore.");
|
||||
@@ -184,7 +187,7 @@ function writeFeatureTab_Serverpotentials() {
|
||||
addFeature("Automatic account registration - thanks shavit!");
|
||||
}
|
||||
|
||||
function writeFeatureTab_AdminGMcommands() {
|
||||
function writeFeatureTab_Commands() {
|
||||
addFeature("Spawn Zakum/Horntail/Pinkbean.");
|
||||
addFeature("Several new commands.");
|
||||
addFeature("Rank command highlighting users by world or overall.");
|
||||
|
||||
@@ -47,7 +47,7 @@ function action(mode, type, selection) {
|
||||
|
||||
cm.sendSimple(sendStr);
|
||||
} else if(status == 1) {
|
||||
var lvComm, lvDesc, lvHead = (cm.getPlayer().gmLevel() < 2) ? common_heading : staff_heading;
|
||||
var lvComm, lvDesc, lvHead = (selection < 2) ? common_heading : staff_heading;
|
||||
|
||||
if(selection > 6) {
|
||||
selection = 6;
|
||||
|
||||
Reference in New Issue
Block a user