Merge branch 'master' of https://github.com/ronancpl/HeavenMS into credits_update

This commit is contained in:
ronancpl
2019-11-14 22:35:43 -03:00
864 changed files with 20650 additions and 11188 deletions

View File

@@ -45,7 +45,7 @@ function start(mode, type, selection) {
status--;
if (status == 0)
qm.sendNext("Hey, Man~ What's up? Haha! I am Roger who can teach you adorable new Maplers lots of information.");
qm.sendNext("Hey, " + (qm.getPlayer().getGender() == 0 ? "Man" : "Miss") + "~ What's up? Haha! I am Roger who can teach you adorable new Maplers lots of information.");
else if (status == 1)
qm.sendNextPrev("You are asking who made me do this? Ahahahaha!\r\nMyself! I wanted to do this and just be kind to you new travellers.");
else if (status == 2)
@@ -62,7 +62,7 @@ function start(mode, type, selection) {
qm.forceStartQuest();
qm.sendNext("Surprised? If HP becomes 0, then you are in trouble. Now, I will give you #rRoger's Apple#k. Please take it. You will feel stronger. Open the Item window and double click to consume. Hey, it's very simple to open the Item window. Just press #bI#k on your keyboard.");
} else if (status == 4) {
qm.sendNextPrev("Please take all Roger's Apples that I gave you. You will be able to see the HP bar increasing. Please talk to me again when you recover your HP 100%.");
qm.sendPrev("Please take all Roger's Apples that I gave you. You will be able to see the HP bar increasing. Please talk to me again when you recover your HP 100%.");
} else if (status == 5) {
qm.showInfo("UI/tutorial.img/28");
qm.dispose();
@@ -93,7 +93,7 @@ function end(mode, type, selection) {
else if (status == 1)
qm.sendNextPrev("Alright! Now that you have learned alot, I will give you a present. This is a must for your travel in Maple World, so thank me! Please use this under emergency cases!");
else if (status == 2)
qm.sendNextPrev("Okay, this is all I can teach you. I know it's sad but it is time to say good bye. Well take care if yourself and Good luck my friend!\r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0#\r\n#v2010000# 3 #t2010000#\r\n#v2010009# 3 #t2010009#\r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0# 10 exp");
qm.sendPrev("Okay, this is all I can teach you. I know it's sad but it is time to say good bye. Well take care if yourself and Good luck my friend!\r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0#\r\n#v2010000# 3 #t2010000#\r\n#v2010009# 3 #t2010009#\r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0# 10 exp");
else if (status == 3) {
if(qm.isQuestCompleted(1021))
qm.dropMessage(1,"Unknown Error");

View File

@@ -10,14 +10,15 @@ function start(mode, type, selection) {
status++;
else
qm.dispose();
if (status == 0)
if (status == 0) {
qm.sendAcceptDecline("Hello, #h0#. Welcome to Maple World. It's currently event season, and we're welcome new characters with a gift. Would you like your gift now?");
else if (status == 1) {
} else if (status == 1) {
qm.sendOk("Open your inventory and double-click on it! These gifts will make you look stylish. Oh, one more thing! You'll get another gift at level 30. Good luck!");
qm.forceStartQuest();
qm.forceCompleteQuest();
qm.gainItem(2430191, 1, true);
qm.sendOk("Open your inventory and double-click on it! These gifts will make you look stylish. Oh, one more thing! You'll get another gift at level 30. Good luck!");
qm.dispose();
} else if (status == 2) {
qm.dispose();
}
}
}

View File

@@ -44,13 +44,16 @@ function start(mode, type, selection) {
else if (status == 2)
qm.sendAcceptDecline("Ah, I don't know if you are aware of this, but you won't find any monsters here in Ereve. Any form of evil will not be able to set foot on this island. Don't worry, you'll still have your opportunity to train here. Shinsoo created a fantasy creature called Mimi, which will be used as your training partners. Shall we begin?");
else if (status == 3) {
qm.forceStartQuest();
qm.forceCompleteQuest();
qm.gainExp(60);
qm.gainItem(2000020, 10); // Red Potion for Noblesse * 10
qm.gainItem(2000021, 10); // Blue Potion for Noblesse * 10
qm.gainItem(1002869, 1); // Elegant Noblesse Hat * 1
qm.sendOk("Ha, I like your enthusiasm, but you must prepare yourself for the training first before we start things off. Make sure that you are equipped with weapons, and that your skills are calibrated and ready to be used. I also gave you some potions, so have it ready just in case. Let me know when you're ready. You're going to wish that you didn't sign up to become a Cygnus Knight.");
qm.forceStartQuest();
qm.forceCompleteQuest();
} else if (status == 4) {
qm.dispose();
}
}

View File

@@ -34,17 +34,21 @@ function start(mode, type, selection) {
if (mode < 1) {
qm.dispose();
}
if (mode > 0)
else if (mode > 0)
status++;
if (status == 0)
qm.sendSimple("Are you ready to take on a mission? If you can't pass this test, then you won't be able to call yourself a real Knight. Are you sure you can do this? If you are afraid to do this, let me know. I won't tell Neinheart. \r\n #L0#I'll try this later.#l \r\n #L1#I'm not afraid. Let's do this.#l");
else if (selection == 0) {
qm.sendNext("If you call yourself a Knight, then do not hesitate. Show everyone how much courage you have in you.");
else if (status == 1) {
if (selection == 0) {
qm.sendNext("If you call yourself a Knight, then do not hesitate. Show everyone how much courage you have in you.");
qm.dispose();
} else if (selection == 1) {
choice1 = selection;
qm.sendSimple("I'm glad you didn't run away, but... are you sure you want to become a Knight-in-Training? What I am asking is whether you're okay with being a Cygnus Knight, and therefore being tied to the Empress at all times? She may be an Empress, but she's also still just a kid. Are you sure you can fight for her? I won't let Neinheart know so just tell me what you really feel. \r\n #L2#If the Empress wants peace in the Maple World, then I'm down for whatever.#l \r\n #L3#As long as I can become a knight I'll endure whatever #l");
qm.forceStartQuest();
qm.forceCompleteQuest();
}
} else if (status == 2) {
qm.dispose();
} else if (selection == 1) {
choice1 = selection;
qm.sendSimple("I'm glad you didn't run away, but... are you sure you want to become a Knight-in-Training? What I am asking is whether you're okay with being a Cygnus Knight, and therefore being tied to the Empress at all times? She may be an Empress, but she's also still just a kid. Are you sure you can fight for her? I won't let Neinheart know so just tell me what you really feel. \r\n #L2#If the Empress wants peace in the Maple World, then I'm down for whatever.#l \r\n #L3#As long as I can become a knight I'll endure whatever #l");
qm.forceStartQuest();
qm.forceCompleteQuest();
}
}

View File

@@ -5,6 +5,12 @@ function start(mode, type, selection) {
qm.sendNext("Whoa, whoa! Are you really declining my offer? Well, you'll be able to #blevel-up quicker #kwith our help, so let me know if you change your mind. Even if you've declined a Quest, you can receive the Quest again if you just come and talk to me.");
qm.dispose();
} else {
if(mode == 0 && type > 0) {
qm.sendNext("Whoa, whoa! Are you really declining my offer? Well, you'll be able to #blevel-up quicker #kwith our help, so let me know if you change your mind. Even if you've declined a Quest, you can receive the Quest again if you just come and talk to me.");
qm.dispose();
return;
}
if (mode == 1)
status++;
else
@@ -14,7 +20,7 @@ function start(mode, type, selection) {
} else if (status == 1) {
qm.sendNextPrev("If you want to officially become a part of Cygnus Knights, you must first meet the Empress. She's at the center of this island, accompained by Shinsoo. My brothers and I would like to share with you a few things that are considered #bBasic Knowledge#k in Maple World before you go. Would that be okay?");
} else if (status == 2) {
qm.sendOk("Oh, let me warn you that this is a Quest. You may have noticed that NPCs around Maple World occasionally ask you for various favors. A favor of that sort is called a #bQuest#k. You will receive reward items or EXP upon completing Quests, so I strongly suggest you diligently fulfill the favors of Maple NPCs.");
qm.sendNextPrev("Oh, let me warn you that this is a Quest. You may have noticed that NPCs around Maple World occasionally ask you for various favors. A favor of that sort is called a #bQuest#k. You will receive reward items or EXP upon completing Quests, so I strongly suggest you diligently fulfill the favors of Maple NPCs.");
} else if (status == 3) {
qm.sendAcceptDecline("Would you like to meet #bKizan#k, who can tell you about hunting? You can find Kizan by following the arrow to the left.");
} else if (status == 4) {
@@ -31,7 +37,7 @@ function end(mode, type, selection) {
qm.dispose();
} else {
if (status == 0) {
qm.sendNext("Are you the Noblesse my brother Kimu sent? Nice to meet you! I'm Kizan. I'll give you the reward Kimu asked me to give you. Remember, you can check your Inventory by pressing the #bI key#k. Red potions help you recover HP, and blue ones help recover MP. It's a good idea to learn how to use them beforehand so you'll be ready with them when you're in danger. \r\n\r\n#fUI/UIWindow.img/Quest/reward# \r\n\r\n#v2000020# #z2000020# \r\n#v2000021# #z2000021# \r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0#15 exp");
qm.sendOk("Are you the Noblesse my brother Kimu sent? Nice to meet you! I'm Kizan. I'll give you the reward Kimu asked me to give you. Remember, you can check your Inventory by pressing the #bI key#k. Red potions help you recover HP, and blue ones help recover MP. It's a good idea to learn how to use them beforehand so you'll be ready with them when you're in danger. \r\n\r\n#fUI/UIWindow.img/Quest/reward# \r\n\r\n#v2000020# #z2000020# \r\n#v2000021# #z2000021# \r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0#15 exp");
} else if (status == 1) {
if(qm.canHold(2000022) && qm.canHold(2000023)){
if(!qm.isQuestCompleted(21010)) {

View File

@@ -48,7 +48,7 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Ah, it seems like you've successfully hunted a #o100120#. Pretty simple, right? Regular Attacks may be easy to use, but they are pretty weak. Don't worry, though. #p1102006# will teach you how to use more powerful skills. Wait, let me give you a well-deserved quest reward before you go.");
} else if (status == 1) {
qm.sendNextPrev("This equipment is for Noblesses. It's much cooler than what you're wearing right now, isn't it? Follow the arrows to your left to meet my younger brother #b#p1102006##k. How about you change into your new Noblesse outfit before you go? \r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0# \r\n#i1002869# #t1002869# - 1 \r\n#i1052177# #t1052177# - 1 \r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0# 30 exp");
qm.sendPrev("This equipment is for Noblesses. It's much cooler than what you're wearing right now, isn't it? Follow the arrows to your left to meet my younger brother #b#p1102006##k. How about you change into your new Noblesse outfit before you go? \r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0# \r\n#i1002869# #t1002869# - 1 \r\n#i1052177# #t1052177# - 1 \r\n\r\n#fUI/UIWindow.img/QuestIcon/8/0# 30 exp");
} else if (status == 2) {
qm.gainItem(1002869, 1);
qm.gainItem(1052177, 1);

View File

@@ -52,7 +52,7 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Did you bring me a Building Stone and a Drape? Let's see. Ah, these are just what I need! They indeed are a #t4032267# and a #t4032268#! I'll make you a Chair right away.");
} else if (status == 1) {
qm.sendNextPrev("Here it is, a #t3010060#. What do you think? Nifty, huh? You can #bquickly recover your HP by sitting in this Chair#k. It will be stored in the #bSet-up#k window in your Inventory, so confirm that you've received the chair and head over to #b#p1102008##k. You'll see him if you keep following the arrow to the left. \r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0# \r\n#i3010060# 1 #t3010060# \r\n#fUI/UIWindow.img/QuestIcon/8/0# 95 exp");
qm.sendPrev("Here it is, a #t3010060#. What do you think? Nifty, huh? You can #bquickly recover your HP by sitting in this Chair#k. It will be stored in the #bSet-up#k window in your Inventory, so confirm that you've received the chair and head over to #b#p1102008##k. You'll see him if you keep following the arrow to the left. \r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0# \r\n#i3010060# 1 #t3010060# \r\n#fUI/UIWindow.img/QuestIcon/8/0# 95 exp");
} else if (status == 2) {
qm.gainItem(4032267, -1);
qm.gainItem(4032268, -1);

View File

@@ -50,9 +50,10 @@ function start(mode, type, selection) {
} else if (status == 11) {
qm.sendNextPrev("But no one starts as a strong Knight on day one. The Empress didn't want someone strong. She wanted someone with courage whom she could develop into a strong Knight through rigorous training. So, you should first become a Knight-in-Training. We'll talk about your missions when you get to that point.");
} else if (status == 12) {
qm.sendPrev("Take the portal on the left to reach the Training Forest. There, you will find #p1102000#, the Training Instructor, who will teach you how to become stronger. I don't want to find you wandering around aimlessly until you reach Lv. 10, you hear?");
qm.forceCompleteQuest();
qm.dispose();
qm.sendPrev("Take the portal on the left to reach the Training Forest. There, you will find #p1102000#, the Training Instructor, who will teach you how to become stronger. I don't want to find you wandering around aimlessly until you reach Lv. 10, you hear?");
} else if (status == 13) {
qm.dispose();
}
}

38
scripts/quest/20020.js Normal file
View File

@@ -0,0 +1,38 @@
/*
NPC Name: Nineheart
Description: Quest - Cygnus movie Intro
*/
var status = -1;
function start(mode, type, selection) {
if (mode == -1) {
qm.sendOk("Talk to me after you have decided what you really want to do. Whatever you choose, you will not miss out or lose privileges, so don't take this too seriously...");
qm.dispose();
} else {
if(mode == 0 && type > 0 || selection == 1) {
qm.sendOk("Talk to me after you have decided what you really want to do. Whatever you choose, you will not miss out or lose privileges, so don't take this too seriously...");
qm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
qm.sendNext("I can tell you've worked really hard by seeing that you're already at Level 10. I think it's time now for you to break out as a Nobless and officially become the Knight-in-Training. Before doing that, however, I want to ask you one thing. Have you decided which Knight you'd want to beome?");
} else if (status == 1) {
qm.sendNextPrev("There isn't a single path to becoming a Knight. In fact, there are five of them laid out for you. It's up to you to choose which path you'd like to take, but it should definitely be something you will not regret. That's why... I am offering to show you what you'll look like once you become a Knight.");
} else if (status == 2) {
qm.sendSimple("What do you think? Are you interested in seeing yourself as the leader of the Knights? If you have already decided what kind of Knight you'd like to become, then you won't necessarily have to look at it...\r\n\r\n#b#L0#Show me how I'd look like as the leader of the Knights.#l ..#b#L1#No, I'm okay.");
} else if (status == 3) {
qm.sendYesNo("Would you like to see for it yourself right now? A short clip will come out soon. Be prepared for what you are about to witness.");
} else if (status == 4) {
qm.forceStartQuest();
qm.forceCompleteQuest();
qm.warp(913040100, 0);
qm.dispose();
}
}
}

View File

@@ -39,9 +39,11 @@ function start(mode, type, selection) {
if (status == 0)
qm.sendAcceptDecline("Ahhh, you're back. I can see that you're at level 10 now. It looks like you're flashing a glimmer of hope towards becoming a Knight. The basic training has now ended, and it's time for you to make the decision.");
else if (status == 1) {
qm.sendOk("Now look to the left. The leaders of the Knights will be waiting for you. There will be 5 paths for you to choose from. All you need to do is choose one of them. All 5 of them will lead you to the path of a Knight, so... I suggest you pay attention to what each path offers, and select the one you'd most like to take.");
qm.forceStartQuest();
qm.forceCompleteQuest();
qm.sendOk("Now look to the left. The leaders of the Knights will be waiting for you. There will be 5 paths for you to choose from. All you need to do is choose one of them. All 5 of them will lead you to the path of a Knight, so... I suggest you pay attention to what each path offers, and select the one you'd most like to take.");
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -6,6 +6,7 @@ importPackage(Packages.client);
var status = -1;
var jobType = 1;
var canTryFirstJob = true;
function end(mode, type, selection) {
if (mode == 0) {
@@ -21,34 +22,38 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Dawn Warrior?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rDawn Warrior#k.");
qm.dispose();
return;
if (canTryFirstJob) {
canTryFirstJob = false;
if (qm.getPlayer().getJob().getId() != 1100) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rDawn Warrior#k.");
qm.dispose();
return;
}
if (!(qm.canHoldAll([1302077, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.gainItem(1302077, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.DAWNWARRIOR1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
}
if (!(qm.canHoldAll([1302077, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.sendNext("I have just molded your body to make it perfect for a Dawn Warrior. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
if (qm.getPlayer().getJob().getId() != 1100) {
qm.gainItem(1302077, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.DAWNWARRIOR1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
qm.sendNext("I have just molded your body to make it perfect for a Dawn Warrior. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
} else if (status == 2) {
qm.sendNextPrev("I have also expanded your inventory slot counts for your equipment and etc. inventory. Use those slots wisely and fill them up with items required for Knights to carry.");
} else if (status == 3) {
qm.sendNextPrev("I have also given you a hint of #bSP#k, so open the #bSkill Menu#k to acquire new skills. Of course, you can't raise them at all once, and there are some skills out there where you won't be able to acquire them unless you master the basic skills first.");
} else if (status == 4) {
qm.sendNextPrev("Unlike your time as a Nobless, once you become the Dawn Warrior, you will lost a portion of your EXP when you run out of HP, okay?");
qm.sendNextPrev("Unlike your time as a Noblesse, once you become the Dawn Warrior, you will lost a portion of your EXP when you run out of HP, okay?");
} else if (status == 5) {
qm.sendNextPrev("Now... I want you to go out there and show the world how the Knights of Cygnus operate.");
qm.dispose();
} else if (status == 6) {
qm.dispose();
}
}

View File

@@ -6,6 +6,7 @@ importPackage(Packages.client);
var status = -1;
var jobType = 2;
var canTryFirstJob = true;
function end(mode, type, selection) {
if (mode == 0) {
@@ -21,34 +22,38 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Blaze Wizard?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rBlaze Wizard#k.");
qm.dispose();
return;
if (canTryFirstJob) {
canTryFirstJob = false;
if (qm.getPlayer().getJob().getId() != 1200) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rBlaze Wizard#k.");
qm.dispose();
return;
}
if (!(qm.canHoldAll([1372043, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.gainItem(1372043, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.BLAZEWIZARD1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
}
if (!(qm.canHoldAll([1372043, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.sendNext("I have just molded your body to make it perfect for a Blaze Wizard. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
if (qm.getPlayer().getJob().getId() != 1200) {
qm.gainItem(1372043, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.BLAZEWIZARD1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
qm.sendNext("I have just molded your body to make it perfect for a Blaze Wizard. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
} else if (status == 2) {
qm.sendNextPrev("I have also expanded your inventory slot counts for your equipment and etc. inventory. Use those slots wisely and fill them up with items required for Knights to carry.");
} else if (status == 3) {
qm.sendNextPrev("I have also given you a hint of #bSP#k, so open the #bSkill Menu#k to acquire new skills. Of course, you can't raise them at all once, and there are some skills out there where you won't be able to acquire them unless you master the basic skills first.");
} else if (status == 4) {
qm.sendNextPrev("Unlike your time as a Nobless, once you become the Blaze Wizard, you will lost a portion of your EXP when you run out of HP, okay?");
qm.sendNextPrev("Unlike your time as a Noblesse, once you become the Blaze Wizard, you will lost a portion of your EXP when you run out of HP, okay?");
} else if (status == 5) {
qm.sendNextPrev("Now... I want you to go out there and show the world how the Knights of Cygnus operate.");
qm.dispose();
} else if (status == 6) {
qm.dispose();
}
}

View File

@@ -6,6 +6,7 @@ importPackage(Packages.client);
var status = -1;
var jobType = 3;
var canTryFirstJob = true;
function end(mode, type, selection) {
if (mode == 0) {
@@ -21,35 +22,39 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Wind Archer?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rWind Archer#k.");
qm.dispose();
return;
if (canTryFirstJob) {
canTryFirstJob = false;
if (qm.getPlayer().getJob().getId() != 1300) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rWind Archer#k.");
qm.dispose();
return;
}
if (!(qm.canHoldAll([1452051, 1142066]) && qm.canHold(2070000))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.gainItem(2060000, 2000);
qm.gainItem(1452051, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.WINDARCHER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
}
if (!(qm.canHoldAll([1452051, 1142066]) && qm.canHold(2070000))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.sendNext("I have just molded your body to make it perfect for a Wind Archer. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
if (qm.getPlayer().getJob().getId() != 1300) {
qm.gainItem(2060000, 2000);
qm.gainItem(1452051, 1);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.WINDARCHER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
qm.sendNext("I have just molded your body to make it perfect for a Wind Archer. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
} else if (status == 2) {
qm.sendNextPrev("I have also expanded your inventory slot counts for your equipment and etc. inventory. Use those slots wisely and fill them up with items required for Knights to carry.");
} else if (status == 3) {
qm.sendNextPrev("I have also given you a hint of #bSP#k, so open the #bSkill Menu#k to acquire new skills. Of course, you can't raise them at all once, and there are some skills out there where you won't be able to acquire them unless you master the basic skills first.");
} else if (status == 4) {
qm.sendNextPrev("Unlike your time as a Nobless, once you become the Wind Archer, you will lost a portion of your EXP when you run out of HP, okay?");
qm.sendNextPrev("Unlike your time as a Noblesse, once you become the Wind Archer, you will lost a portion of your EXP when you run out of HP, okay?");
} else if (status == 5) {
qm.sendNextPrev("Now... I want you to go out there and show the world how the Knights of Cygnus operate.");
qm.dispose();
} else if (status == 6) {
qm.dispose();
}
}

View File

@@ -6,6 +6,7 @@ importPackage(Packages.client);
var status = -1;
var jobType = 4;
var canTryFirstJob = true;
function end(mode, type, selection) {
if (mode == 0) {
@@ -21,35 +22,39 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Night Walker?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rNight Walker#k.");
qm.dispose();
return;
if (canTryFirstJob) {
canTryFirstJob = false;
if (qm.getPlayer().getJob().getId() != 1400) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rNight Walker#k.");
qm.dispose();
return;
}
if (!(qm.canHoldAll([1472061, 1142066]) && qm.canHold(2070000))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.gainItem(1472061, 1);
qm.gainItem(2070000, 800);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.NIGHTWALKER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
}
if (!(qm.canHoldAll([1472061, 1142066]) && qm.canHold(2070000))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.sendNext("I have just molded your body to make it perfect for a Night Walker. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
if (qm.getPlayer().getJob().getId() != 1400) {
qm.gainItem(1472061, 1);
qm.gainItem(2070000, 800);
qm.gainItem(1142066, 1);
qm.changeJob(MapleJob.NIGHTWALKER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
qm.sendNext("I have just molded your body to make it perfect for a Night Walker. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
} else if (status == 2) {
qm.sendNextPrev("I have also expanded your inventory slot counts for your equipment and etc. inventory. Use those slots wisely and fill them up with items required for Knights to carry.");
} else if (status == 3) {
qm.sendNextPrev("I have also given you a hint of #bSP#k, so open the #bSkill Menu#k to acquire new skills. Of course, you can't raise them at all once, and there are some skills out there where you won't be able to acquire them unless you master the basic skills first.");
} else if (status == 4) {
qm.sendNextPrev("Unlike your time as a Nobless, once you become the Night Walker, you will lost a portion of your EXP when you run out of HP, okay?");
qm.sendNextPrev("Unlike your time as a Noblesse, once you become the Night Walker, you will lost a portion of your EXP when you run out of HP, okay?");
} else if (status == 5) {
qm.sendNextPrev("Now... I want you to go out there and show the world how the Knights of Cygnus operate.");
qm.dispose();
} else if (status == 6) {
qm.dispose();
}
}

View File

@@ -6,6 +6,7 @@ importPackage(Packages.client);
var status = -1;
var jobType = 5;
var canTryFirstJob = true;
function end(mode, type, selection) {
if (mode == 0) {
@@ -21,34 +22,38 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Thunder Breaker?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rThunder Breaker#k.");
qm.dispose();
return;
if (canTryFirstJob) {
canTryFirstJob = false;
if (qm.getPlayer().getJob().getId() != 1500) {
if(!qm.canGetFirstJob(jobType)) {
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rThunder Breaker#k.");
qm.dispose();
return;
}
if (!(qm.canHoldAll([1482014, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.gainItem(1482014, 1);
qm.gainItem(1142066, 1);
qm.getPlayer().changeJob(MapleJob.THUNDERBREAKER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
}
if (!(qm.canHoldAll([1482014, 1142066]))) {
qm.sendOk("Make some room in your inventory and talk back to me.");
qm.dispose();
return;
}
qm.sendNext("I have just molded your body to make it perfect for a Thunder Breaker. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
if (qm.getPlayer().getJob().getId() != 1500) {
qm.gainItem(1482014, 1);
qm.gainItem(1142066, 1);
qm.getPlayer().changeJob(MapleJob.THUNDERBREAKER1);
qm.getPlayer().resetStats();
}
qm.forceCompleteQuest();
qm.sendNext("I have just molded your body to make it perfect for a Thunder Breaker. If you wish to become more powerful, use Stat Window (S) to raise the appropriate stats. If you aren't sure what to raise, just click on #bAuto#k.");
} else if (status == 2) {
qm.sendNextPrev("I have also expanded your inventory slot counts for your equipment and etc. inventory. Use those slots wisely and fill them up with items required for Knights to carry.");
} else if (status == 3) {
qm.sendNextPrev("I have also given you a hint of #bSP#k, so open the #bSkill Menu#k to acquire new skills. Of course, you can't raise them at all once, and there are some skills out there where you won't be able to acquire them unless you master the basic skills first.");
} else if (status == 4) {
qm.sendNextPrev("Unlike your time as a Nobless, once you become the Thunder Breaker, you will lost a portion of your EXP when you run out of HP, okay?");
qm.sendNextPrev("Unlike your time as a Noblesse, once you become the Thunder Breaker, you will lost a portion of your EXP when you run out of HP, okay?");
} else if (status == 5) {
qm.sendNextPrev("Now... I want you to go out there and show the world how the Knights of Cygnus operate.");
qm.dispose();
} else if (status == 6) {
qm.dispose();
}
}

View File

@@ -44,7 +44,9 @@ function start(mode, type, selection) {
} else if (status == 1) {
qm.startQuest();
qm.completeQuest();
qm.sendOk("If you wish to take the Knighthood Exam, please come to Ereve. Each Chief Knight will test your abilities, and if you meet their standards, then you will officially become a Knight.");
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -48,19 +48,18 @@ function start(mode, type, selection) {
nPSP = (qm.getPlayer().getLevel() - 70) * 3;
if (qm.getPlayer().getRemainingSp() > nPSP) {
qm.sendNext("You still have way too much #bSP#k with you. You can't earn a new title like that, I strongly urge you to use more SP on your 1st and 2nd level skills.");
qm.dispose();
} else {
if (!qm.canHold(1142068)) {
qm.sendNext("If you wish to receive the medal befitting the title, you may want to make some room in your equipment inventory.");
qm.dispose();
} else {
qm.completeQuest();
qm.gainItem(1142068, 1);
qm.getPlayer().changeJob(Packages.client.MapleJob.DAWNWARRIOR3);
qm.sendOk("#h #, as of this moment, you are an Advanced Knight. From this moment on, you shall carry yourself with dignity and respect befitting your new title, an Advanced Knight of Cygnus Knights. May your glory continue to shine as bright as this moment.");
qm.completeQuest();
qm.dispose();
}
}
} else if (status == 3) {
qm.dispose();
}
}
}

View File

@@ -48,20 +48,18 @@ function start(mode, type, selection) {
nPSP = (qm.getPlayer().getLevel() - 70) * 3;
if (qm.getPlayer().getRemainingSp() > nPSP) {
qm.sendNext("You still have way too much #bSP#k with you. You can't earn a new title like that, I strongly urge you to use more SP on your 1st and 2nd level skills.");
qm.dispose();
} else {
if (!qm.canHold(1142068)) {
qm.sendNext("If you wish to receive the medal befitting the title, you may want to make some room in your equipment inventory.");
qm.dispose();
} else {
qm.completeQuest();
qm.gainItem(1142068, 1);
qm.getPlayer().changeJob(Packages.client.MapleJob.BLAZEWIZARD3);
qm.sendOk("#h #, as of this moment, you are an Advanced Knight. From this moment on, you will train yourself with fervor as you will lead your group of Knights for the safety of this world. That fervor will provide you with plenty of courage.");
qm.completeQuest();
qm.dispose();
}
}
} else if (status == 3) {
qm.dispose();
}
}
}

View File

@@ -48,20 +48,18 @@ function start(mode, type, selection) {
nPSP = (qm.getPlayer().getLevel() - 70) * 3;
if (qm.getPlayer().getRemainingSp() > nPSP) {
qm.sendNext("You still have way too much #bSP#k with you. You can't earn a new title like that, I strongly urge you to use more SP on your 1st and 2nd level skills.");
qm.dispose();
} else {
if (!qm.canHold(1142068)) {
qm.sendNext("If you wish to receive the medal befitting the title, you may want to make some room in your equipment inventory.");
qm.dispose();
} else {
qm.completeQuest();
qm.gainItem(1142068, 1);
qm.getPlayer().changeJob(Packages.client.MapleJob.WINDARCHER3);
qm.sendOk("#h #, as of this moment, you are an Advanced Knight. From this moment on, you will be carrying a while lot of responsibility befitting your new title as an Advanced Knight of Cygnus Knights. You may view the world in a carefree mode, but please remember what your mission is.");
qm.completeQuest();
qm.dispose();
}
}
} else if (status == 3) {
qm.dispose();
}
}
}

View File

@@ -48,20 +48,18 @@ function start(mode, type, selection) {
nPSP = (qm.getPlayer().getLevel() - 70) * 3;
if (qm.getPlayer().getRemainingSp() > nPSP) {
qm.sendNext("You still have way too much #bSP#k with you. You can't earn a new title like that, I strongly urge you to use more SP on your 1st and 2nd level skills.");
qm.dispose();
} else {
if (!qm.canHold(1142068)) {
qm.sendNext("If you wish to receive the medal befitting the title, you may want to make some room in your equipment inventory.");
qm.dispose();
} else {
qm.gainItem(1142068, 1);
qm.getPlayer().changeJob(Packages.client.MapleJob.NIGHTWALKER3);
qm.sendOk("#h #, from here on out, you are an Advanced Knight of Cygnus Knights. The title comes with a newfound broad view on everything. You may encounter temptations here and there, but I want you to keep your faith and beliefs intact and do not succumb to the darkness.");
qm.completeQuest();
qm.dispose();
qm.sendOk("#h #, from here on out, you are an Advanced Knight of Cygnus Knights. The title comes with a newfound broad view on everything. You may encounter temptations here and there, but I want you to keep your faith and beliefs intact and do not succumb to the darkness.");
}
}
} else if (status == 3) {
qm.dispose();
}
}
}

View File

@@ -48,20 +48,18 @@ function start(mode, type, selection) {
nPSP = (qm.getPlayer().getLevel() - 70) * 3;
if (qm.getPlayer().getRemainingSp() > nPSP) {
qm.sendNext("You still have way too much #bSP#k with you. You can't earn a new title like that, I strongly urge you to use more SP on your 1st and 2nd level skills.");
qm.dispose();
} else {
if (!qm.canHold(1142068)) {
qm.sendNext("If you wish to receive the medal befitting the title, you may want to make some room in your equipment inventory.");
qm.dispose();
} else {
qm.gainItem(1142068, 1);
qm.getPlayer().changeJob(Packages.client.MapleJob.THUNDERBREAKER3);
qm.sendOk("#h #, from here on out, you will become an Advanced Knight of the Knights of Cygnus! As your standing rises, so does the difficulty of the tasks you will be receiving. But challenge is good, right? You have to enjoy life. Enjoy what's given to you!");
qm.completeQuest();
qm.dispose();
qm.sendOk("#h #, from here on out, you will become an Advanced Knight of the Knights of Cygnus! As your standing rises, so does the difficulty of the tasks you will be receiving. But challenge is good, right? You have to enjoy life. Enjoy what's given to you!");
}
}
} else if (status == 3) {
qm.dispose();
}
}
}

View File

@@ -1,7 +1,6 @@
importPackage(Packages.client);
var item;
var stance;
var status = -1;
var item;
@@ -23,8 +22,7 @@ function end(mode, type, selection) {
return;
}
stance = qm.getPlayer().getJobStyle();
var stance = qm.getPlayer().getJobStyle();
if(stance == Packages.client.MapleJob.WARRIOR) item = 1072003;
else if(stance == Packages.client.MapleJob.MAGICIAN) item = 1072077;
else if(stance == Packages.client.MapleJob.BOWMAN || stance == Packages.client.MapleJob.CROSSBOWMAN) item = 1072081;
@@ -34,11 +32,13 @@ function end(mode, type, selection) {
qm.gainItem(item, 1);
qm.gainItem(4000007, -150);
qm.gainExp(2200);
qm.completeQuest();
qm.sendOk("Alright, if you need work sometime down the road, feel free to come back and see me. This town sure can use a person like you for help~");
}
else if (status == 2) {
qm.dispose();
}
}
}

52
scripts/quest/20514.js Normal file
View File

@@ -0,0 +1,52 @@
/*
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/>.
*/
// @Author Ronan
importPackage(Packages.constants.game);
importPackage(Packages.server);
function raiseOpen() {
var chr = qm.getPlayer();
var questStatus = chr.getQuestStatus(qm.getQuest());
if (questStatus == 0) {
qm.setQuestProgress(20515, 0, chr.getLevel());
qm.setQuestProgress(20515, 1, chr.getExp());
} else if (questStatus == 1) { // update mimiana progress...
var diffExp = chr.getExp() - qm.getQuestProgressInt(20515, 1);
var initLevel = qm.getQuestProgressInt(20515, 0);
for (var i = initLevel; i < chr.getLevel(); i++) {
diffExp += ExpTable.getExpNeededForLevel(i);
}
if (diffExp > 0) { // thanks IxianMace for noticing Mimiana egg not following progress by EXP
var consItem = MapleItemInformationProvider.getInstance().getQuestConsumablesInfo(4220137);
var exp = consItem.exp;
var grade = consItem.grade;
qm.setQuestProgress(20514, 0, Math.min(diffExp, exp * grade));
}
}
qm.dispose();
}

View File

@@ -44,6 +44,7 @@ function start(mode, type, selection) {
qm.forceStartQuest();
qm.forceCompleteQuest();
qm.sendOk("There's a special mount that only the Cygnus Knights can enjoy. If you are interested, visit #bEreve#k. I will give you more information on it.");
qm.dispose();
}
} else if (status == 3) {
qm.dispose();
}
}

View File

@@ -54,6 +54,7 @@ function start(mode, type, selection) {
qm.forceStartQuest();
if(!qm.haveItem(4220137)) qm.gainItem(4220137);
qm.sendOk("Mimiana's egg can be raised by #bsharing your daily experiences with it#k. Once Mimiana fully grows up, please come see me.");
} else if (status == 4) {
qm.dispose();
}
}
@@ -70,17 +71,15 @@ function end(mode, type, selection) {
} else if (status == 1) { //pretty sure there would need to have an egg EXP condition... Whatever.
if(!qm.haveItem(4220137)) {
qm.sendOk("I see, you lost your egg... You need to be more careful when raising a baby Mimiana!");
qm.dispose();
return;
}
qm.sendOk("Oh, were you able to awaken Mimiana Egg? That's amazing... Most knights can't even dream of awakening it in such a short amount of time.");
qm.forceCompleteQuest();
qm.forceCompleteQuest();
qm.gainItem(4220137, -1);
qm.gainExp(37600);
qm.dispose();
qm.sendOk("Oh, were you able to awaken Mimiana Egg? That's amazing... Most knights can't even dream of awakening it in such a short amount of time.");
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -55,6 +55,7 @@ function start(mode, type, selection) {
if(!qm.haveItem(4220137)) qm.gainItem(4220137);
qm.sendOk("Mimiana's egg can be raised by #bsharing your daily experiences with it#k. Once Mimiana fully grows up, please come see me. One more thing, I talked with #p2060005# beforehand and retrieved the #b#t4032117##k for you. The price to charge remains the same: #r10,000,000 mesos#k.");
} else if (status == 4) {
qm.dispose();
}
}
@@ -80,14 +81,13 @@ function end(mode, type, selection) {
return;
}
qm.sendOk("Okay, you now may mount Mimiana again. Take good care of it this time.");
qm.forceCompleteQuest();
qm.gainItem(1902005, 1);
qm.gainItem(4220137, -1);
qm.gainMeso(-10000000);
qm.forceCompleteQuest();
qm.dispose();
qm.sendOk("Okay, you now may mount Mimiana again. Take good care of it this time.");
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -38,12 +38,12 @@ function start(mode, type, selection) {
var mount = qm.getPlayer().getMount();
if(mount != null && mount.getLevel() >= 3) {
qm.sendNext("Alright, I'll get you started in how to train Mimio, the next step for Mimianas. When you're ready, talk to me again.");
qm.forceCompleteQuest();
qm.sendNext("Alright, I'll get you started in how to train Mimio, the next step for Mimianas. When you're ready, talk to me again.");
} else {
qm.sendNext("It looks like your Mimiana haven't reached #rlevel 3#k yet. Please train it a bit more before trying to advance it.");
}
} else if (status == 1) {
qm.dispose();
}
}

View File

@@ -9,7 +9,7 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendAcceptDecline("#h0#. Have you been slacking off on training since reaching Level 100? We all know how powerful you are, but the training is not complete. Take a look at these Knight Commanders. They train day and night, preparing themselves for the possible encounter with the Black Mage.");
} else {
} else if (status == 1) {
if (mode == 1) {
qm.forceStartQuest();
}

View File

@@ -14,8 +14,10 @@ function start(mode, type, selection) {
qm.sendOk("Well, what you're doing right now doesn't make you look like someone that's humble. You just look complacent by doing that, and that's never a good thing.");
} else {
qm.forceStartQuest();
qm.dispose();
}
qm.dispose();
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -48,8 +48,9 @@ function start(mode, type, selection) {
} else if (status == 4) {
qm.forceStartQuest();
qm.sendOk("My brother #bPuir #kis just down the street, and he's been dying to meet you! I know you're busy, but could you please stop by and say hello to Puir? Please...");
} else if (status == 5) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
@@ -83,7 +84,7 @@ function end(mode, type, selection) {
qm.sendNext("#b(Your skills are nowhere close to being hero-like... But a sword? Have you ever even held a sword in your lifetime? You can't remember... How do you even equip it?)", 3);
}else
qm.dropMessage(1,"Your inventory is full");
} else if (status == 6) {
} else if (status == 6) {
qm.guideHint(16);
qm.dispose();
}

View File

@@ -71,14 +71,16 @@ function end(mode, type, selection) {
if(qm.isQuestCompleted(21012))
qm.dropMessage(1,"Unknown Error");
else if(qm.canHold(2000022) && qm.canHold(2000023)){
qm.forceCompleteQuest();
qm.gainExp(57);
qm.gainItem(2000022, 10);
qm.gainItem(2000023, 10);
qm.forceCompleteQuest();
qm.sendOk("#b(Even if you're really the hero everyone says you are... What good are you without any skills?)", 3);
qm.dispose();
}else
} else {
qm.dropMessage(1,"Your inventory is full");
qm.dispose();
qm.dispose();
}
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -73,7 +73,7 @@ function end(mode, type, selection) {
qm.gainItem(4032309, -1);
qm.gainItem(4032310, -1);
qm.gainItem(3010062, 1);
qm.sendNextPrev("Here, a fully-assembled chair, just for you! I've always wanted to give you a chair as a gift, because I know a hero can occasionally use some good rest. Tee hee.", 9);
qm.sendNext("Here, a fully-assembled chair, just for you! I've always wanted to give you a chair as a gift, because I know a hero can occasionally use some good rest. Tee hee.", 9);
} else if (status == 2) {
qm.sendNext("A hero is not invincible. A hero is human. I'm sure you will face challenges and even falter at times. But you are a hero because you have what it takes to overcome any obstacles you may encounter.", 9);
} else if (status == 3) {

View File

@@ -31,6 +31,7 @@ function start(mode, type, selection) {
qm.sendOk("If the #p1201001# reacts to you, then we'll know that you're #bAran#k, the hero that wielded a #p1201001#.", 8);
qm.showIntro("Effect/Direction1.img/aranTutorial/ClickPoleArm");
}
qm.dispose();
}
} else if (status == 8) {
qm.dispose();
}
}

View File

@@ -20,7 +20,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
importPackage(Packages.client);
importPackage(Packages.constants);
importPackage(Packages.config);
status = -1;
@@ -48,7 +48,7 @@ function start(mode, type, selection) {
qm.changeJobById(2100);
qm.resetStats();
if (ServerConstants.USE_FULL_ARAN_SKILLSET) {
if (YamlConfig.config.server.USE_FULL_ARAN_SKILLSET) {
qm.teachSkill(21000000, 0, 10, -1); //combo ability
qm.teachSkill(21001003, 0, 20, -1); //polearm booster
}

View File

@@ -35,6 +35,7 @@ function start(mode, type, selection) {
qm.sendAcceptDecline("How is the training going? Wow, you've reached such a high level! That's amazing. I knew you would do just fine on Victoria Island... Oh, look at me. I'm wasting your time. I know you're busy, but you'll have to return to the island for a bit.");
else if(status == 1){
qm.sendOk("Your #b#p1201001##k in #b#m140000000##k is acting strange all of a sudden. According to the records, the Polearm acts this way when it is calling for its master. #bPerhaps it's calling for you#k. Please return to the island and check things out.");
} else if(status == 2){
qm.startQuest();
qm.dispose();
}

View File

@@ -20,7 +20,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
importPackage(Packages.client);
importPackage(Packages.constants);
importPackage(Packages.config);
var status = -1;
@@ -60,14 +60,13 @@ function end(mode, type, selection) {
if(!qm.isQuestCompleted(21201)) {
if(!qm.canHold(1142130)) {
qm.sendOk("Wow, your #bequip#k inventory is full. I need you to make at least 1 empty slot to complete this quest."); // thanks MedicOP for finding an issue here
qm.dispose();
return;
}
qm.gainItem(1142130, true);
qm.changeJobById(2110);
if (ServerConstants.USE_FULL_ARAN_SKILLSET) {
if (YamlConfig.config.server.USE_FULL_ARAN_SKILLSET) {
qm.teachSkill(21100000, 0, 20, -1); //polearm mastery
qm.teachSkill(21100002, 0, 30, -1); //final charge
qm.teachSkill(21100004, 0, 20, -1); //combo smash
@@ -78,6 +77,7 @@ function end(mode, type, selection) {
}
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.");
} else if (status == 9) {
qm.dispose();
}
}

View File

@@ -42,7 +42,7 @@ function start(mode, type, selection) {
qm.sendAcceptDecline("I'm too old to make weapons now, but.. I do have a Polearm that I made way back when. It's still in excellent shape. But I can't give it to you because that Polearm is extremely sharp, so sharp it could hurt its master. Do you still want it?");
} else if(status == 5) {
qm.sendOk("Well, if you say so.. I can't object to that. I'll tell you what. I'll give you a quick test, and if you pass it, the Giant Polearm is yours. Head over to the #bTraining Center#k and take on the #rScarred Bears#k that are there. Your job is to bring back #b30 Sign of Acceptances#k.");
} else {
} else if(status == 6) {
qm.startQuest();
qm.dispose();
}

View File

@@ -23,16 +23,33 @@
Author : Ronan Lana
*/
var status = -1;
function end(mode, type, selection) {
if(!qm.haveItem(4031619, 1)) {
qm.sendOk("Please bring me the box with the supplies that lies with #b#p2012019##k...");
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.haveItem(4031619, 1)) {
qm.sendOk("Please bring me the box with the supplies that lies with #b#p2012019##k...");
}
else {
qm.gainItem(4031619, -1);
qm.sendOk("Oh, you brought #p2012019#'s box! Thank you.");
qm.forceCompleteQuest();
}
} else if (status == 1) {
qm.dispose();
}
}
else {
qm.gainItem(4031619, -1);
qm.sendOk("Oh, you brought #p2012019#'s box! Thank you.");
qm.forceCompleteQuest();
}
qm.dispose();
}

View File

@@ -23,16 +23,33 @@
Author : Ronan Lana
*/
var status = -1;
function end(mode, type, selection) {
if(!qm.haveItem(4031619, 1)) {
qm.sendOk("Please bring me the box with the supplies that lies with #b#p2012019##k...");
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.haveItem(4031619, 1)) {
qm.sendOk("Please bring me the box with the supplies that lies with #b#p2012019##k...");
}
else {
qm.gainItem(4031619, -1);
qm.sendOk("Oh, you brought #p2012019#'s box! Thank you.");
qm.forceCompleteQuest();
}
} else if (status == 1) {
qm.dispose();
}
}
else {
qm.gainItem(4031619, -1);
qm.sendOk("Oh, you brought #p2012019#'s box! Thank you.");
qm.forceCompleteQuest();
}
qm.dispose();
}

View File

@@ -23,9 +23,27 @@
Author : Ronan Lana
*/
var status = -1;
function end(mode, type, selection) {
qm.sendOk("I see you're ready for the task. Now, pay heed to the details of your mission...");
qm.forceCompleteQuest();
qm.dispose();
if (mode == -1) {
qm.dispose();
} else {
if(mode == 0 && type > 0) {
qm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
qm.sendOk("I see you're ready for the task. Now, pay heed to the details of your mission...");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}

View File

@@ -11,13 +11,14 @@ function start(mode, type, selection) {
return;
}
if (status == 0) {
qm.sendNext("How's the training going? Hmmm... Level 70... That's still not much, but you have really made some strides since the first time I met you fresh out of ice. Keep training, and I am sure one day you'll be able to regain your pre-battle form.");
if (status == 0) {
qm.sendNext("How's the training going? Hmmm... Level 70... That's still not much, but you have really made some strides since the first time I met you fresh out of ice. Keep training, and I am sure one day you'll be able to regain your pre-battle form.");
} else if (status == 1) {
qm.sendAcceptDecline("But before doing that, I'll need you back in Rein for a bit. #bYour pole arm is reacting strange once again. It looks like it has something it wants to tell you. #kIt might be able to awaken your hidden powers, so please come immediately.");
} else if (status == 2) {
qm.sendOk("Anyway, I thought it was really something that a weapon has its own identity, but seriously... this weapon does not stop talking. It first kept on crying because I wasn't really paying attention to its needs, and... ahh, please keep this a secret from the pole arm. I don't think it's a good idea to upset the weapon any further.");
qm.forceStartQuest();
qm.dispose();
}
qm.sendAcceptDecline("But before doing that, I'll need you back in Rein for a bit. #bYour pole arm is reacting strange once again. It looks like it has something it wants to tell you. #kIt might be able to awaken your hidden powers, so please come immediately.");
} else if (status == 2) {
qm.forceStartQuest();
qm.sendOk("Anyway, I thought it was really something that a weapon has its own identity, but seriously... this weapon does not stop talking. It first kept on crying because I wasn't really paying attention to its needs, and... ahh, please keep this a secret from the pole arm. I don't think it's a good idea to upset the weapon any further.");
} else if (status == 3) {
qm.dispose();
}
}

View File

@@ -24,8 +24,9 @@ function end(mode, type, selection) {
} else if (status == 5) {
qm.sendNextPrev("...No hope, no dreams... Nooooo!!");
} else if (status == 6) {
qm.sendNextPrev("#b(Maha is beginning to really get hysterical. I better leave right this minute. Maybe Lirin can do something about it.)", 2);
qm.completeQuest();
qm.dispose();
}
qm.sendNextPrev("#b(Maha is beginning to really get hysterical. I better leave right this minute. Maybe Lilin can do something about it.)", 2);
} else if (status == 7) {
qm.dispose();
}
}

View File

@@ -20,7 +20,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
importPackage(Packages.client);
importPackage(Packages.constants);
importPackage(Packages.config);
var status = -1;
@@ -51,7 +51,7 @@ function end(mode, type, selection) {
qm.gainItem(1142131, true);
qm.changeJobById(2111);
if (ServerConstants.USE_FULL_ARAN_SKILLSET) {
if (YamlConfig.config.server.USE_FULL_ARAN_SKILLSET) {
qm.teachSkill(21110002, 0, 20, -1); //full swing
}
@@ -59,6 +59,7 @@ function end(mode, type, selection) {
}
qm.sendNext("Come on, keep training so you can get all your abilities back, and that way we can explore together once more!");
} else if (status == 3) {
qm.dispose();
}
}

View File

@@ -14,8 +14,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendAcceptDecline("How is the training going? I know you're busy, but please come to #bRien#k immediately. The #bMaha#k has started to act weird again... But its even weirder now. It's different from before. It's... darker than usual.");
} else if (status == 1) {
qm.sendOk("I have a bad feeling about this. Please come back here. I've never seen or herd Maha like this, but I can sense the suffering its going through. #bOnly you, the master of Maha, can do something about it!");
qm.startQuest();
qm.dispose();
}
qm.startQuest();
qm.sendOk("I have a bad feeling about this. Please come back here. I've never seen or herd Maha like this, but I can sense the suffering its going through. #bOnly you, the master of Maha, can do something about it!");
} else if (status == 2) {
qm.dispose();
}
}

View File

@@ -68,7 +68,9 @@ function end(mode, type, selection) {
qm.completeQuest();
}
qm.sendNext("Your skills have been restored. Those skills have been dormant for so long that you'll have to re-train yourself, but you'll be as good as new once you complete your training.");
}
} else if(status == 3) {
qm.dispose();
}
}
function spawnMob(x, y, id, map) {

View File

@@ -1,9 +1,26 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("Some bats seems to accompany this tree wherever it goes. Creepy...");
qm.forceCompleteQuest();
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("Some bats seems to accompany this tree wherever it goes. Creepy...");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.dispose();

View File

@@ -1,10 +1,28 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("It is said that a old tree gets alive whenever something sinister disturbs this land... We need a hero that fends our village of that creature!");
qm.forceCompleteQuest();
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("It is said that a old tree gets alive whenever something sinister disturbs this land... We need a hero that fends our village of that creature!");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.dispose();
}

View File

@@ -1,10 +1,28 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("The tree has a scarf upon its branches, I tell you.");
qm.forceCompleteQuest();
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("The tree has a scarf upon its branches, I tell you.");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.dispose();
}

View File

@@ -1,10 +1,28 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("The tree has a strange carving that resembles a scary face.");
qm.forceCompleteQuest();
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("The tree has a strange carving that resembles a scary face.");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.dispose();
}

View File

@@ -1,10 +1,28 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("That tree... I've heard of it before, I even studied its behavior! If I recall correctly, the #bStumpy#k comes alive when the soil deems infertile by some sort of magic, and those stumps who evolves under these conditions starts to drain these suspicious magical sources instead of water and minerals for living, which makes them very threathening to people and villages nearby.");
qm.forceCompleteQuest();
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("That tree... I've heard of it before, I even studied its behavior! If I recall correctly, the #bStumpy#k comes alive when the soil deems infertile by some sort of magic, and those stumps who evolves under these conditions starts to drain these suspicious magical sources instead of water and minerals for living, which makes them very threathening to people and villages nearby.");
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.dispose();
}

View File

@@ -39,9 +39,9 @@ function start(mode, type, selection) {
} else if (status == 1) {
qm.sendAcceptDecline("Picked your interest, huh? Very well, first you must make your way to #bAqua#k, there is a person there who makes #rfood for wolf cubs#k. Bring one portion to me, and I shall deem you able to tame and take care of one. What do you say, will you try for it?");
} else if (status == 2) {
qm.sendNext("Alright. The one you must meet is #bNanuke#k, she is on top of a #rsnowy whale#k, somewhere in the ocean. Good luck!");
qm.forceStartQuest();
qm.sendNext("Alright. The one you must meet is #bNanuke#k, she is on top of a #rsnowy whale#k, somewhere in the ocean. Good luck!");
} else if (status == 3) {
qm.dispose();
}
}

View File

@@ -44,7 +44,6 @@ function start(mode, type, selection) {
var em = qm.getEventManager("Aran_3rdmount");
if (em == null) {
qm.sendOk("Sorry, but the 3rd mount quest (Wolves) is closed.");
qm.dispose();
return;
}
else {
@@ -54,9 +53,9 @@ function start(mode, type, selection) {
} else {
qm.forceStartQuest();
}
qm.dispose();
}
} else if (status == 4) {
qm.dispose();
}
}
}

View File

@@ -71,11 +71,12 @@ function end(mode, type, selection) {
}
qm.sendNext("Step aside, behold the mighty prowess of Maha!!");
} else {
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainItem(1902017, -1);
qm.gainItem(1902018, 1);
qm.forceCompleteQuest();
qm.dispose();
}
}

View File

@@ -33,8 +33,9 @@ function start(mode, type, selection) {
qm.forceStartQuest();
}
} else if (status == 6) {
qm.sendPrev("You'll find a Training Center if you exit to the #bleft#k. There, you'll meet #b#p1202006##k. I'm a bit worried because I think he may be struggling with bouts of Alzheimer's, but he spent a long time researching skills to help you. I'm sure you'll learn a thing or two from him.");
qm.dispose();
qm.sendPrev("You'll find a Training Center if you exit to the #bleft#k. There, you'll meet #b#p1202006##k. I'm a bit worried because I think he may be struggling with bouts of Alzheimer's, but he spent a long time researching skills to help you. I'm sure you'll learn a thing or two from him.");
} else if (status == 7) {
qm.dispose();
}
}

View File

@@ -35,6 +35,7 @@ function start(mode, type, selection) {
} else if (status == 7) {
qm.forceStartQuest();
qm.sendOk("Now go and take on those monstrous #o9300343#s!");
} else if (status == 8) {
qm.dispose();
}
}
@@ -70,6 +71,7 @@ function end(mode, type, selection) {
qm.sendNext("(You remembered the #bCombo Ability#k skill! You were skeptical of the training at first, since the old man suffers from Alzheimer's and all, but boy, was it effective!)", 2);
} else if (status == 4) {
qm.sendPrev("Now report back to #p1201000#. I know she'll be ecstatic when she sees the progress you've made!");
} else if (status == 5) {
qm.dispose();
}
}

View File

@@ -25,7 +25,8 @@ function start(mode, type, selection) {
qm.sendNext("I wonder what triggered this in the first place. There is no way this puppet was naturally created, which means someone planned this. I should keep an eye on the #o1210102#s.", 9);
} else if (status == 3) {
qm.sendPrev("#b(You were able to find out what caused the changes in the #o1210102#s. You should report to #p1002104# and deliver the information you've gathered.)#k", 2);
qm.dispose();
} else if (status == 4) {
qm.dispose();
}
}

View File

@@ -1,49 +0,0 @@
/*
This file is part of the HeavenMS MapleStory Server
Copyleft (L) 2016 - 2019 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.forceCompleteQuest();
}
qm.dispose();
}
}
}

View File

@@ -61,7 +61,7 @@ function end(mode, type, selection) {
qm.sendNext("Aran, thank you very much! Somehow the Puppeteer managed to bypass the security of Lith Harbor. He was trying to seek revenge because of the other day. Luckily, you came by. Nicely done!");
} else if(status == 1) {
qm.sendNext("I will teach you the #rPolearm Mastery#k skill, to reward your actions here. You will be able to improve your accuracy and the overall mastery of your polearm arts.");
} else {
} else if(status == 2) {
qm.gainExp(8000);
qm.teachSkill(21100000, 0, 20, -1); // polearm mastery

View File

@@ -63,11 +63,12 @@ function end(mode, type, selection) {
qm.sendNext("They were after the #bcrystal seal of Victoria#k. These seals are what repels the Black Mage to further taking the continents into his grasp at once. Each continent has one, Victoria's now is safe and sound.");
} else if(status == 2) {
qm.sendNext("For your bravery inputted on these series of missions, I will now reward you properly. Behold, the #rCombo Drain#k Skill: that let's you heal back a portion of damage dealt to the monsters.");
} else {
} else if(status == 3) {
qm.forceCompleteQuest();
qm.gainExp(12500);
qm.teachSkill(21100005, 0, 20, -1); // combo drain
qm.forceCompleteQuest();
qm.dispose();
}
}

View File

@@ -42,7 +42,7 @@ function start(mode, type, selection) {
qm.sendNextPrev("It seems like something strange is happening in Orbis in Ossyria. It's a bit different from when we were dealing with the puppeteer, but my instincts tell me it has to do with the Black Wings. Please head over to Orbis.");
} else if(status == 3) {
qm.sendAcceptDecline("#bLisa the Fairy#k in Orbis should know a thing or two. Go see Lisa first, she knows someone that knows the whereabouts of the sealing stone. That person #rwill require a password from you#k, when requested use the #bThere's something strange going on in Orbis....#k keyword to talk to her. Understood?");
} else {
} else if(status == 4) {
qm.forceStartQuest();
qm.dispose();
}

View File

@@ -34,18 +34,23 @@ function start(mode, type, selection) {
else
status--;
if (status == 0) {
qm.sendGetText("Hm, what do you want?");
if (status == 0) { // thanks ZERO傑洛 for noticing this quest shouldn't need a pw -- GMS-like string data thanks to skycombat
qm.sendNext("What is it? I usually don't welcome uninvited guests, but you have a mysterious aura that makes me curious about what you have to say.", 9);
} else if (status == 1) {
var text = qm.getText();
if(text != "There's something strange going on in Orbis....") {
qm.sendNext("No business to deal with? I won't brook loitering around here, go away.");
qm.dispose();
} else {
qm.sendNext("Oh, that's right. I can sense the power emanating from you, as well. So I shall entrust something to you.");
}
} else {
qm.sendNext("(You tell her about Giant Nependeath.)", 3);
} else if (status == 2) {
qm.sendNext("Giant Nependeath? It's definitely a big problem, but I don't think it's enough to really affect Orbis. Wait, where did you say the Giant Nependeath was, again?", 9);
} else if (status == 3) {
qm.sendNext("Neglected Strolling Path.", 3);
} else if (status == 4) {
qm.sendNext("...Neglected Strolling Path? If Giant Nependeath is there, someone is trying to enter Sealed Garden! But why? And more importantly, who?", 9);
} else if (status == 5) {
qm.sendNext("Sealed Garden?", 3);
} else if (status == 6) {
qm.sendAcceptDecline("I can't tell you about Sealed Garden. If you want to find out, I must first see whether you are worthy of the information. Do you mind if I look into your fate?", 9);
} else if (status == 7) {
qm.sendOk("Well, now let's look into your fate. Give me a second.");
} else if (status == 8) {
qm.forceStartQuest();
qm.dispose();
}

View File

@@ -36,9 +36,9 @@ function end(mode, type, selection) {
if(status == 0) {
qm.sendNext("So, have you defeated the giant? Oh, a Black Wing agent undercover? And he GOT THE SEAL STONE OF ORBIS?! Oh, no. That's horrible! We need to develop countermeasures as soon as possible! Tell the informant on Lith about the situation.");
} else {
qm.gainExp(29500);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(29500);
qm.dispose();
}
}

View File

@@ -61,10 +61,9 @@ function end(mode, type, selection) {
qm.sendNext("Oh, hi #h0#! You won't believe what I just uncovered. It's one of your lost skills... What, the seal of Orbis got stolen by the Black Wings? Oh my...");
} else if(status == 1) {
qm.sendNext("For now, let me teach you the #bCombo Smash#k, with it you will be able to deal massive amount of damage to many monsters at once. We will need to use it if we want to stand a chance against the Black Wings now, so don't forget it!");
} else {
qm.teachSkill(21100004, 0, 20, -1); // combo smash
} else if(status == 2) {
qm.forceCompleteQuest();
qm.teachSkill(21100004, 0, 20, -1); // combo smash
qm.dispose();
}
}

View File

@@ -38,9 +38,9 @@ function start(mode, type, selection) {
qm.sendNext("Have you been advancing your levels? I found an interesting piece of information about the Black Wings. This time, you'll have to travel quite a bit. Do you know a town called #bMu Lung#k? You'll have to head there.");
} else if (status == 1) {
qm.sendAcceptDecline("Apparently, #bMr. Do#k in Mu Lung somehow met with the Black Wings. I don't know the details. Please go and find out why the Black Wings contacted Mr. Do and what exactly happened between them.");
} else {
} else if (status == 2) {
qm.sendNext("Mr. Do is known to be curt, so you are going to have to remain patient while talking to him. Talk to him with the #bI heard you met the Shadow Knight of the Black Wings#k keyword.");
} else if (status == 3) {
qm.forceStartQuest();
qm.dispose();
}

View File

@@ -38,9 +38,9 @@ function start(mode, type, selection) {
qm.sendNext("So we have lost #btwo seal stones#k so far, from the neighboring areas of #rOrbis#k and #rMu Lung#k... Things are starting to get out of control, it seems.");
} else if (status == 1) {
qm.sendNext("Aran, your next objective will be to use the #btime gate to Ellin#k again. This time you will be retrieving the long lost #rSeal Stone of Ellin Forest#k. According to informations our network have gathered, #b#p2131002##k of that time have a clue about that gem, #rfind her#k. Please be successful on this task, our world is relying on you more than ever!");
} else {
qm.gainExp(500);
} else if (status == 2) {
qm.forceCompleteQuest();
qm.gainExp(500);
qm.dispose();
}
}

View File

@@ -36,7 +36,7 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Aran, you're finally back!!! How you've been doing? Where did you go for so long? We have so much to catch up...");
} else {
} else if (status == 1) {
qm.forceCompleteQuest();
qm.dispose();
}

View File

@@ -38,8 +38,8 @@ function start(mode, type, selection) {
qm.sendNext("Aran, I've discovered some disturbing news... You said you've come from the eastern forest section, right? We traced and studied the magic being used to support the portal over there. It turns out that's of a #rtemporal#k-type. The garments you're using... They were never seen around before. That must mean, #ryou must have come from the future#k.");
} else if (status == 1) {
qm.sendNext("Now about the problem: the Seal Stone that seems to have been missing in your timeline... It is a powerful artifact, that prevents the army of the #rBlack Mage#k from laying siege on our world. If that stone goes away, nothing more can prevent him. As this is a matter of great importance, find the #rself of mine#k from the future. I'm actually a #rfairy#k with a great life expectancy, I must be alive even on your timeline. Got it, #rfetch the me from the future#k!");
} else if (status == 2) {
qm.forceStartQuest();
qm.dispose();
}
}

View File

@@ -36,11 +36,10 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Oh, a letter for the #rempress#k? From the #bheroes#k?!");
} else {
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(1000);
qm.gainItem(4032330, -1);
qm.forceCompleteQuest();
qm.dispose();
}
}

View File

@@ -10,14 +10,14 @@ function start(mode, type, selection) {
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 if (status == 3) {
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.");
} else {
} else if (status == 4) {
qm.forceStartQuest();
qm.dispose();
}
}
function end(mode, type, selection) {
qm.gainExp(200);
qm.forceCompleteQuest();
qm.gainExp(200);
qm.dispose();
}

View File

@@ -1,4 +1,5 @@
var status = -1;
var canStart;
function start(mode, type, selection) {
status++;
@@ -8,12 +9,20 @@ function start(mode, type, selection) {
qm.dispose();
return;
}
canStart = qm.canHold(4032423, 1);
if(!canStart) {
qm.sendNext("Please open a slot in your ETC inventory first.");
return;
}
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.forceStartQuest();
} else if (status == 1) {
if(canStart) {
qm.gainItem(4032423,1);
qm.forceStartQuest();
}
qm.dispose();
}
}

View File

@@ -3,38 +3,56 @@
Quest: Abel Glasses Quest
*/
function end(mode, type, selection){
if(!qm.isQuestCompleted(2186)) {
if(qm.haveItem(4031853)){
if(qm.canHold(2030019)) {
qm.gainItem(4031853, -1);
qm.gainExp(1700);
qm.gainItem(2030019, 10);
var status = -1; // thanks IxianMace for noticing missing status declaration
qm.sendOk("Geez, you found my glasses! Thank you, thank you so much. Now I'm able to see everything again!");
qm.forceCompleteQuest();
}
else {
qm.sendOk("I need you to have an USE slot available to reward you properly!");
}
}else if(qm.haveItem(4031854) || qm.haveItem(4031855)){ //When I figure out how to make a completance with just a pickup xD
if(qm.canHold(2030019)) {
if(qm.haveItem(4031854))
qm.gainItem(4031854, -1);
else
qm.gainItem(4031855, -1);
qm.gainExp(1000);
qm.gainItem(2030019, 5);
qm.sendOk("Hm, those aren't my glasses... But alas, I'll take it anyway. Thanks.");
qm.forceCompleteQuest();
}
else {
qm.sendOk("I need you to have an USE slot available to reward you properly!");
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.isQuestCompleted(2186)) {
if(qm.haveItem(4031853)){
if(qm.canHold(2030019)) {
qm.gainItem(4031853, -1);
qm.gainExp(1700);
qm.gainItem(2030019, 10);
qm.sendOk("Geez, you found my glasses! Thank you, thank you so much. Now I'm able to see everything again!");
qm.forceCompleteQuest();
}
else {
qm.sendOk("I need you to have an USE slot available to reward you properly!");
}
}else if(qm.haveItem(4031854) || qm.haveItem(4031855)){ //When I figure out how to make a completance with just a pickup xD
if(qm.canHold(2030019)) {
if(qm.haveItem(4031854))
qm.gainItem(4031854, -1);
else
qm.gainItem(4031855, -1);
qm.gainExp(1000);
qm.gainItem(2030019, 5);
qm.sendOk("Hm, those aren't my glasses... But alas, I'll take it anyway. Thanks.");
qm.forceCompleteQuest();
}
else {
qm.sendOk("I need you to have an USE slot available to reward you properly!");
}
}
}
} else if (status == 1) {
qm.dispose();
}
}
qm.dispose();
}

View File

@@ -1,12 +1,46 @@
var status = -1;
function start(mode, type, selection) {
qm.sendNext("Oh, you already have monster book. Good luck on your journey~!");
qm.forceCompleteQuest();
qm.dispose();
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("Oh, you already have monster book. Good luck on your journey~!");
} else if (status == 1) {
qm.forceCompleteQuest();
qm.dispose();
}
}
}
function end(mode, type, selection) {
qm.sendNext("Oh, you already have monster book. Good luck on your journey~!");
qm.forceCompleteQuest();
qm.dispose();
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("Oh, you already have monster book. Good luck on your journey~!");
} else if (status == 1) {
qm.forceCompleteQuest();
qm.dispose();
}
}
}

View File

@@ -25,7 +25,8 @@ function start(mode, type, selection) {
qm.sendNext("Hurry up and head #bleft#k to feed #b#p1013102##k. He's been barking to be fed all morning.");
}
} else if (status == 4) {
qm.sendPrev("Feed #p1013102# and come back to see me.");
qm.dispose();
}
qm.sendNextPrev("Feed #p1013102# and come back to see me.");
} else if (status == 5) {
qm.dispose();
}
}

View File

@@ -40,10 +40,10 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Did you eat your breakfast, Evan? Then, will you do me a favor? \r\n\r\n#fUI/UIWindow.img/QuestIcon/4/0# \r\n#i1003028# 1 #t1003028# \r\n#i2022621# 5 #t2022621#s \r\n#i2022622# 5 #t2022622# \r\n#fUI/UIWindow.img/QuestIcon/8/0# 60 exp");
} else if (status == 1) {
qm.gainItem(1003028, 1, true);
qm.forceCompleteQuest();
qm.gainItem(1003028, 1, true);
qm.gainItem(2022621, 5, true);
qm.gainItem(2022622, 5, true);
qm.forceCompleteQuest();
qm.gainExp(60);
qm.sendImage("UI/tutorial/evan/4/0");
qm.dispose();

View File

@@ -22,6 +22,7 @@ function end(mode, type, selection) {
qm.gainExp(360);
qm.sendImage("UI/tutorial/evan/9/0");
}
qm.dispose();
}
} else if (status == 3) {
qm.dispose();
}
}

View File

@@ -69,6 +69,7 @@ function end(mode, type, selection) {
qm.sendNextPrev("#bThis is a weapon that Magicians use. It's a Wand#k. You probably won't really need it, but it'll make you look important if you carry it around. Hahahahaha.");
} else if (status == 13) {
qm.sendPrev("Anyway, the Foxes have increased, right? How weird is that? Why are they growing day by day? We should really look into it and get to the bottom of this.");
qm.dispose();
}
} else if (status == 14) {
qm.dispose();
}
}

View File

@@ -26,6 +26,7 @@
*/
var status = -1;
var canComplete;
function end(mode, type, selection) {
if (mode == -1) {
@@ -45,20 +46,24 @@ function end(mode, type, selection) {
var hourDay = qm.getHourOfDay();
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();
canComplete = false;
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();
canComplete = false;
return;
}
canComplete = true;
qm.sendNext("(Ah, there is a crumbled note here... Hm, it contains details about some scheme that is about to happen, that must be what #r#p1052002##k was talking about.)");
qm.gainItem(4031894, 1);
qm.gainExp(20000);
qm.forceCompleteQuest();
} else if (status == 1) {
if (canComplete) {
qm.forceCompleteQuest();
qm.gainItem(4031894, 1);
qm.gainExp(20000);
}
qm.dispose();
}

View File

@@ -26,6 +26,7 @@
*/
var status = -1;
var canComplete;
function end(mode, type, selection) {
if (mode == -1) {
@@ -45,26 +46,30 @@ function end(mode, type, selection) {
var hourDay = qm.getHourOfDay();
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();
canComplete = false;
return;
}
if(qm.getMeso() < 2000) {
qm.sendNext("(Oh, I don't have the combined fee amount yet.)");
qm.dispose();
canComplete = false;
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();
canComplete = false;
return;
}
canComplete = true;
qm.sendNext("(Alright, now I will deposit the fee there and get the paper... That's it, yea, that's done.)");
qm.gainItem(4031894, 1);
qm.gainMeso(-2000);
qm.forceCompleteQuest();
} else if (status == 1) {
if (canComplete) {
qm.gainMeso(-2000);
qm.forceCompleteQuest();
qm.gainItem(4031894, 1);
}
qm.dispose();
}

View File

@@ -36,8 +36,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("I've just gathered an interesting information, #rDyle looks just like regular Ligators#k, but bigger.");
qm.gainExp(7000);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(7000);
if(isAllSubquestsDone() && qm.haveItem(4031894)) {
qm.gainItem(4031894, -1);

View File

@@ -36,8 +36,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("Hey, did you notice already, it looks like some awful stench is emanating from the sewers... Ewww");
qm.gainExp(7000);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(7000);
if(isAllSubquestsDone() && qm.haveItem(4031894)) {
qm.gainItem(4031894, -1);

View File

@@ -36,8 +36,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("Hey did you see how strange #rLakelis#k has been acting these days? We should see what's going on aabout her, her actions have been so weird lately...");
qm.gainExp(7000);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(7000);
if(isAllSubquestsDone() && qm.haveItem(4031894)) {
qm.gainItem(4031894, -1);

View File

@@ -36,8 +36,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("Did you know, they say someone from the sewers has been trying to #rdevelop a magic powder that let's one to grow#k, isn't that nice?");
qm.gainExp(7000);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainExp(7000);
if(isAllSubquestsDone() && qm.haveItem(4031894)) {
qm.gainItem(4031894, -1);

View File

@@ -36,10 +36,9 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("Thank you for defeating #rFaust#k. That will finally settle my spirit to rest.");
} else {
qm.gainFame(8);
} else if (status == 1) {
qm.forceCompleteQuest();
qm.gainFame(8);
qm.dispose();
}
}

View File

@@ -28,6 +28,7 @@
*/
var status = -1;
var canComplete;
function start(mode, type, selection) {
if (mode == -1) {
@@ -45,6 +46,8 @@ function start(mode, type, selection) {
qm.sendOk("Put your hand in your pocket. I think your friend has already found you.\r\nThe purple bellflower that soaks in the sun in between the skyscraping trees...Follow the path to the unknown that leads you to the bellflower. I will wait for you here.");
qm.forceStartQuest();
qm.gainItem(4032086, 1); // Mysterious Egg * 1
} else if (status == 3) {
qm.dispose();
}
}
}
@@ -76,11 +79,20 @@ function end(mode, type, selection) {
} else if (status == 5) {
qm.sendYesNo("Now do you understand? Every action comes with consequences, and pets are no exception. The egg of the snail shall hatch soon.");
} else if (status == 6) {
qm.gainItem(5000054, 1, false, true, 5 * 60 * 60 * 1000); // rune snail (5hrs), missing expiration time detected thanks to cljnilsson
canComplete = qm.canHold(5000054, 1);
if (!canComplete) {
qm.sendNext("Please free a slot in your CASH inventory before you try to receive the pet...");
return;
}
qm.gainItem(4032086, -1); // Mysterious Egg * -1
qm.forceCompleteQuest();
qm.sendNext("This snail will only be alive for #b5 hours#k. Shower it with love. Your love will be reciprocated in the end.");
} else if (status == 7) {
if (canComplete) {
qm.gainItem(4032086, -1); // Mysterious Egg * -1
qm.forceCompleteQuest();
qm.gainItem(5000054, 1, false, true, 5 * 60 * 60 * 1000); // rune snail (5hrs), missing expiration time detected thanks to cljnilsson
}
qm.dispose();
}
}

25
scripts/quest/2232.js Normal file
View File

@@ -0,0 +1,25 @@
var status = -1;
function start(mode, type, selection) {
var familyEntry = qm.getPlayer().getFamilyEntry();
if (familyEntry != null && familyEntry.getJuniorCount() > 0) {
qm.forceCompleteQuest();
qm.gainExp(3000);
qm.sendNext("Good job!");
} else {
qm.sendNext("I see that you have not successfully find a Junior, ok?");
}
qm.dispose();
}
function end(mode, type, selection) {
var familyEntry = qm.getPlayer().getFamilyEntry();
if (familyEntry != null && familyEntry.getJuniorCount() > 0) { // script found thanks to kvmba
qm.forceCompleteQuest();
qm.gainExp(3000);
qm.sendNext("Good job!");
} else {
qm.sendNext("I see that you have not successfully find a Junior, ok?");
}
qm.dispose();
}

View File

@@ -1,54 +0,0 @@
/* ===========================================================
Ronan Lana
NPC Name: Chrishrama
Description: Quest - How to Shoo Away the Evil
=============================================================
Version 1.0 - Script Done.(20/3/2017)
=============================================================
*/
var status = -1;
function start(mode, type, selection) {
status++;
if (mode != 1) {
if(type == 1 && mode == 0)
status -= 2;
else{
qm.sendOk("If we don't place these Charms on the Shaman Rocks, evil might awaken...");
qm.dispose();
return;
}
}
if (status == 0)
qm.sendAcceptDecline("I can feel the forces of evil. They're deep inside the dungeon and they're very, very powerful. If we want to drive the evil away from this place, we must place Charms on the Shaman Rocks inside the dungeon. Will you do that for me?");
if (status == 1){
if(qm.haveItem(4032263)) qm.gainItem(4032263, -6);
qm.gainItem(4032263, 6);
qm.sendOk("Take these Charms and place them on the Shaman Rocks in the dungeon. I'm giving you a total of 6 Charms.");
qm.forceStartQuest();
qm.dispose();
}
}
function end(mode, type, selection) {
status++;
if(status == 0) {
if(qm.getQuestProgress(2236) == 63) { //111111
qm.sendOk("I, too, felt it. The force of the Shaman Rocks began to overpower the forces of evil. I think Sleepywood is safe now. The evil has been eliminated.");
qm.gainExp(60000);
qm.forceCompleteQuest();
}
else {
if(qm.haveItem(4032263)) qm.gainItem(4032263, -6);
qm.gainItem(4032263, 6);
qm.sendOk("Oh, not good. I still sense bad omens coming from the interior. Here, take these charms and seal them at the Shaman Rocks. We are counting on you.");
qm.updateQuest(2236, 0);
}
qm.dispose();
}
}

View File

@@ -38,7 +38,6 @@ function start(mode, type, selection) {
em = qm.getEventManager("BalrogQuest");
if (em == null) {
qm.sendOk("Sorry, but the BalrogQuest is closed.");
qm.dispose();
return;
}
@@ -47,8 +46,9 @@ function start(mode, type, selection) {
qm.sendOk("There is currently someone in this map, come back later.");
} else {
qm.forceStartQuest();
qm.dispose();
}
} else if (status == 1) {
qm.dispose();
}
}

View File

@@ -20,11 +20,11 @@ function start(mode, type, selection) {
} else if (status == 4) {
if (mode == 0) {
qm.sendNext("*gasp* How can you refuse to feed your Dragon? This is child abuse! ");
qm.dispose();
} else {
qm.forceStartQuest();
qm.sendOk("#b#b(#p1013000# the baby Dragon appears to be extremely hungry. You must feed him. Maybe your Dad can give you advice on what dragons eat.)");
qm.dispose();
}
}
} else if (status == 5) {
qm.dispose();
}
}

View File

@@ -18,6 +18,6 @@ function start(mode, type, selection) {
qm.forceStartQuest();
qm.sendImage("UI/tutorial/evan/12/0");
}
qm.dispose();
}
}
qm.dispose();
}
}

