Updated Meso & Arrow drops + Aran change jobs fix + improved concurrency

Added meso drop data for many mobs that were missing mesos.
Enhanced arrow drop data, now dropping bundles instead of unitary items.
Fixed issues with several Aran change jobs crashing the player shortly after changing jobs.
Improved concurrency in MapleGuild, MapleAlliance and MaplePlayerShop.
New tools: MapleArrowFetcher and MapleMesoFetcher, that were used to compile the updated drop data info.
This commit is contained in:
ronancpl
2017-11-01 13:34:26 -02:00
parent 44949aea37
commit 64af2cfa00
192 changed files with 44793 additions and 271 deletions

View File

@@ -33,20 +33,20 @@ function action(mode, type, selection) {
status++;
if (status == 0) {
for(var i=0; i < menu.length; i++) {
var display = "\r\n#L"+i+"##b Lith Harbor (800 mesos)#k";
}
cm.sendSimple("Are you trying to leave Rien? Board this ship and I'll take you from #bRien#k to #bLith Harbor#k and back. for a #bfee of 800#k Mesos. Would you like to head over to Lith Harbor now? It'll take about a minute to get there.\r\n"+display);
var display = "\r\n#L"+i+"##b Lith Harbor (800 mesos)#k";
}
cm.sendSimple("Are you trying to leave Rien? Board this ship and I'll take you from #bRien#k to #bLith Harbor#k and back. for a #bfee of 800#k Mesos. Would you like to head over to Lith Harbor now? It'll take about a minute to get there.\r\n"+display);
} else if(status == 1) {
{ if(cm.getMeso() < 800) {
cm.sendNext("Hmm... Are you sure you have #b800#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
cm.dispose();
} else {
cm.gainMeso(-800);
cm.warp(200090070);
cm.dispose();
}
}
}
}
}
} else if(status == 1) {
if(cm.getMeso() < 800) {
cm.sendNext("Hmm... Are you sure you have #b800#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
cm.dispose();
} else {
cm.gainMeso(-800);
cm.warp(200090070);
cm.dispose();
}
}
}
}

View File

@@ -33,20 +33,19 @@ function action(mode, type, selection) {
status++;
if (status == 0) {
for(var i=0; i < menu.length; i++) {
var display = "\r\n#L"+i+"##b Rien (800 mesos)#k";
}
cm.sendSimple("Are you thinking about leaving Victoria Island and heading to our town? If you board this ship, I can take you from #bLith Harbor#k to #bRien#k and back. But you must pay a #bfee of 800#k Mesos. Would you like to go to Rien? It'll take about a minute to get there.\r\n"+display);
var display = "\r\n#L"+i+"##b Rien (800 mesos)#k";
}
cm.sendSimple("Are you thinking about leaving Victoria Island and heading to our town? If you board this ship, I can take you from #bLith Harbor#k to #bRien#k and back. But you must pay a #bfee of 800#k Mesos. Would you like to go to Rien? It'll take about a minute to get there.\r\n"+display);
} else if(status == 1) {
{ if(cm.getMeso() < 800) {
cm.sendNext("Hmm... Are you sure you have #b800#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
cm.dispose();
} else {
cm.gainMeso(-800);
cm.warp(200090060);
cm.dispose();
}
}
}
}
}
} else if(status == 1) {
if(cm.getMeso() < 800) {
cm.sendNext("Hmm... Are you sure you have #b800#k Mesos? Check your Inventory and make sure you have enough. You must pay the fee or I can't let you get on...");
cm.dispose();
} else {
cm.gainMeso(-800);
cm.warp(200090060);
cm.dispose();
}
}
}
}

View File

@@ -1,4 +1,5 @@
function enter(pi) {
pi.playPortalSound();
pi.warp(104000004, 1);
return true;
}

View File