View File

@@ -22,6 +22,7 @@ function start(mode, type, selection) {
qm.forceStartQuest();
qm.sendNext("#b#b(Try giving #p1013000# some #t4032453#. You have to hunt a few #o1210100#s at the farm. Ten should be plenty...)");
}
qm.dispose();
}
} else if (status == 4) {
qm.dispose();
}
}

View File

@@ -22,5 +22,7 @@ function start(mode, type, selection) {
qm.forceStartQuest();
qm.sendNext("#b#b(You already asked Dad once, but you don't have any better ideas. Time to ask him again!)");
}
}
} else if (status == 4) {
qm.dispose();
}
}

View File

@@ -53,6 +53,7 @@ function start(mode, type, selection) {
qm.sendNextPrev("#b(You're a bit confused, but you are now traveling with Mir the Dragon. Perhaps you'll go on an adventure together, like he said.)", 2);
} else if (status == 17) {
qm.sendPrev("#b#b(You still have an errand to run. Your dad needs to talk to you, so go and see him now.)");
qm.dispose();
}
} else if (status == 18) {
qm.dispose();
}
}

View File

@@ -1,21 +1,38 @@
/*
-/*
Author: Kevin
Quest: Zombie Mushroom Signal 3 (2251)
NPC: The Rememberer (1061011)
Item: Recording Charm (4032399)
*/
var status = -1; // script restored thanks to kvmba
function end(mode, type, selection) {
if(!qm.haveItem(4032399, 20)) {
qm.sendOk("Please bring me 20 #b#t4032399##k... #i4032399#");
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.haveItem(4032399, 20)) {
qm.sendOk("Please bring me 20 #b#t4032399##k... #i4032399#");
}
else {
qm.gainItem(4032399, -20);
qm.sendOk("Oh, you brought 20 #b#t4032399##k! Thank you.");
qm.gainExp(8000);
qm.forceCompleteQuest();
}
} else if (status == 1) {
qm.dispose();
}
}
else {
qm.gainItem(4032399, -20);
qm.sendOk("Oh, you brought 20 #b#t4032399##k! Thank you.");
qm.gainExp(8000);
qm.forceCompleteQuest();
}
qm.dispose();
}

View File

@@ -36,7 +36,7 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("Hey there, do you want a ride to #r#m261000000##k? Oh a request from #b#p2101013##k?");
} else {
} else if (status == 1) {
qm.forceCompleteQuest();
qm.dispose();
}

View File

@@ -38,7 +38,7 @@ function start(mode, type, selection) {
qm.sendAcceptDecline("Meerkats spreads rumors like wildfire... By blackmailing me and my cab service, they are taking costumers away from me day after day... Hey, tell no one about this, if you clean some #rMeerkats#k from my way, I'll tell you an info about the #rMushroom Castle#k. What do you say?");
} else if (status == 1) {
qm.sendNext("Great, they you have #r5 minutes#k to kill #b40 Meerkats#k within this time. Good luck!");
} else {
} else if (status == 2) {
qm.forceStartQuest();
qm.dispose();
}
@@ -61,7 +61,7 @@ function end(mode, type, selection) {
if (status == 0) {
qm.sendNext("You did it! ... Hey, #rMeerkats#k around here may listen to our conversation. I'm not going to talk about THAT right now.");
} else {
} else if (status == 1) {
qm.forceCompleteQuest();
qm.dispose();
}

View File

@@ -60,13 +60,12 @@ function end(mode, type, selection) {
if (status == 0) {
if(qm.getMapId() == 260020000) {
qm.sendNext("Eh you're still here? To reach #b#m260020700##k, follow #reast#k from here until you reach #rMagatia#k, I will be there. Now go.");
qm.dispose();
return;
}
qm.sendNext("Oh there you are. There're no Meerkat's nearby, so there probably is no eavesdropping around here. Very well, you must be fit to go to the #rMushroom Castle#k. Talk to me once you've got #blevel 30#k.");
} else {
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}

View File

@@ -18,7 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
importPackage(Packages.constants);
importPackage(Packages.constants.game);
var status = -1;
@@ -38,7 +38,7 @@ function start(mode, type, selection) {
if (status == 0) {
qm.sendNext("Once you've got #b2nd job advancement#k, I'll tell you about the #bMushroom Castle#k.");
} else {
} else if (status == 1) {
qm.forceStartQuest();
qm.dispose();
}
@@ -67,8 +67,8 @@ function end(mode, type, selection) {
}
qm.sendNext("Okay you seem ready to go to the #bMushroom Castle#k. In #rHenesys#k, climb at the tree fort at #bwest#k then enter a portal over there. On the other area, #rgo west#k. From there, a portal will be readily available to access the #bMushroom Castle#k area.");
} else {
qm.forceCompleteQuest();
} else if (status == 1) {
qm.dispose();
}
}

View File

@@ -37,9 +37,12 @@ function start(mode, type, selection) {
if(status == 0)
{
qm.sendNext("Do you remember the last song that the Spirit of Rock played? I can think of a few songs that he may be imitating, so listen carefully and tell me which song it is. #bYou only get one chance,#k so please choose wisely.");
qm.forceStartQuest();
}
else if(status == 1)
{
qm.dispose();
}
qm.forceStartQuest();
qm.dispose();
}
function end(mode, type, selection)
@@ -92,19 +95,24 @@ function end(mode, type, selection)
if(selection == 1)
{
qm.sendOk("Obviously you don't enjoy music.");
qm.dispose();
}
else if(selection == 2)
{
qm.sendOk("I suppose you could get #b#eone#n#k more chance.");
qm.dispose();
}
else if(selection == 3)
{
qm.sendOk("So that was the song he was playing... Well, it wasn't my song after all, but I'm glad I can know that now with certainty. Thank you so much.");
qm.gainExp(32500);
qm.forceCompleteQuest();
qm.gainExp(32500);
}
else
{
qm.dispose();
}
}
else if(status == 3)
{
qm.dispose();
}
}