@@ -38,22 +38,19 @@ function start(mode, type, selection) {
} else if (status == 1) {
if (qm.getPlayer().getJob().getId() == 2000) {
if(!qm.canHold(1142129)) {
cm.sendOk("Wow, your #bequip#k inventory is full. I need you to make at least 1 empty slot to complete this quest.");
cm.sendOk("Wow, your #bequip#k inventory is full. You need to make at least 1 empty slot to complete this quest.");
qm.dispose();
return;
}
qm.gainItem(1142129, true);
qm.completeQuest();
qm.changeJobById(2100);
qm.getPlayer().setStr(35);
qm.getPlayer().setDex(4);
qm.getPlayer().setRemainingAp((qm.getPlayer().getLevel() - 1) * 5 - 22);
qm.getPlayer().setRemainingSp((qm.getPlayer().getLevel() - 10) * 3 + 1);
qm.getPlayer().setMaxHp(qm.getPlayer().getMaxHp() + 275);
qm.getPlayer().setMaxMp(qm.getPlayer().getMaxMp() + 15);
qm.resetStats();
//qm.teachSkill(21000000, 0, 10, -1); //learned later...
//qm.teachSkill(21001003, 0, 20, -1); //learned later...
qm.completeQuest();
//qm.getPlayer().changeSkillLevel(SkillFactory.getSkill(20009000), 0, -1);
//qm.getPlayer().changeSkillLevel(SkillFactory.getSkill(20009000), 1, 0);

View File

@@ -56,12 +56,13 @@ function end(mode, type, selection) {
}
qm.gainItem(1142130, true);
qm.getPlayer().setMaxMp(qm.getPlayer().getMaxMp() + 275);
qm.changeJobById(2110);
qm.teachSkill(21100000, 0, 20, -1);
qm.teachSkill(21100002, 0, 30, -1);
qm.teachSkill(21100004, 0, 20, -1);
qm.teachSkill(21100005, 0, 20, -1);
qm.completeQuest();
}
qm.sendNext("Your level isn't what it used to be back in your glory days, so I can't restore all of your old abilities. But the few I can restore should help you level up faster. Now hurry up and train so you can return to the old you.");

View File

@@ -44,10 +44,10 @@ function end(mode, type, selection) {
}
qm.gainItem(1142131, true);
qm.getPlayer().setMaxMp(qm.getPlayer().getMaxMp() + 275);
qm.getPlayer().setMaxHp(qm.getPlayer().getMaxHp() + 275);
qm.changeJobById(2111);
qm.teachSkill(21110002, 0, 20, -1);
qm.completeQuest();
}
qm.sendNext("Come on, keep training so you can get all your abilities back, and that way we can explore together once more!");

22
scripts/quest/21766.js Normal file
View File

@@ -0,0 +1,22 @@
var status = -1;
function start(mode, type, selection) {
status++;
if (status == 0) {
qm.sendNext("Hey! Can you do me a favor? #p20000# seems a bit strange these days...");
} else if (status == 1) {
qm.sendNext("He used to scowl and whine about his arthritis until just recently, but he''s suddenly become all happy and smiley!!");
} else if (status == 2) {
qm.sendNext("I have a feeling there is a secret behind that wooden box. Could you stealthily look into the wooden box next to #p20000#?");
} else {
qm.sendNext("You know where #p20000# is, right? He''s to the right. Just keep going until you see where Vikin is, then head down past the hanging shark and octopus, and you''ll see John. The box should be right next to him.");
qm.forceStartQuest();
qm.dispose();
}
}
function end(mode, type, selection) {
qm.gainExp(200 * qm.getPlayer().getExpRate());
qm.forceCompleteQuest();
qm.dispose();
}

16
scripts/quest/21767.js Normal file
View File

@@ -0,0 +1,16 @@
var status = -1;
function start(mode, type, selection) {
status++;
if (status == 0) {
qm.sendNext("#bHm, there's a medicinal substance in the box. What could this be? You better take this to John and ask him what it is.#k");
} else {
qm.gainItem(4032423,1);
qm.forceCompleteQuest();
qm.dispose();
}
}
function end(mode, type, selection) {
qm.dispose();
}