View File

@@ -25,11 +25,12 @@ function start(mode, type, selection) {
}
if (status == 0)
qm.sendAcceptDecline("We need your help, noble explorer. Our kingdom is currently facing a big threat, and we are in desperate need of a courageous explorer willing to fight for us, and that's how you ended up here. Please understand, though, that since we need place our faith in you, we'll have to test your skills first before we can stand firmly behind you. Will it be okay for you to do this for us?");
if (status == 1){
else if (status == 1){
qm.forceStartQuest();
qm.sendOk("Keep moving forward, and you'll see #bRenegade Spores#k, the Spores that turned their backs on the Kingdom of Mushroom. We'd appreciate it if you can teach them a lesson or two, and bring back #b50 Mutated Spores#k in return.");
qm.dispose();
}
} else if (status == 2){
qm.dispose();
}
}
function end(mode, type, selection) {
@@ -44,12 +45,13 @@ function end(mode, type, selection) {
}
if (status == 0)
qm.sendOk("Did you teach those Renegade Spores a lesson?");
if (status == 1){
else if (status == 1){
qm.forceCompleteQuest();
qm.gainExp(11500);
qm.gainItem(4000499, -50);
qm.sendOk("That was amazing. I apologize for doubting your abilities. Please save our Kingdom of Mushroom from this crisis!");
qm.dispose();
}
} else if (status == 2){
qm.dispose();
}
}

View File

@@ -25,11 +25,12 @@ function start(mode, type, selection) {
}
if (status == 0)
qm.sendAcceptDecline("I have told our #bMinister of Home Affairs#k of your abilities. Please go pay a visit to him immediately.");
if (status == 1){
else if (status == 1){
qm.forceStartQuest();
qm.sendOk("Save our kingdom! We believe in you!");
qm.dispose();
}
} else if (status == 2){
qm.dispose();
}
}
function end(mode, type, selection) {

Some files were not shown because too many files have changed in this diff Show More